ARM adalah prosesor dengan arsitektur set instruksi 32bit RISC
(Reduced Instruction Set Computer) yang dikembangkan oleh ARM Holdings. ARM
merupakan singkatan dari Advanced RISC Machine (sebelumnya lebih dikenal dengan
kepanjangan Acorn RISC Machine). Pada awalnya ARM prosesor dikembangkan untuk
PC (Personal Computer) oleh Acorn Computers, sebelum dominasi Intel x86
prosesor Microsoft di IBM PC kompatibel menyebabkan Acorn Computers bangkrut.
Setelah Acorn Computers bangkrut, Apple Computers (sekarang Apple Inc) dan VLSI
Technology Inc membeli kekayaan intelektual Acorn Computer, dan mendirikan ARM
Ltd. ARM Ltd kemudian melanjutkan proyek Acorn Computer untuk mengembangkan
prosesor 32bit dengan arsitektur RISC yang sederhana dan hemat energi.
Prosesor yang dikembangkan ARM Ltd ternyata tidak diminati oleh kalangan
produsen PC, dengan alasan tidak kompatibel dengan arsitektur Intel x86. ARM
Ltd kemudian memutuskan untuk tidak memproduksi ARM prosesor, tetapi
melisensikan desain prosesor tersebut untuk digabungkan dengan ASIC
(Application Specific IC) yang membutuhkan kontroler embedded (contoh:
kontroler printer, kontroler mesin cuci, kontroler video dekoder, kontroler
ethernet hub/router, dan sebagainya).
Saat ini, selain digunakan untuk ASIC, ARM prosesor juga diproduksi oleh
berbagai perusahaan semikonduktor sebagai mikroprosesor terpisah (sebelumnya
ARM prosesor selalu diembeddedkan dengan ASIC) maupun mikrokontroler (dengan
pengurangan berbagai fitur yang diperlukan mikroprosesor).
Perusahaan yang dulu ataupun saat ini menggunakan lisensi ARM prosesor meliputi
AlcatelLucent, Apple Inc., Atmel, Broadcom, Cirrus Logic, Digital Equipment
Corporation (DEC), Freescale, Intel (melalui akuisisi DEC), LG, Marvell
Technology Group, Microsoft, NEC, Nuvoton, Nvidia, NXP (dulu Philips), Oki,
Qualcomm, Samsung, Sharp, STMicroelectronics, Symbios Logic, Texas Instruments,
VLSI Technology, Yamaha and ZiiLABS.
Berbagai macam kontroler berbasis ARM yang terkenal meliputi DEC StrongARM
(digunakan Intel untuk prosesor PDA), Marvell Xscale (desain Xscale dibeli
Marvell dari Intel), Nintendo (untuk prosesor Gameboy, DSi, dan 3DS), Nvidia
Tegra, STEricsson Nomadik, Qualcomm Snapdragon, Texas Instruments OMAP product
line, Samsung Hummingbird and Apple A4.
ARM Klasik (Classic ARM Processors)
ARM klasik adalah keluarga ARM prosesor yang pertama kali dirilis oleh ARM Ltd
(sekarang ARM Holdings). Prosesor ARM klasik ideal untuk pengguna yang ingin
menggunakan teknologi telah teruji di pasar. Prosesorprosesor ini telah
digunakan untuk berbagai macam produk elektronik selama bertahun-tahun.
Desainer produk elektronik yang memilih prosesorprosesor ini dijamin mempunyai
dukungan ekosistem dan sumber daya yang luas, tingkat kesulitan integrasi yang
minimum, dan menurunkan waktu desain.
ARM Cortex Prosesor Embedded (ARM Cortex Embedded Processors)
Prosesorprosesor di keluarga seri CortexM telah dikembangkan khusus untuk
domain mikrokontroler, dimana permintaan untuk kecepatan, determinasi waktu
proses, dan manajemen interrupt bersama dengan jumlah gate silikon minimum
(luas silikon yang minimum menentukan harga akhir prosesor) dan konsumsi daya
yang minimum sangat diminati. Contoh aplikasi prosesor CortexM adalah
mikrokontroller dan sensor cerdas.
Prosesor-prosesor di keluarga seri CortexR, sebaliknya, dikembangkan khusus
untuk keperluan realtime yang mendalam, dimana kebutuhan konsumsi daya minimum
dan sifat interrupt yang terprediksi diimbangi dengan performa yang luar biasa
dan kompatibilitas yang kuat dengan platform yang telah ada. Contoh aplikasi
prosesor CortexR adalah ABS (Automotive Braking Systems), kontroler elektronik
roda gigi, hidrolik, dan mesin otomotif.
ARM Cortex Prosesor Aplikasi (ARM Cortex Application Processors)
Prosesorprosesor di keluarga prosesor aplikasi dikembangkan untuk aplikasi
yang membutuhkan daya komputasi yang tinggi (frekuensi prosesing ratarata
2GHz), seperti netbook, mobile internet devices, smartphone, dan lain-lain.
ARM CortexM0
ARM CortexM0 adalah prosesor dari keluarga ARM Cortex prosesor embedded untuk
menggantikan aplikasi mikrokontroler 8/16bit. Keunggulan ARM CortexM0
dibandingkan mikrokontroler 8/16bit terletak pada:
• Kemampuan komputasi yang lebih tinggi untuk frekuensi kerja yang sama
• Konsumsi daya yang lebih kecil atau sama
• Jumlah pin yang sedikit (kurang dari 50pin, tidak memerlukan multilayer
PCB, luas PCB yang dibutuhkan kecil, tidak membutuhkan keahlian khusus untuk
memasang prosesor di board), tidak seperti prosesor 32bit lainnya (butuh
setidaknya 100pin, multilayer PCB, dan mesin XRay / oven)
• Harga yang lebih murah atau sama
• Kompatibel dengan ARM CortexM lain (ARM CortexM3, ARM CortexM4). Aplikasi
yang dikompile untuk ARM CortexM0 bisa dijalankan di ARM CortexM lainnya. Hal
ini berguna untuk upgrade hardware, tanpa membuang software yang sudah
dikerjakan.
ARM CortexM0 Peripheral
ARM CortexM0 mempunyai peripheralperipheral yang terintegrasi dengan
prosesor. Peripheralperipheral tersebut merupakan bagian dari desain ARM
CortexM0. Karena itu, peripheralperipheral tersebut terdapat di semua
mikroprosesor yang berbasis ARM CortexM0, walaupun dibuat oleh manufaktur yang
berbeda. Selain itu, peripheralperipheral yang terdapat di ARM CortexM0, juga
terdapat di prosesor ARM CortexM yang lain (ARM CortexM1, ARM CortexM3, ARM
CortexM4), sehingga semua prosesor di
keluarga ARM CortexM kompatibel satu sama lainnya. Peripheralperipheral
tersebut antara lain:
Nested Vectored Interrupt Controller (NVIC )
NVIC adalah peripheral yang mengatur interrupt ARM CortexM (ARM CortexM0, ARM
CortexM1, ARM CortexM3, ARM CortexM4). NVIC mengatur prioritas interrupt,
mengaktifkan / menonaktifkan interrupt, menyimpan isi registerregister ARM
CortexM ke memori stack ketika prosesor memasuki interrupt handler, dan
mengembalikan isi registerregister ARM CortexM dari memori stack ketika
prosesor keluar dari interrupt handler.
System Control Block (SCB)
SCB adalah peripheral yang digunakan untuk mengatur mode prosesor. SCB
menyediakan berbagai info untuk program pengguna (seperti CPU ID, konfigurasi
memori big/little endian, nomor interrupt yang saat ini ditangani, dan
sebagainya)
System Timer (SysTick)
Pada seri ARM klasik, prosesorprosesor ARM tidak dilengkapi
dengan Timer, sehingga tiap manufaktur melengkapi prosesor tersebut dengan
peripheral Timer milik mereka sendiri. Akibatnya, terdapat isu kompatibilitas
jika pengguna ingin berpindah dari prosesor ARM dari manufaktur yang satu ke
manufaktur lainnya (Contoh: pengguna yang menggunakan peripheral Timer di
ARM7TDMI buatan Atmel tidak bisa menggunakan ARM7TDMI buatan NXP tanpa mengubah
kode program terlebih dulu, walaupun keduanya berbasis prosesor yang sama,
karena Timer milik Atmel dan NXP berbeda).
Pada seri ARM CortexM (ARM CortexM0, ARM CortexM1, ARM CortexM3, ARM CortexM4),
tiap prosesor dilengkapi dengan peripheral Timer, sehingga pengguna yang ingin
memiliki kebebasan memilih manufaktur semikonduktor dapat berpindah ke
manufaktur lain tanpa harus mengubah program mereka.
ARM Holdings sendiri menyarankan agar SysTick digunakan untuk Timer RTOS,
sehingga RTOS tersebut (beserta aplikasinya) dapat dipindahkan dari prosesor
satu ke prosesor lainnya (Contoh: dari ARM CortexM0 ke ARM CortexM3) ataupun
dari manufaktur satu ke manufaktur lainnya (Contoh: dari STMicroelectronics ke
NXP) tanpa perubahan apa pun di kode program.
Wakeup Interrupt Controller (WIC)
WIC adalah peripheral tambahan di ARM CortexM untuk mengaktifkan prosesor yang
sedang dalam mode penghematan energi (sleep, deep sleep, dan sebagainya). WIC
dibutuhkan untuk mengurangi konsumsi daya prosesor, karena mampu mengaktifkan
prosesor tanpa menggunakan clock. WIC merupakan peripheral tambahan untuk
membantu kerja NVIC.
Ketika prosesor dalam mode penghematan energi, WIC akan mendeteksi event yang
digunakan untuk mengaktifkan prosesor. Ketika event tersebut terdeteksi, WIC
akan mengaktifkan prosesor dan NVIC (keluar dari power saving mode), dan
menyerahkan tugas ke NVIC untuk memproses interrupt tersebut (jika event
tersebut berupa external interrupt).
Embedded Debug Core
Debug core di prosesor seri ARM CortexM memungkinkan user untuk
mendebug program tanpa harus melepas prosesor dari PCB. Prosesor tanpa debug
core (contoh Intel 8051) memerlukan emulator khusus untuk mendebug program
(prosesor harus dilepas dari PCB, kemudian kabelkabel dari emulator disolder
ke PCB, di footprint prosesor).
Dengan debug core, pengembang aplikasi ARM CortexM cukup menghubungkan tiga
pin (SWDIO, SWDCLK, dan GND) prosesor ARM CortexM ke JTAG eksternal (JTAG
berguna untuk menjembatani program di PC dengan prosesor) tanpa harus melepas
prosesor ARM CortexM dari PCB.
Kompatibilitas Set
Instruksi ARM CortexM0
Set instruksi yang digunakan oleh ARM CortexM0
dinamakan set instruksi Thumb. Set instruksi ARM CortexM0 adalah subset dari
set instruksi ARM CortexM yang lain, sehingga program yang dikompile untuk ARM
CortexM0 kompatibel dengan prosesor ARM CortexM yang lain.
Selain itu, ARM CortexM0 juga kompatibel dengan set instruksi
prosesor ARM dari seri klasik dan CortexA (ARM Cortex Application Processor).
Kesimpulan
Keserdehanaan, kompatibilitas, dan harga ARM CortexM0 membuat prosesor ini
sebagai prosesor yang tepat untuk:
• Migrasi aplikasi dari prosesor 8/16bit ke 32bit
• Prosesor entry level untuk aplikasi yang memerlukan kompatibilitas antara
produk entry level sampai produk yang rumit, dengan satu arsitektur.
Daftar
Pustaka
ARM Architecture. (n.d.). Retrieved Jan 30, 2011, from the Wikipedia:
http://en.wikipedia.org/wiki/ARM_architecture
Acorn Computers. (n.d.). Retrieved Jan 30, 2011, from the Wikipedia:
http://en.wikipedia.org/wiki/Acorn_Computers
ARM Holdings. (n. d.). Retrieved Jan 30, 2011, fromhttp://www.arm.com/products/processors/index.php
ARM klasik adalah keluarga ARM prosesor yang pertama kali dirilis oleh ARM Ltd (sekarang ARM Holdings). Prosesor ARM klasik ideal untuk pengguna yang ingin menggunakan teknologi telah teruji di pasar. Prosesorprosesor ini telah digunakan untuk berbagai macam produk elektronik selama bertahun-tahun. Desainer produk elektronik yang memilih prosesorprosesor ini dijamin mempunyai dukungan ekosistem dan sumber daya yang luas, tingkat kesulitan integrasi yang minimum, dan menurunkan waktu desain.
Prosesorprosesor di keluarga seri CortexM telah dikembangkan khusus untuk domain mikrokontroler, dimana permintaan untuk kecepatan, determinasi waktu proses, dan manajemen interrupt bersama dengan jumlah gate silikon minimum (luas silikon yang minimum menentukan harga akhir prosesor) dan konsumsi daya yang minimum sangat diminati. Contoh aplikasi prosesor CortexM adalah mikrokontroller dan sensor cerdas.
Prosesor-prosesor di keluarga seri CortexR, sebaliknya, dikembangkan khusus untuk keperluan realtime yang mendalam, dimana kebutuhan konsumsi daya minimum dan sifat interrupt yang terprediksi diimbangi dengan performa yang luar biasa dan kompatibilitas yang kuat dengan platform yang telah ada. Contoh aplikasi prosesor CortexR adalah ABS (Automotive Braking Systems), kontroler elektronik roda gigi, hidrolik, dan mesin otomotif.
Prosesorprosesor di keluarga prosesor aplikasi dikembangkan untuk aplikasi yang membutuhkan daya komputasi yang tinggi (frekuensi prosesing ratarata 2GHz), seperti netbook, mobile internet devices, smartphone, dan lain-lain.
ARM CortexM0 adalah prosesor dari keluarga ARM Cortex prosesor embedded untuk menggantikan aplikasi mikrokontroler 8/16bit. Keunggulan ARM CortexM0 dibandingkan mikrokontroler 8/16bit terletak pada:
• Kemampuan komputasi yang lebih tinggi untuk frekuensi kerja yang sama
• Konsumsi daya yang lebih kecil atau sama
• Jumlah pin yang sedikit (kurang dari 50pin, tidak memerlukan multilayer PCB, luas PCB yang dibutuhkan kecil, tidak membutuhkan keahlian khusus untuk memasang prosesor di board), tidak seperti prosesor 32bit lainnya (butuh setidaknya 100pin, multilayer PCB, dan mesin XRay / oven)
• Harga yang lebih murah atau sama
• Kompatibel dengan ARM CortexM lain (ARM CortexM3, ARM CortexM4). Aplikasi yang dikompile untuk ARM CortexM0 bisa dijalankan di ARM CortexM lainnya. Hal ini berguna untuk upgrade hardware, tanpa membuang software yang sudah dikerjakan.
ARM CortexM0 mempunyai peripheralperipheral yang terintegrasi dengan prosesor. Peripheralperipheral tersebut merupakan bagian dari desain ARM CortexM0. Karena itu, peripheralperipheral tersebut terdapat di semua mikroprosesor yang berbasis ARM CortexM0, walaupun dibuat oleh manufaktur yang berbeda. Selain itu, peripheralperipheral yang terdapat di ARM CortexM0, juga terdapat di prosesor ARM CortexM yang lain (ARM CortexM1, ARM CortexM3, ARM CortexM4), sehingga semua prosesor di
keluarga ARM CortexM kompatibel satu sama lainnya. Peripheralperipheral tersebut antara lain:
NVIC adalah peripheral yang mengatur interrupt ARM CortexM (ARM CortexM0, ARM CortexM1, ARM CortexM3, ARM CortexM4). NVIC mengatur prioritas interrupt, mengaktifkan / menonaktifkan interrupt, menyimpan isi registerregister ARM CortexM ke memori stack ketika prosesor memasuki interrupt handler, dan mengembalikan isi registerregister ARM CortexM dari memori stack ketika prosesor keluar dari interrupt handler.
SCB adalah peripheral yang digunakan untuk mengatur mode prosesor. SCB menyediakan berbagai info untuk program pengguna (seperti CPU ID, konfigurasi memori big/little endian, nomor interrupt yang saat ini ditangani, dan sebagainya)
Pada seri ARM klasik, prosesorprosesor ARM tidak dilengkapi dengan Timer, sehingga tiap manufaktur melengkapi prosesor tersebut dengan peripheral Timer milik mereka sendiri. Akibatnya, terdapat isu kompatibilitas jika pengguna ingin berpindah dari prosesor ARM dari manufaktur yang satu ke manufaktur lainnya (Contoh: pengguna yang menggunakan peripheral Timer di ARM7TDMI buatan Atmel tidak bisa menggunakan ARM7TDMI buatan NXP tanpa mengubah kode program terlebih dulu, walaupun keduanya berbasis prosesor yang sama, karena Timer milik Atmel dan NXP berbeda).
Pada seri ARM CortexM (ARM CortexM0, ARM CortexM1, ARM CortexM3, ARM CortexM4), tiap prosesor dilengkapi dengan peripheral Timer, sehingga pengguna yang ingin memiliki kebebasan memilih manufaktur semikonduktor dapat berpindah ke manufaktur lain tanpa harus mengubah program mereka.
ARM Holdings sendiri menyarankan agar SysTick digunakan untuk Timer RTOS, sehingga RTOS tersebut (beserta aplikasinya) dapat dipindahkan dari prosesor satu ke prosesor lainnya (Contoh: dari ARM CortexM0 ke ARM CortexM3) ataupun dari manufaktur satu ke manufaktur lainnya (Contoh: dari STMicroelectronics ke NXP) tanpa perubahan apa pun di kode program.
WIC adalah peripheral tambahan di ARM CortexM untuk mengaktifkan prosesor yang sedang dalam mode penghematan energi (sleep, deep sleep, dan sebagainya). WIC dibutuhkan untuk mengurangi konsumsi daya prosesor, karena mampu mengaktifkan prosesor tanpa menggunakan clock. WIC merupakan peripheral tambahan untuk membantu kerja NVIC.
Ketika prosesor dalam mode penghematan energi, WIC akan mendeteksi event yang digunakan untuk mengaktifkan prosesor. Ketika event tersebut terdeteksi, WIC akan mengaktifkan prosesor dan NVIC (keluar dari power saving mode), dan menyerahkan tugas ke NVIC untuk memproses interrupt tersebut (jika event tersebut berupa external interrupt).
Debug core di prosesor seri ARM CortexM memungkinkan user untuk mendebug program tanpa harus melepas prosesor dari PCB. Prosesor tanpa debug core (contoh Intel 8051) memerlukan emulator khusus untuk mendebug program (prosesor harus dilepas dari PCB, kemudian kabelkabel dari emulator disolder ke PCB, di footprint prosesor).
Dengan debug core, pengembang aplikasi ARM CortexM cukup menghubungkan tiga pin (SWDIO, SWDCLK, dan GND) prosesor ARM CortexM ke JTAG eksternal (JTAG berguna untuk menjembatani program di PC dengan prosesor) tanpa harus melepas prosesor ARM CortexM dari PCB.
Set instruksi yang digunakan oleh ARM CortexM0 dinamakan set instruksi Thumb. Set instruksi ARM CortexM0 adalah subset dari set instruksi ARM CortexM yang lain, sehingga program yang dikompile untuk ARM CortexM0 kompatibel dengan prosesor ARM CortexM yang lain.
Keserdehanaan, kompatibilitas, dan harga ARM CortexM0 membuat prosesor ini sebagai prosesor yang tepat untuk:
• Migrasi aplikasi dari prosesor 8/16bit ke 32bit
• Prosesor entry level untuk aplikasi yang memerlukan kompatibilitas antara produk entry level sampai produk yang rumit, dengan satu arsitektur.
ARM Architecture. (n.d.). Retrieved Jan 30, 2011, from the Wikipedia:
http://en.wikipedia.org/wiki/ARM_architecture
Acorn Computers. (n.d.). Retrieved Jan 30, 2011, from the Wikipedia:
http://en.wikipedia.org/wiki/Acorn_Computers
ARM Holdings. (n. d.). Retrieved Jan 30, 2011, fromhttp://www.arm.com/products/processors/index.php
Tidak ada komentar:
Posting Komentar