Prosesor ARM
Arsitektur ARM merupakan arsitektur prosesor 32-bit Reduced Instrction Set Computer ( RISC ) yang dikembangkan oleh ARM limited . Pada awalnya merupakan prosesor desktop yang sekarang didominasi oleh keluarga x86 . Namun design yang sederhana membuat prosesor ARM cocok untuk aplikasi berdaya rendah . Prosesor ARM digunakan di berbagai bidang seperti elektronik umum , termasuk PDA , mobile phone , media player , music player , game console genggam , kalkulator , dan peripheral komputer seperti hard disk drive dan router .
Beberapa ciri dari prosessor ARM ini adalah :
- Register file yang berkapasitas besar
- Arsitektur load/store , dimana operasi pengolahan data hanya beroperasi pada konten register , tidak secara langsung pada konten memori
- Addresing mode sederhana , dimana seluruh load/store address ditentukan dari konten register dan field instruksi saja
- Instruksi yang menggabungkan antara operasi aritmarik dan logika
- Auto-increment dan auto-decrement addresing mode untuk mengoptimalkan loop program
- Penyimpanan banyak instruksi untuk memaksimalkan throughput data
- Eksekusi secara kondisional untuk semua instruksi agar memaksimalkan throughput eksekusi
I. Organisasi pada prosesor ARM
Proses jalan nya data pada prosessor ARM :
Data bertukar dengan prosesor dari memori eksternal melalui bus data . Nilai yang di kirimkan merupakan sebuah data , yang merupakan hasil dari instruksi yang di simpan atau dikeluarkan ( instruction fetch ) . Instruksi tersebut melewati sebuah instruction decoder sebelum dieksekusi , dibawah control dari sebuah Control Unit ( CPSR ) . Pengontrol tersebut memiliki logika pipelining dan menyediakan sinyal kontrol untuk tiap – tiap elemen hardware dalam prosesor . Data akan ditempatkan di register file , yang terdiri atas 32-bit register . Instruksi pemrosesan data pada ARM memiliki dua register sumber yang diberi nama Rm dan Rn , serta keluaran atau register untuk menunjukan adress yakni Rd . Nilai pada register sumber tersebut akan masuk ke ALU , atau akan diakumulasikan dengan menggunakan register tambahan untuk menghasilkan sebuah keluaran . Salah satu sumber register yakni Rm juga dapat masuk ke Barrel Shifter untuk ditukar atau di rotasikan sebelum masuk ke ALU . Pertukaran dan rotasi tersebut berlangsung dalam instruksi siklus waktu tertentu dan menambah kekuatan dan flesibilitas dari banyak operasi pemrosesan . Hasil dari operasi tersebut akan dikembalikan ke register tujuan .
II. Mode – mode yang digunakan pada prosesor ARM
Pada prosesor ARM terdapat 7 mode yang digunakan , 2 mode adalah mode umum yang digunakan yakni user mode dan system mode . Sedangkan 5 lainnya adalah exception mode .
• User Mode : Mode yang paling banyak digunakan , namun pada penerapannya program yang dieksekusi tidak dapat melakukan akses terhadap System Resources yang dilindungi , kecuali menggunakan exception
• Sistem Mode : Mode ini menggunakan Register yang sama dengan user mode . Sistem mode ini digunakan untuk menjalankan tugas – tugas dari OS . Sistem mode dapat di interrupt oleh exceptional mode
• Exceptional mode :
a. Supervisor Mode : Mode yang biasa digunkan OS . Mode ini diterapkan saat prosesor mendapatkan adanya instruksi interrupt dari software . Software intterupt adalah cara yang biasa digunakan untuk menerapkan servis dari OS terhadap ARM.
b. Abort Mode : Mode yang digunakan apabila terjadi kesalahan pada memori
c. Undefined Mode : Mode yang digunakan saat prosesor akan mengeksekusi sebuah instruksi yang didukung oleh inti dari integer utama ataupun salah satu dari prosesor tambahan
d. Fast Interrupt Mode : Mode yang digunakan saat prosesor mendapatkan sebuah sinyal interrupt yang telah ditentukan dari sumber fast interrupt . Sebuah Fast Interrupt tidak bisa di interupsi , tapi fast interrupt dapat melakukan interupsi terhadap normal interrupt.
e. Interrupt Mode : Mode yang digunakan saat prosesor mendapatkan sinyal interrupt dari sumber interrupt lainnya ( selain fast interrupt ) .
III. Register – Register pada prosesor ARM
A. Organisasi Register
- Pada Register ini terdapat 37 buah register 32-bit
- 31 buah digunakan sebagai register general purpose ( umum ) , namun pada R15 ( PC) digunakan sebagai register khusus.
- 6 lainnya adalah register status
Register disusun dalam tumpukan terpisah untuk masing – masing mode yang digunakan dalam ARM .
Setiap waktu 16 register yang memiliki nomor dari R0-R15 dan register status akan muncul sebagai 16 atau 17 visible register ( register yang dapat dipakai )
- R0 sampai R7 , R15 ( PC ) serta Current Program Status Register ( CPSR ) akan digunakan oleh semua mode
- R8 sampai R12 , akan digunakan oleh semua mode kecuali mode Fast Interrupt , yang menggunakan R8_fiq sampai R12_fiq
- Semua Exceptional mode akan menggunakan R13 dan R14 yang berasal dari register itu sendiri
- Semua Exception mode akan memiliki Register lainnya yaitu Saved Program Status Register ( SPSR )
B. General Purpose Register ( GPR )
Pada ARM , R0 –R12 digunakan sebagai General Purpose Register , sedangkan R13 adalah stack pointer , stack pointer terdapat pada tiap – tiap mode . R14 adalah link register , digunakan sebagai media penyimpanan dan pengembali exception adress . Yang terakhir adalah R15 , yang merupakan program counter .
C. Program Status Register
- CPSR digunakan oleh tiap – tiap mode
- Pada Exception mode CPSR akan ditambahkan dengan SPSR
- Pada 32-bit CPSR dibagi dua yakni User Flag pada 16 bit atas dan System Control Flags pada 16 bit lainnya
IV. Interrupt Processing
Prosesor ARM memiliki 7 tipe exception ( interrupt )
- Vektor yang digunkan untuk menyimpan tiap – tiap tipe akan disimpan di alamat yang telah ditentukan di memori level rendah 0x00000000 – 0x0000001F ( vektor pada 0x00000014 telah terpakai )
- Multiple interrupt akan dilaksanakan sesuai prioritas 0 adalah prioritas tertinggi
Penggunaan interrupt :
- Selesaikan instruksi yang sedang dijalankan
- Status pada CPSR akan disimpan pada SPSR untuk tiap – tiap exception mode
- PC ( R15 ) akan disimpan di link register R!$ pada exception mode
- Penulisan kembali dengan cara memindahkan isi SPSR ke CPSR dan R14 ke R15
0 komentar