Arsitektur ARM merupakan arsitektur prosesor 32-bit RISC yang dikembangkan oleh ARM Limited. Dikenal sebagai Advanced RISC Machine dimana sebelumnya dikenal sebagai Acorn RISC Machine. Pada awalnya merupakan prosesor desktop yang sekarang didominasi oleh keluarga x86. Namun desain yang sederhana membuat prosesor ARM cocok untuk aplikasi berdaya rendah. Hal ini membuat prosesor ARM mendominasi pasar mobile electronic dan embedded system dimana membutuhkan daya dan harga yang rendah.

Pada tahun 2007, sekitar 98% dari satu miliar mobile phone yang terjual menggunakan setidaknya satu buah prosesor ARM. Dan pada tahun 2009, prosesor ARM mendominasi sekitar 90% dari keseluruhan pasar prosesor 32-bit RISC. Prosesor ARM digunakan di berbagai bidang seperti elektronik umum, termasuk PDA, mobile phone, media player, music player, game console genggam, kalkulator dan periperal komputer seperti hard disk drive dan router.

Lisensi arsitektur ARM dimiliki oleh Alcatel, Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Freescale, Intel melalui DEC, LG, Marvell Technology Group, NEC, NVIDIA, NXP Semiconductors, OKI, Quallcomm, Samsung, Sharp, ST Microelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamah dan ZiiLABS.


SEJARAH

Setelah sukses dengan komputer BBC Micro, Acorn Computers Ltd mempertimbangkan berpindah dari prosesor MOS Technology 6502 ke pasar yang akan segera didominasi oleh IBM PC yang diluncurkan pada tahun 1981. Acorn Business Computer (ABC) pada saat itu membutuhkan prosesor berikutnya untuk dapat bekerja pada platform BBC Micro. Namun prosesor seperti Motorola 68000 dan National Semiconductor 32016 tidak cocok, sedangkan prosesor 6502 tidak mencukupi untuk kebutuhan antar muka grafis.

Akhirnya Acorn mendesain prosesornya sendiri dengan proyek Berkeley RISC oleh engineernya. Kunjungan ke Western Design Center di daerah Phoenix meyakinkan engineer Acorn Steve Furber dan Sophie Wilson bahwa mereka tidak membutuhkan sumber daya dan fasilitas penelitian yang besar.

Wilson mengebangkan instruction set, mensimulasikan prosesor pada BBC Basic yang menjalankan BBC Micro dengan prosesor 6502 kedua. Hal tersebut membuktikan kepada engineer Acorn bahwa mereka berada pada proses yang tepat. Sebelum melangkah lebih jauh, mereka membutuhkan sumber daya yang lebih. Setelah Wilson mendapat persetujuan dari CEO Acorn, Hermann Hauser, tim kecil melanjutkan implementasi ke perangkat keras.

Proyek Acorn RISC Machine resmi dimulai pada Oktober 1983. VLSI Technology, Inc dipilih sebagai mitra dalam memproduksi chip silikon dimana sebelumnya telah memproduksi ROM dan custom chip sebelumnya. Proses desain dipimpin oleh Wilson dan Furber, dengan tujuan utama latensi rendah (low-latency) pada penanganan input/output (interupsi) seperti pada prosesor MOS Technology 6502. Arsitektur 6502 memberikan pengembang mesin yang cepat dalam pengaksesan memory tanpa harus menggunakan perangkat direct access memory yang mahal. VLSI memproduksi chip ARM pertama kali pada 26 April 1985 yang berhasil bekerja dan dikenal sebagai ARM1. Dan disusul dengan ARM2 yang diproduksi pada tahun berikutnya.

Pengaplikasian prosesor ARM pertama kali adalah prosesor kedua dari BBC Micro, untuk simulasi dalam pengembangan chip pendukung (VIDC, IOC, MEMC) dan untuk mempercepat penggunaan perangkat lunak CAD dalam pengembangan ARM2. Wilson menulis BBC Basic dalam bahasa assembly ARM, dimana kode sangat padat sehingga ARM BBC Basic sangat cocok untuk setiap emulator ARM.

ARM2 mempunyai lebar bus sebesar 32-bit, 26-bit (64 Mbyte) alamat memory dan 16 buah register 32-bit. Program code harus ada dalam 64 Mbyte pertama dari memory, sebagaimana program counter dibatasi pada 26-bit karena 6-bit atas pada register 32-bit digunakan sebagai status flag. 
Kemungkinan besar ARM2 merupakan prosesor 32-bit paling sederhana di dunia dengan hanya 10.000 transistor bila dibandingkan dengan Motorola 68000 dengan 70.000 transistor. Kesederhanaan ini diperoleh karena ARM tidak mempunyai microcode yang mencakup seperempat hingga sepertiga transistor pada Motorola 68000. Selain itu ARM pada saat itu tidak memiliki cache memory. Hal ini membuat ARM sebagai prosesor dengan konsumsi daya rendah namun performansi yang lebih baik dari pada Intel 80286. Penerusnya yaitu ARM3 mempunyai 4 kByte cache yang meningkatkan performansi.

Pada akhir 1980-an, Apple Computer dan VLSI Technology memulai kerja sama dengan Acorn untuk prosesor ARM berikutnya. Kerjasama ini sangat penting hingga Acorn melepas tim tersebut sebagai perusahaan baru bernama Advanced RISC Machines Ltd. pada tahun 1990. Sehingga seringkali ARM disebut sebagai Advanced RISC Machine disamping Acorn RISC Machine. Dan pada tahun 1998 Advanced RISC Machines menjadi ARM Ltd.

Hasil kerja sama Apple-ARM menghasilkan ARM6 pada awal tahun 1992. Apple menggunakan ARM6 (ARM 610) sebagai prosesor pada PDA Apple Newton dan pada tahun 1994 Acorn menggunakan ARM6 pada komputer PC RISC. Pada frekuensi 233 MHz, prosesor ini hanya mengonsumsi daya sebesar 1 Watt dan versi berikutnya lebih kecil dari itu.

Inti prosesor ARM tidak mengalami perubahan ukuran yang signifikan. Pada ARM2 terdapat 30.000 transistor sedangkan pada ARM6 bertambah hingga 35.000 transistor saja. ARM Ltd. hanya menjual IP (Intelectual Property) core dimana perusahaan lain dapat memproduksi mikrokontroller dan prosesor berdasarkan rancangan ARM. Implementasi yang dinilai paling berhasil adalah ARM7TDMI yang terjual hingga ratusan juta chip. Ide dasarnya adalah produsen chip komputer dapat membuat CPU lengkap berdasarkan rancangan ARM dan dapat dibuat pada pabrik semikonduktor lama serta memberikan performansi yang tinggi pada harga yang rendah. Arsitektur ARM dapat ditemui di banyak smartphone, PDA 

Keluarga ARM Mikroprosesor ARM mempunyai beberapa keluarga untuk menjangkau berbagai aplikasi.




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. Prosesor­prosesor ini telah digunakan untuk berbagai macam produk elektronik selama bertahun­-tahun. Desainer produk elektronik yang memilih prosesor­prosesor 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)


Prosesor di keluarga seri Cortex­M 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 Cortex­M adalah mikrokontroller dan sensor cerdas.

Prosesor­-prosesor di keluarga seri Cortex­R, sebaliknya, dikembangkan khusus untuk keperluan real­time 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 Cortex­R adalah ABS (Automotive Braking Systems), kontroler elektronik roda gigi, hidrolik, dan mesin otomotif.


ARM Cortex Prosesor Aplikasi (ARM Cortex Application Processors)

Prosesor di keluarga prosesor aplikasi dikembangkan untuk aplikasi yang membutuhkan daya komputasi yang tinggi (frekuensi prosesing rata­rata 2GHz), seperti netbook, mobile internet devices, smartphone, dan lain-­lain.

ARM Cortex­M0


ARM Cortex­M0 adalah prosesor dari keluarga ARM Cortex prosesor embedded untuk menggantikan aplikasi mikrokontroler 8­/16­bit. Keunggulan ARM Cortex­M0 dibandingkan mikrokontroler 8­/16­bit 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 50­pin, tidak memerlukan multi­layer PCB, luas PCB yang dibutuhkan kecil, tidak membutuhkan keahlian khusus untuk memasang prosesor di board), tidak seperti prosesor 32­bit lainnya (butuh setidaknya 100­pin, multi­layer PCB, dan mesin X­Ray / oven)
• Harga yang lebih murah atau sama
• Kompatibel dengan ARM Cortex­M lain (ARM Cortex­M3, ARM Cortex­M4). Aplikasi yang dikompile untuk ARM Cortex­M0 bisa dijalankan di ARM Cortex­M lainnya. Hal ini berguna untuk upgrade hardware, tanpa membuang software yang sudah dikerjakan.


ARM Cortex­M0 Peripheral


ARM Cortex­M0 mempunyai peripheral­peripheral yang terintegrasi dengan prosesor. Peripheral­peripheral tersebut merupakan bagian dari desain ARM Cortex­M0. Karena itu, peripheral­peripheral tersebut terdapat di semua mikroprosesor yang berbasis ARM Cortex­M0, walaupun dibuat oleh manufaktur yang berbeda. Selain itu, peripheral­peripheral yang terdapat di ARM Cortex­M0, juga terdapat di prosesor ARM Cortex­M yang lain (ARM Cortex­M1, ARM Cortex­M3, ARM Cortex­M4), sehingga semua prosesor di


keluarga ARM Cortex­M kompatibel satu sama lainnya. Peripheral­peripheral tersebut antara lain:

Nested Vectored Interrupt Controller (NVIC )


NVIC adalah peripheral yang mengatur interrupt ARM Cortex­M (ARM Cortex­M0, ARM Cortex­M1, ARM Cortex­M3, ARM Cortex­M4). NVIC mengatur prioritas interrupt, mengaktifkan / menon­aktifkan interrupt, menyimpan isi register­register ARM Cortex­M ke memori stack ketika prosesor memasuki interrupt handler, dan mengembalikan isi register­register ARM Cortex­M 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, prosesor­prosesor 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 Cortex­M (ARM Cortex­M0, ARM Cortex­M1, ARM Cortex­M3, ARM Cortex­M4), 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 Cortex­M0 ke ARM Cortex­M3) ataupun dari manufaktur satu ke manufaktur lainnya (Contoh: dari STMicroelectronics ke NXP) tanpa perubahan apa pun di kode program.


Wake­up Interrupt Controller (WIC)


WIC adalah peripheral tambahan di ARM Cortex­M 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 Cortex­M memungkinkan user untuk men­debug 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 kabel­kabel dari emulator disolder ke PCB, di footprint prosesor).

Dengan debug core, pengembang aplikasi ARM Cortex­M cukup menghubungkan tiga pin (SWDIO, SWDCLK, dan GND) prosesor ARM Cortex­M ke JTAG eksternal (JTAG berguna untuk menjembatani program di PC dengan prosesor) tanpa harus melepas prosesor ARM Cortex­M dari PCB.




0 komentar:

Posting Komentar