Sejak tahun 2005 menggolongkan arsitektur prosesornya ke dalam 3 profile:
- Cortex-A (Application), arsitektur prosesor untuk menjalankan sistem operasi (OS) tingkat tinggi, seperti Linux, Android, iOS, Windows dan lain-lain, dengan aplikasi smartphone, tablet dan sebagainya.
- Cortex-R (Real time), arsitektur prosesor yang dirancang untuk aplikasi real time, misalnya ECU di mesin mobil.
- Cortex-M (Microcontroller), arsitektur prosesor untuk aplikasi-aplikasi low cost.
ARM Cortex-M sendiri dibagi menjadi beberapa keluarga:
- Cortex-M0: tipe Cortex-M yang paling rendah, dirancang untuk menggantikan aplikasi prosesor 8/16 bit. Dengan hanya 56 instruksi dan diproduksi dengan hanya 12K gerbang membuat prosesor ini sangat hemat daya (16µW/MHz).
- Cortex-M0+: arsitektur hasil dari optimalisasi Cortex-M0 dengan mengurangi pipeline dari 3 stage menjadi 2 stage, membuat konsumsi daya Cortex-M0+ manjadi hanya 9.8µW/MHz .
- Cortex-M1: arsitektur prosesor yang dirancang untuk FPGA
- Cortex-M3: dirancang sebagai prosesor mainstream. Dengan fitur nested interupt (NVIC), hardware untuk pembagian, perkalian satu siklus.
- Cortex-M4: dirancang untuk aplikasi pemrosesan sinyal digital (DSP). Dilengkapi dengan instruksi-instruksi DPS dan Floating Point Unit (FPU)
ARM Cortex-M3 diperkenalkan sejak tahun 2004 dengan menggunakan arsitektur bersi ARMv7-M. Cortex-M3 dirancang dengan arsitektur Harvard, di mana ada pemisahan antara bus instruksi (program) dan bus data sehingga bisa menambag performa ARM Cortex-M3 karena bisa membaca (fetch) kode dari memori program dan data dari RAM secara bersamaan. Walaupun secara manufaktur arsitektur Harvard lebih rumit, tetapi kerumitannya tidak sebanding dengan performa yang diperoleh.
ARM Cortex-M3 merupakan standar core mikrokontroler yang lengkap, di dalamnya sudah termasuk sistem interupsi, timer Systick, sistem debug, dan pemetaan memori. Tersedia 4 Gbyte memori yang dipisahkan antara kode, SRAM (Static RAM), periperal dan periperal sistem. Gambar di bawah menunjukan core dari ARM Cortex-M3 yang dirancang oleh ARM Ltd. Perusahaan semikonduktor yang membeli lisensi dari ARM Ltd, akan menambahkan berbagai macam periperal membentuk sebuah chip mikrokontroler yang lengkap. Penambahan ini tidak ditentukan oleh ARM Ltd, tetapi tergantung kepada perusahaan yang akan memproduksi chip mikrokontroler tersebut. Penambahan ini bisa berupa ADC, DAC, UART, SPI, Ethernet, USB dan lain-lain.
Core ARM Cortex-M3
Teknik pipeline 3 stage, memungkinkan Cortex-M3 mengeksekusi instruksi dalam 1 siklus karena code fetch, decoding dan execution bisa dilakukan secara bersamaan dalam pipeline tersebut. Kendali interupsi bersifat nested (NVIC Nested Vectrored Interrupt Controller), memungkinkan interupsi dengan prioritas lebih tinggi bisa menunda (pre-empt) eksekusi interupsi dengan prioritas lebih rendah. Akses memori dirancang untuk lebih efisien terutama untuk menangani data 8 bit (byte) dengan teknik unaligned access, sehingga setiap alamat RAM 32 bit bisa menyimpan 4 data bertipe byte. Selain itu disediakan juga area memori untuk akses secara bit dengan teknik yang dinamakan bit banding, sehingga untuk akses secara bit, ke periperal atau memori, tidak diperlukan tambahan prosesor Boolean.
Prosesor pendahulunya, ARM7, mengenal instruksi ARM (32 bit) dan instruksi Thumb (16 bit). Untuk kecepatan tinggi digunakan instruksi ARM, tetapi tentu saja memakan lebih banyak memori. Sehingga diperkenalkan instruksi Thumb dengan 16 bit, lebih hemat memori tetapi kecepatan/performa berkurang. Dan ini harus di-switch saat compile. Di ARM Cortex, diperkenalkan mode instruksi baru yaitu instruksi Thumb-2 yang pada dasarnya keluarga ARM Cortex bisa menjalankan instruksi ARM 32 bit dan instruksi Thumb 16 bit secara bersamaan, tidak perlu memilih mode saat meng-compile program. Compiler akan otomatis memilih mana baris program yang akan di-compile dengan instruksi 32 bit dan mana yang akan di-compile dengan instruksi 16 bit. Dengan demikian instruksi Thumb-2 akan 26% lebih hemat memori dari pada instruksi ARM dan 25% lebih cepat bila dibandingkan dengan instruksi Thumb.
Selain itu ARM Cortex-M3 juga dilengkapi dengan timer SysTick (System Tick) dan unit proteksi memori (Memory Protection Unit – MPU). Kedua periperal ini biasa digunakan untuk sistem aplikasi yang menggunakan sistem operasi (Real Time Operating System – RTOS). Timer SysTick diperlukan untuk menyediakan pewaktuan untuk scheduler dari RTOS sedangkan MPU akan mengatur akses memori antara aplikasi dengan OS. ARM Cortex-M3 juga menyediakan jalur untuk debugging program yang dinamakan Debug Access Port (DAP) dengan protokol JTAG (Joint Test Action Group) atau SWD (Serial Wire Debug).
Insya Allah, kita akan bahas arsitektur ARM Cortex-M3 secara lebih detail di posting berikutnya…
Filed under: ARMania, Micro Mania | Leave a comment »