Anda di halaman 1dari 19

Nama Kelompok :

1. Putra Fadillah
2. Gery Adnediel
3. Aditiya Suryani
4. Rizki Ardi
5. Ady Indra Maysa Putra
6. Alwizar

Chapter 2 ARM Processor Fundamentals

Gambar 2.1

ARM core dataflow model


instruksi copy data dari register ke memori. Tidak ada instruksi pemrosesan data
yang secara langsung memanipulasi data di memori. Dengan demikian, pengolahan data
dilakukan hanya dalam register. Item data ditempatkan di file register sebuah bank penyimpanan
yang terdiri dari register 32-bit. Karena inti ARM adalah prosesor 32-bit, kebanyakan instruksi
memperlakukan register sebagai pememegang nilai 32-bit yang ditandatangani atau tidak
ditandatangani. Tanda memperpanjang perangkat keras mengubah nomor 8-bit dan 16-bit yang
ditandatangani menjadi nilai 32-bit saat dibaca dari memori dan dimasukkan ke dalam register.
Petunjuk ARM biasanya memiliki dua register sumber, Rn dan Rm, dan satu hasil atau daftar
tujuan, Rd. Operator sumber dibaca dari file register menggunakan bus internal A dan B,
masing-masing. ALU (unit logika aritmatika) atau MAC (multiply-accumulating unit)
mengambil nilai register Rn dan Rm dari bus A dan B dan menghitung hasilnya. Instruksi
pemrosesan data tulis hasilnya di Rd langsung ke file register. Petunjuk beban dan simpan
menggunakan ALU untuk menghasilkan alamat yang akan diadakan di register alamat dan
disiarkan pada bus Address. Salah satu fitur penting dari ARM adalah register Rm alternatif
dapat diolah pada shifter laras sebelum memasuki ALU. Bersama-sama, shifter sebelumnya dan
ALU dapat menghitung berbagai macam ungkapan dan alamat. Setelah melewati unit fungsional,
hasilnya di Rd ditulis kembali ke file register menggunakan bus Result. Untuk petunjuk memuat
dan menyimpan update inkrementer register alamat sebelum inti membaca atau menulis nilai
register berikutnya dari atau ke lokasi memori berurutan berikutnya. Prosesor terus
mengeksekusi instruksi sampai terjadi exception atau interrupt yang mengubah aliran eksekusi
normal. Sekarang setelah Anda memiliki ikhtisar tentang inti prosesor, kita akan melihat lebih
rinci beberapa komponen utama prosesor: register, register status program saat ini (cpsr), dan
pipa.

2.1 Registers
Register tujuan umum menyimpan data atau alamat. Mereka diidentifikasi dengan huruf yang
diawali dengan nomor register. Misalnya register 4 diberi label r4. Gambar 2.2 menunjukkan
daftar aktif yang tersedia dalam mode pengguna-mode yang dilindungi biasanya.

digunakan saat menjalankan aplikasi Prosesornya bisa beroperasi dalam tujuh mode berbeda,
yang akan segera kita perkenalkan. Semua register yang ditampilkan berukuran 32 bit. Ada 18
register aktif: 16 register data dan 2 register status prosesor. Register data terlihat oleh
programmer sebagai r0 sampai r15. Prosesor ARM memiliki tiga register yang ditugaskan untuk
tugas tertentu atau fungsi khusus: r13, r14, dan r15. Mereka sering diberi label yang berbeda
untuk membedakannya dari register lainnya.
Pada Gambar 2.2, register yang diarsir mengidentifikasi register tujuan khusus yang ditugaskan:
■ Daftar r13 secara tradisional digunakan sebagai stack pointer (sp) dan menyimpan kepala
tumpukan dalam mode prosesor saat ini.
■ Daftar r14 disebut register tautan (lr) dan merupakan inti dari alamat pengirim setiap kali
memanggil subrutin.
■ Daftar r15 adalah program counter (pc) dan berisi alamat instruksi berikutnya yang akan
diambil oleh prosesor.
Bergantung pada konteks, daftar
r13 dan r14 juga dapat digunakan sebagai register tujuan umum, yang dapat sangat berguna
karena register ini diletakkan selama mode prosesor berubah. Namun, berbahaya untuk
menggunakan r13 sebagai daftar umum saat prosesor menjalankan segala bentuk sistem operasi
karena sistem operasi sering menganggap bahwa r13 selalu mengarah pada kerangka tumpukan
yang valid. Dalam keadaan ARM register r0 sampai r13 bersifat ortogonal - setiap instruksi yang
dapat Anda terapkan pada r0 dapat juga berlaku untuk register lainnya. Namun, ada petunjuk
yang memperlakukan r14 dan r15 dengan cara yang khusus. Selain 16 register data, ada dua
register status program: cpsr dan spsr (register status program saat ini dan yang disimpan,
masing-masing). File register berisi semua register yang tersedia untuk seorang programmer.
Register mana yang terlihat oleh programmer bergantung pada mode prosesor saat ini.

2.2 Current Program Status Register


Inti ARM menggunakan cpsr untuk memantau dan mengendalikan operasi internal. Cpsr adalah
register 32-bit khusus dan berada dalam file register. Gambar 2.3 menunjukkan tata letak dasar
daftar status program generik. Perhatikan bahwa bagian yang diarsir dicadangkan untuk ekspansi
di masa depan. The cpsr dibagi menjadi empat bidang, masing-masing 8 bit lebar: bendera,
status, ekstensi, dan kontrol. Dalam desain saat ini bidang ekstensi dan status dicadangkan untuk
penggunaan masa depan. Bidang kontrol berisi mode prosesor, state, dan interrupt mask bits.
Bidang bendera berisi flag kondisi. Beberapa core prosesor ARM memiliki bit tambahan yang
dialokasikan. Misalnya, bit J, yang dapat ditemukan di bidang bendera, hanya tersedia pada
prosesor berkemampuan Jazelle, yang mengeksekusi
Instruksi 8-bit. Kita akan membahas Jazelle lebih dalam Bagian 2.2.3. Hal ini sangat mungkin
bahwa desain masa depan akan memberikan bit tambahan untuk pemantauan dan pengendalian
fitur baru. Untuk penjelasan lengkap tentang cpsr, lihat Lampiran B.

2.2.1 Processor Modes


Mode prosesor menentukan register mana yang aktif dan hak akses ke register cpsr itu sendiri.
Setiap mode prosesor adalah privilege atau nonprivileged: Mode istimewa memungkinkan akses
membaca-menulis penuh ke cpsr. Sebaliknya, mode nonprivileged hanya mengizinkan akses
baca ke bidang kontrol di cpsr namun tetap memungkinkan akses baca tulis ke bendera. Ada
tujuh mode prosesor secara keseluruhan: enam mode istimewa (batalkan permintaan, permintaan
interupsi yang cepat, permintaan interupsi, supervisor , sistem, dan tidak terdefinisi) dan satu
mode nonprivileged (pengguna). Prosesor memasuki membatalkan mode bila ada usaha yang
gagal untuk mengakses memori. Permintaan permintaan interupsi dan interrupt yang cepat sesuai
dengan dua tingkat interupsi yang tersedia pada prosesor ARM. Mode Supervisor adalah mode
dimana prosesor berada dalam setelah reset dan umumnya adalah mode dimana inti sistem
operasi beroperasi. Mode sistem adalah versi khusus dari mode pengguna yang memungkinkan
akses baca-tulis penuh ke cpsr. Tidak mendefenisikan mode digunakan saat prosesor menemukan
instruksi yang tidak terdefinisi atau tidak didukung oleh implementasinya. Mode pengguna
digunakan untuk program dan aplikasi.

2.2.2 Banked Registers


Gambar 2.4 menunjukkan semua 37 register dalam file register. Dari jumlah tersebut, 20 register
tersembunyi dari sebuah program pada waktu yang berbeda. Register ini disebut register banked
dan diidentifikasi oleh shading dalam diagram. Mereka hanya tersedia saat prosesor berada pada
posisi tertentu
mode; misalnya, mode membatalkan telah membelokkan register r13_abt, r14_abt dan spsr_abt.
Mode register Banked tertentu dilambangkan dengan karakter garis bawah ke mode posting tetap
atau mode mnemonic. Setiap mode prosesor kecuali mode pengguna bisa berubah mode dengan
menulis langsung ke bit mode cpsr. Semua mode prosesor kecuali systemmode memiliki satu set
register banked terkait yang merupakan subset dari 16 register utama. A banked register
memetakan satu-ke-satu ke register mode pengguna. Jika Anda mengubah mode prosesor,
register miring dari mode baru akan menggantikan register yang ada. Misalnya, saat prosesor
berada dalam mode interrupt request, instruksi yang Anda jalankan masih akses register bernama
r13 dan r14. Namun, register ini adalah register banked r13_irq dan r14_irq. Modus pengguna
register r13_usr dan r14_usr tidak terpengaruh oleh instruksi referensi register ini. Sebuah
program masih memiliki akses normal ke register lainnya r0 ke r12. Modus prosesor dapat
diubah oleh program yang menulis langsung ke cpsr (inti prosesor harus dalam mode istimewa)
atau oleh perangkat keras saat inti merespons
Sebuah pengecualian atau interupsi Pengecualian dan interupsi berikut menyebabkan perubahan
mode: reset, permintaan interupsi, permintaan interupsi cepat, interupsi perangkat lunak, data
dibatalkan, dan instruksi yang tidak terdefinisi. Pengecualian dan interupsi menunda eksekusi
instruksi sekuensial secara normal dan beralih ke lokasi tertentu. Gambar 2.5 mengilustrasikan
apa yang terjadi ketika sebuah interrupt memaksa sebuah mode berubah. Angka tersebut
menunjukkan perubahan inti dari mode pengguna menjadi mode permintaan interupsi, yang
terjadi saat permintaan interupsi terjadi karena perangkat eksternal meningkatkan interupsi ke
inti prosesor. Perubahan ini menyebabkan register pengguna r13 dan r14 menjadi miring.
Register pengguna diganti dengan register r13_irq dan r14_irq. Catatan r14_irq berisi alamat
pengirim dan r13_irq berisi stack pointer untuk mode permintaan interupsi. Gambar 2.5 juga
menunjukkan daftar baru yang muncul dalam mode permintaan interupsi: register status program
yang disimpan (spsr), yang menyimpan mode cpsr sebelumnya. Anda bisa lihat di diagram cpsr
yang disalin ke spsr_irq. Untuk kembali ke mode pengguna, sebuah instruksi pengembalian
khusus digunakan yang menginstruksikan inti untuk mengembalikan cpsr asli dari spsr_irq dan
bank di register pengguna r13 dan r14. Perhatikan bahwa spsr hanya dapat dimodifikasi dan
dibaca dalam mode istimewa. Tidak ada spsr yang tersedia dalam mode pengguna.
Fitur penting lainnya yang perlu diperhatikan adalah bahwa cpsr tidak disalin ke spsr saat mode
berubah karena program menulis langsung ke cpsr. Penghematan cpsr hanya terjadi bila terjadi
pengecualian atau interupsi. Gambar 2.3 menunjukkan bahwa mode prosesor aktif saat ini
menempati lima bit paling penting dari cpsr. Bila daya diaplikasikan pada intinya, mulailah
dengan mode pengawas, yang memiliki hak istimewa. Dimulai dengan mode istimewa berguna
karena kode inisialisasi dapat menggunakan akses penuh ke cpsr untuk mengatur tumpukan
untuk masing-masing mode lainnya. Tabel 2.1 mencantumkan berbagai mode dan pola biner
yang terkait. Kolom terakhir dari tabel memberikan pola bit yang mewakili masing-masing mode
prosesor di cpsr.

2.2.3 State and Instruction Sets


Keadaan inti menentukan set instruksi mana yang sedang dieksekusi. Ada tiga set instruksi:
ARM, Thumb, dan Jazelle. Set instruksi ARM hanya aktif saat prosesor berada dalam status
ARM. Demikian pula set instruksi Thumb hanya aktif saat prosesor berada dalam keadaan
Thumb. Sekali dalam keadaan Thumb, prosesor mengeksekusi instruksi Thumb 16-bit murni.
Anda tidak bisa menggabungkan instruksi ARM, Thumb, dan Jazelle berurutan. Jazelle J dan
Thumb T bits di cpsr mencerminkan keadaan prosesor. Bila bit J dan T 0, prosesor berada dalam
status ARM dan menjalankan instruksi ARM. Ini adalah kasus ketika daya diterapkan ke
prosesor. Bila bit T adalah 1, maka prosesor berada dalam keadaan Thumb. Untuk mengubah
keadaan inti mengeksekusi instruksi cabang khusus. Tabel 2.2 membandingkan fitur set instruksi
ARM dan Thumb. Perancang ARM memperkenalkan set instruksi ketiga yang disebut Jazelle.
Jazelle menjalankan instruksi 8-bit dan merupakan campuran hibrida dari perangkat lunak dan
perangkat keras yang dirancang untuk mempercepat eksekusi Java bytecode. Untuk
mengeksekusi bytecode Java, Anda memerlukan teknologi Jazelle ditambah versi modifikasi
khusus dari mesin virtual Java. Penting untuk dicatat bahwa bagian perangkat keras Jazelle
hanya mendukung dari subset.
Set instruksi Jazelle adalah kumpulan instruksi tertutup dan tidak tersedia secara terbuka. Tabel
2.3 memberikan fitur set instruksi Jazelle.

2.2.4 Interrupt Masks

Interrupt Masks digunakan untuk menghentikan permintaan interupsi tertentu dari


sesuatu yang mengganggu prosesor. Ada dua tingkat permintaan interupsi yang tersedia pada inti
prosesor ARM-interrupt request (IRQ) dan fast interrupt request (FIQ). Cpsr memiliki dua bit
mask interupsi, 7 dan 6 (atau I dan F), yang mengendalikan masking dari IRQ dan FIQ, masing-
masing. The I bit masks IRQ saat diset ke biner 1, dan sama dengan itu F bit masker FIQ saat
diset ke biner 1.

2.2.5 Condition Flags


Condition Flags diperbarui dengan perbandingan dan hasil operasi ALU yang
ditentukan akhiran instruksi S. Misalnya, jika SUBS mengurangi instruksi menghasilkan nilai
register dari nol, maka flag Z di cpsr disetel. Instruksi kekurangan khusus ini secara khusus
perbarui cpsr.
Condition Flags
Flag Flag name Set when
Q Saturasi hasilnya menyebabkan overflow dan / atau saturasi
V oVerflow hasilnya menyebabkan overflow yang ditandatangani
C Carry hasilnya menyebabkan carry unsigned
Z Zero hasilnya nol, sering digunakan untuk menunjukkan persamaan
N Negatif bit 31 dari hasilnya adalah biner 1

Dengan core prosesor yang menyertakan ekstensi DSP, bit Q mengindikasikan jika
overflow atau kejenuhan telah terjadi dalam instruksi DSP yang disempurnakan. Bendera
"lengket" di Artinya perangkat keras hanya menyetel bendera ini. Untuk menghapus bendera
yang perlu Anda tulis ke cpsr langsung.
Pada prosesor berkemampuan Jazelle, bit J mencerminkan keadaan inti; Jika sudah
diatur, intinya adalah di negara Jazelle. Jbit umumnya tidak dapat digunakan dan hanya tersedia
pada beberapa inti prosesor. Untuk memanfaatkan Jazelle, perangkat lunak tambahan harus
dilisensi dari ARM Limited dan Sun Microsystems.
Sebagian besar instruksi ARM dapat dieksekusi secara kondisional pada nilai
kondisinya
bendera. Tabel 2.4 mencantumkan bendera kondisi dan deskripsi singkat tentang penyebabnya
set. Bendera ini terletak pada bit paling signifikan di cpsr. Bit ini digunakan untuk eksekusi
bersyarat.
Gambar 2.6 menunjukkan nilai khas untuk cpsr dengan kedua ekstensi DSP dan
Jazelle. Di buku ini kami menggunakan notasi yang menyajikan data cpsr dalam bentuk yang
lebih mudah dibaca manusia. Bila sedikit adalah biner 1 kita menggunakan huruf kapital; Bila bit
adalah biner 0, kita menggunakan huruf kecil surat. Untuk kondisi bendera huruf kapital
menunjukkan bahwa bendera telah ditetapkan. Untuk menyela sebuah huruf kapital
menunjukkan bahwa interupsi dinonaktifkan.
Dalam contoh cpsr yang ditunjukkan pada Gambar 2.6, flag C adalah satu-satunya flag
yang ditetapkan. Sisanya bendera nzvq semuanya jelas. Prosesor berada di negara bagian ARM
karena Jazelle j atau Thumb t bit ditetapkan. Interupsi IRQ diaktifkan, dan interupsi FIQ
dinonaktifkan.

2.2.6 Conditional Execution


Eksekusi bersyarat mengontrol apakah inti akan melakukan instruksi atau tidak.
Sebagian besar instruksi memiliki atribut kondisi yang menentukan apakah inti akan
menjalankannya berdasarkan setting dari kondisi flag. Sebelum eksekusi, prosesor
membandingkan kondisi atribut dengan kondisi bendera di cpsr. Jika mereka cocok, maka
instruksinya dieksekusi; Jika tidak instruksi diabaikan.
Atribut kondisi postfixed ke instruksi mnemonic, yang dikodekan ke dalam instruksi.
Ketika sebuah kondisi mnemonik tidak ada, perilaku defaultnya adalah mengaturnya agar selalu
(AL) dijalankan.

2.3 Pipeline
Pipa adalah mekanisme yang digunakan prosesor RISC untuk mengeksekusi instruksi.
Menggunakan pipa mempercepat eksekusi dengan mengambil instruksi berikutnya saat instruksi
lainnya sedang dilakukan diterjemahkan dan dieksekusi. Salah satu cara untuk melihat pipa
adalah menganggapnya sebagai mobil perakitan, dengan setiap tahap melaksanakan tugas
tertentu untuk memproduksi kendaraan.

Gambar 2.7 menunjukkan pipa tiga tahap:


■ Ambilkan instruksi dari memori.
■ Decode mengidentifikasi instruksi yang akan dieksekusi.
■ Jalankan proses instruksi dan tulis hasilnya kembali ke register.

Gambar 2.8 mengilustrasikan pipa dengan menggunakan contoh sederhana. Ini


menunjukkan urutan tiga instruksi yang diambil, diterjemahkan, dan dieksekusi oleh prosesor.
Setiap instruksi dibutuhkan satu siklus untuk menyelesaikan setelah pipa diisi.
Ketiga instruksi tersebut ditempatkan ke dalam pipa secara berurutan. Pada siklus
pertama inti mengambil instruksi ADD dari memori. Pada siklus kedua inti mengambil SUB
instruksi dan decode instruksi ADD. Pada siklus ketiga, baik SUB dan Instruksi ADD
dipindahkan sepanjang jalur pipa. Instruksi ADD dijalankan, SUB instruksi didekodekan, dan
instruksi CMP diambil. Prosedur ini disebut pengisian pipa. Pipeline memungkinkan inti untuk
melakukan instruksi setiap siklus.
Seiring bertambahnya panjang pipa, jumlah pekerjaan yang dilakukan pada setiap tahap
berkurang, yang memungkinkan prosesor untuk mencapai frekuensi operasi yang lebih tinggi.
Hal ini pada gilirannya akan meningkat penampilan. Sistem latency juga meningkat karena
membutuhkan lebih banyak siklus untuk mengisi Pipa sebelum inti bisa melakukan instruksi.
Panjang pipa yang meningkat juga berarti Bisa ada ketergantungan data antar tahapan tertentu.
Anda bisa menulis kode untuk mengurangi ini ketergantungan dengan menggunakan
penjadwalan instruksi (untuk informasi lebih lanjut tentang penjadwalan instruksi lihat Bab 6).
Desain pipa untuk setiap keluarga ARM berbeda. Misalnya, inti ARM9 meningkat
panjang pipa sampai lima tahap, seperti yang ditunjukkan pada Gambar 2.9. ARM9
menambahkan memori dan tahap writeback, yang memungkinkan ARM9 memproses rata-rata
1.1 MIK Dhrystone per MHz-peningkatan throughput instruksi sekitar 13% dibandingkan
dengan ARM7. Frekuensi maksimum yang dapat dicapai ARM9 juga lebih tinggi.
ARM10 meningkatkan panjang pipa lebih jauh lagi dengan menambahkan tahap
keenam, seperti yang ditunjukkan pada Gambar 2.10. ARM10 dapat memproses rata-rata 1,3
Dhrystone MIPS per MHz, kira-kira Throughput 34% lebih banyak daripada inti prosesor
ARM7, namun sekali lagi dengan biaya latensi yang lebih tinggi. Meski jaringan pipa ARM9 dan
ARM10 berbeda, mereka tetap menggunakan yang sama karakteristik pelaksana pipa sebagai
ARM7. Kode yang ditulis untuk ARM7 akan dijalankan pada sebuah ARM9 atau ARM10.

2.5.2 Memory Management

Sistem embedded sering menggunakan beberapa perangkat memori. Hal ini biasanya perlu untuk
memiliki a metode untuk membantu mengatur perangkat ini dan melindungi sistem dari aplikasi yang
mencoba membuat akses yang tidak tepat ke perangkat keras. Hal ini dicapai dengan bantuan memori
perangkat keras manajemen ARMcores memiliki tiga jenis perangkat keras manajemen memori-tidak
ada ekstensi tidak memberikan perlindungan, unit perlindungan memori (MPU) yang menyediakan
perlindungan terbatas, dan unit manajemen memori (MMU) yang memberikan perlindungan penuh:

 Memori yang tidak terlindungi tetap dan memberikan sedikit fleksibilitas. Hal ini biasanya
digunakan untuk sistem embedded kecil dan sederhana yang tidak memerlukan perlindungan
dari aplikasi yang merusak

Gambar 2.15 Arsitektur Harvard yang disederhanakan dengan cache dan TCM.

 MPU menggunakan sistem sederhana yang menggunakan sejumlah daerah memori terbatas. Ini
daerah dikontrol dengan satu set register coprocessor khusus, dan masing-masing daerah
didefinisikan dengan hak akses khusus. Jenis manajemen memori ini digunakan untuk sistem
yang membutuhkan proteksi memori namun tidak memiliki peta memori yang kompleks. MPU
dijelaskan di Bab 13.
 MMU adalah perangkat keras manajemen memori yang paling komprehensif yang tersedia di
LENGAN. MMU menggunakan seperangkat tabel terjemahan untuk memberikan kontrol yang
halus ingatan. Tabel ini disimpan dalam memori utama dan menyediakan virtual-ke-fisik peta
alamat serta akses perizinan. MMU dirancang untuk lebih canggih platform sistem operasi yang
mendukung multitasking. MMU dijelaskan di Bab 14.

2.5.3 Coprocessors
Coprocessors dapat dilekatkan pada prosesor ARM. Sebuah coprocessor memperpanjang pemrosesan
fitur inti dengan memperpanjang set instruksi atau dengan menyediakan register konfigurasi. Lebih dari
satu coprocessor dapat ditambahkan ke inti ARM melalui coprocessor antarmuka.

Coprocessor dapat diakses melalui sekelompok instruksi ARM yang berdedikasi yang menyediakan
antarmuka tipe load-store. Pertimbangkan, misalnya, coprocessor 15: The Prosesor ARM menggunakan
coprocessor 15 register untuk mengontrol cache, TCM, dan memori pengelolaan.

Coprocessor juga dapat memperpanjang set instruksi dengan menyediakan kelompok khusus instruksi
baru Misalnya ada satu set instruksi khusus yang bisa ditambahkan ke instruksi ARM standar yang
ditetapkan untuk memproses vektor floating-point (VFP) operasi.

Instruksi baru ini diproses pada tahap decode dari pipa ARM. Jika Tahap decode melihat instruksi
coprocessor, kemudian ia menawarkannya ke coprocessor yang relevan. Tetapi jika coprocessor tidak
hadir atau tidak mengenali instruksi, maka ARM mengambil pengecualian instruksi undefined, yang
memungkinkan Anda untuk meniru perilaku coprocessor dalam perangkat lunak

2.6 Architecture Revisions


Setiap implementasi prosesor ARM mengeksekusi arsitektur set instruksi khusus (ISA),
meskipun revisi ISA mungkin memiliki lebih dari satu implementasi prosesor.
ISA telah berkembang untuk memenuhi tuntutan pasar tertanam. Ini evolusi telah dikelola
dengan hati-hati oleh ARM, sehingga kode yang ditulis untuk dieksekusi lebih awal revisi
arsitektur juga akan dijalankan pada revisi arsitektur yang nanti.
Sebelum kita lanjutkan untuk menjelaskan evolusi arsitektur, kita harus mengenalkan theARM
nomenklatur prosesor Nomenklatur ini mengidentifikasi prosesor dan penyediaan individu
informasi dasar tentang set fitur
2.6.1 Nomenclature
ARM menggunakan nomenklatur yang ditunjukkan pada Gambar 2.16 untuk menggambarkan
implementasi proses. Huruf dan angka setelah kata "ARM" menunjukkan fitur sebuah prosesor
ARM{x}{y}{z}{T}{D}{M}{I}{E}
{J}{F}{-S}
x—family
y—memory
management/protection unit
z—cache
T—Thumb 16-bit decoder
D—JTAG debug
M—fast multiplier
I—EmbeddedICE macrocell
E—enhanced instructions (assumes
TDMI)
J—Jazelle
F—vector floating-point unit
S—synthesizible version
Figure 2.16 ARM nomenclature.
mungkin. Di masa depan kombinasi jumlah dan huruf bisa berubah karena lebih banyak fitur
ditambahkan Perhatikan nomenklatur tidak termasuk informasi revisi arsitektur. Ada beberapa
poin tambahan untuk membuat tentang tata nama ARM:

 Semua inti ARM setelah ARM7TDMI menyertakan fitur TDMI meskipun mungkin tidak
termasuk huruf-huruf setelah label "ARM".
 Keluarga prosesor adalah sekelompok implementasi prosesor yang berbagi sama
karakteristik perangkat keras. Misalnya, ARM7TDMI, ARM740T, dan ARM720T
semuanya berbagi karakteristik keluarga yang sama dan termasuk dalam keluarga ARM7.
 JTAG dijelaskan oleh IEEE 1149.1 Standard Test Access Port dan boundary scan
architecture. Ini adalah protokol serial yang digunakan oleh ARM untuk mengirim dan
menerima informasi debug antara inti prosesor dan peralatan uji.
 EmbeddedICE macrocell adalah perangkat keras debug yang terpasang pada prosesor
yang memungkinkan breakpoints dan watchpoints yang akan ditetapkan. Synthesizable
berarti inti prosesor dipasok sebagai kode sumber yang bias dikompilasi menjadi bentuk
yang mudah digunakan oleh alat EDA.

2.6.2 Architecture Evolution


Arsitektur terus berkembang sejak implementasi prosesor ARM yang pertama diperkenalkan
pada tahun 1985. Tabel 2.7 menunjukkan perangkat tambahan arsitektur yang signifikan dari
arsitektur asli versi 1 sampai arsitektur versi 6 saat ini. Salah satu perubahan yang paling
signifikan pada ISA adalah pengenalan instruksi Thumb yang ditetapkan di ARMv4T (prosesor
ARM7TDMI).
Tabel 2.8 merangkum berbagai bagian register status program dan ketersediaan beberapa fitur
tertentu pada instruksi arsitektur tertentu. "Semua" mengacu pada arsitektur ARMv4 dan
diatasnya.
2.7 ARM Processor Families
ARM telah merancang sejumlah prosesor yang dikelompokkan ke dalam keluarga yang berbeda
sesuai dengan inti yang mereka gunakan. Keluarga atau pengeleompokan didasarkan pada
ARM7, ARM9, ARM10, dan ARM1, inti Nomor postfix 7, 9, 10, dan 11 menunjukkan desain
inti yang berbeda. Semakin tinggi menunjukkan peningkatan kinerja dan kecanggihannya.
ARM8 dikembangkan tapi segera digantikan.
Tabel 2.9 menunjukkan perbandingan atribut secara kasar antara ARM7, ARM9, ARM10, dan
ARM11 core. Angka yang dikutip bisa sangat bervariasi dan tergantung langsung pada jenis dan
geometri proses manufakturnya, yang memiliki efek langsung pada frekuensi (MHz) dan
konsumsi daya (watt).
Table 2.7 Revision history.
Revision Example core implementation ISA enhancement
ARMv1 ARM1 Prosesor pertama ARM
26-bit addressing
ARMv2 ARM2 32-bit multiplier
32-bit coprocessor support
ARMv2a ARM3 On-chip cache
Atomic swap instruction
Coprocessor 15 for cache
management

ARMv3 ARM6 and ARM7DI 32-bit addressing


Separate cpsr and spsr
New modes—undefined
instruction and abort
MMU support—virtual
memory

ARMv3M ARM7M Signed and unsigned long


multiply instructions

ARMv4 StrongARM Load-store instructions for


signed and unsigned
halfwords/bytes
New mode—system
Reserve SWI space for
architecturally defined
operations
26-bit addressing mode no
longer supported

ARMv4T ARM7TDMI and ARM9T Thumb

ARMv5TE ARM9E and ARM10E Superset of the ARMv4T


Extra instructions added for
changing state between
ARM and Thumb
Enhanced multiply
instructions
Extra DSP-type instructions
Faster multiply accumulate

ARMv5TEJ ARM7EJ and ARM926EJ Java acceleration

ARMv6 ARM11 Improved multiprocessor


instructions
Unaligned and mixed endian
data handling
New multimedia instructions

Dalam setiap keluarga ARM, ada sejumlah variasi manajemen memori, cache, dan ekstensi
prosesor TCM. ARM terus memperluas kedua jumlah keluarga dan variasi yang berbeda dalam
setiap keluarga. Kita bisa menemukan prosesor lain yang menjalankan ARM ISA seperti
StrongARM dan XScale. Prosesor ini unik untuk perusahaan semikonduktor tertentu, dalam
kasus ini Intel.
Tabel 2.10 merangkum berbagai fitur dari berbagai prosesor. Selanjutnya Subbagian
menggambarkan keluarga ARM secara lebih rinci, dimulai dengan keluarga ARM7.
Table 2.8 Description of the cpsr.
Parts Bits Architectures Description
Mode 4:0 all processor mode
T 5 ARMv4T Thumb state
I&F 7:6 all interrupt masks
J 24 ARMv5TEJ Jazelle state
Q 27 ARMv5TE condition flag
V 28 all condition flag
C 29 all condition flag
Z 30 all condition flag
N 31 all condition flag

Table 2.9 ARM family attribute comparison.


ARM7 ARM9 ARM10 ARM11

Pipeline depth three-stage five-stage six-stage eight-stage


Typical MHz 80 150 260 335
mW/MHza 0.06 mW/MHz 0.19 mW/MHz 0.5 mW/MHz 0.4 mW/MHz
(+ cache) (+ cache) (+ cache)
MIPSb/MHz 0.97 1.1 1.3 1.2
Architecture Von Neumann Harvard Harvard Harvard
Multiplier 8 × 32 8 × 32 16 × 32 16 × 32
a Watts/MHz on the same 0.13 micron process.
b MIPS are Dhrystone VAX MIPS.

2.7.1
Inti ARM7 memiliki arsitektur bergaya Von Neumann, di mana data dan petunjuk gunakan bus
yang sama Intinya memiliki pipeline tiga tahap dan menjalankan arsitektur ARMv4T set
instruksi.
ARM7TDMI adalah yang pertama dari jajaran prosesor baru yang diperkenalkan pada tahun
1995. Saat ini iru merupakan inti yang sangat populer dan digunakan pada banyak prosesor
tertanam 32-bit. Hal itu memberikan rasio performance-to-power yang sangat bagus. Prosesor
ARM7TDMI memiliki inti yang telah dilisensikan oleh banyak perusahaan semikonduktor
teratas di seluruh dunia dan juga Inti pertama yang memasukkan set instruksi Thumb, instruksi
multiply yang cepat, dan Teknologi debug EmbeddedICE.
Table 2.10 ARM processor variants.
CPU core MMU/MP Cache Jazelle Thumb ISA Ea
U
ARM7TDMI none none no yes v4T no
ARM7EJ-S none none yes yes v5TEJ yes
ARM720T MMU unified—8K cache no yes v4T no
ARM920T MMU separate—16K /16K D + I no yes v4T no
cache
ARM922T MMU separate—8K/8K D + I no yes v4T no
cache
ARM926EJ- MMU separate—cache and yes yes v5TEJ yes
S TCMs configurable
ARM940T MPU separate—4K/4K D + I no yes v4T no
cache
ARM946E-S MPU separate—cache and no yes v5TE yes
TCMs configurable

ARM966E-S none separate—TCMs no yes v5TE yes


configurable
ARM1020E MMU separate—32K/32K D + I no yes v5TE yes
cache
ARM1022E MMU separate—16K/16K D + I no yes v5TE yes
cache
ARM1026EJ MMU and separate—cache and Yes yes v5TE Yes
-S MPU TCMs configurable
ARM1136J-S MMU separate—cache and Yes yes v6 Yes
TCMs configurable
ARM1136JF- MMU separate—cache and yes yes v6 yes
S TCMs configurable

Salah satu variasi yang signifikan dalam keluarga ARM7 adalah ARM7TDMI-S. ARM7TDMI-S
memiliki karakteristik operasi yang sama dengan standar ARM7TDMI namun juga dapat
disintesis. ARM720T adalah anggota keluarga ARM7 yang paling fleksibel karena mencakup
sebuah MMU. Kehadiran MMU berarti ARM720T mampu menangani platform sistem operasi
Linux dan Microsoft tertanam. Prosesor juga mencakup kesatuan 8K cache. Tabel vektor dapat
dipindahkan ke alamat yang lebih tinggi dengan menetapkan sebuah coprocessor 15 register.
Variasi lain adalah prosesor ARM7EJ-S, yang juga bisa disintesis. ARM7EJ-S cukup berbeda
karena mencakup lima tahap pipeline dan menjalankan instruksi ARMv5TEJ. Versi ARM7 Ini
adalah satu-satunya yang menyediakan akselerasi Java dan instruksi yang disempurnakan tapi
tanpa proteksi memori.

2.7.2 ARM9 Family

Keluarga ARM9 diumumkan pada tahun 1997. Karena lima tahap pipeline, ARM9 prosesor
dapat berjalan pada frekuensi clock yang lebih tinggi daripada keluarga ARM7. Tahap ekstra
meningkatkan keseluruhan kinerja prosesor. Sistem memori telah didesain ulang mengikuti
arsitektur Harvard, yang memisahkan data D dan instruksi I bus.

Prosesor pertama dalam keluarga ARM9 adalah ARM920T, yang mencakup pemisahan cache D
+ I dan sebuah MMU. Prosesor ini bisa digunakan oleh sistem operasi yang membutuh
kandukungan memori virtual. ARM922T adalah variasi pada ARM920T, namun dengan
setengah ukuran cache D + I

ARM940T mencakup cache D + I yang lebih kecil dan sebuah MPU. ARM940T dirancang
untuk aplikasi yang tidak memerlukan sistem operasi platform. ARM920T dan ARM940T
menjalankan instruksi v4T arsitektur. Prosesor berikutnya dalam keluarga ARM9 didasarkan
pada inti ARM9E-S. Inti ini versi inti ARM9 yang dapat disintesis dengan ekstensi E. Ada dua
variasi: ARM946E-S dan ARM966E-S. Keduanya menjalankan instruksi arsitektur v5TE.
Mereka juga mendukung opsional jejak jejak macrocell (ETM), yang memungkinkan
pengembang untuk instruksi jejak dan eksekusi data secara real time pada prosesor. Ini penting
saat debugging aplikasi dengan segmen time-critical.

ARM946E-S mencakup TCM, cache, dan MPU. Ukuran TCM dan cache bisa dikonfigurasi
Prosesor ini dirancang untuk digunakan dalam aplikasi embedded control itu memerlukan
deterministik real-time response. Sebaliknya, ARM966E tidak memiliki MPU dan ekstensi
tembolok namun memiliki TCM yang dapat dikonfigurasi.

Inti terbaru dari jajaran produk ARM9 adalah prosesor ARM926EJ-S yang dapat disintesis core,
diumumkan pada tahun 2000. Ini dirancang untuk digunakan pada perangkat Java-enabled
portabel kecil seperti itu seperti ponsel 3G dan personal digital assistant (PDA). ARM926EJ-S
adalah ARM pertama inti prosesor untuk memasukkan teknologi Jazelle, yang mempercepat
eksekusi bytecode Java. Ini dilengkapi MMU, TCMs yang dapat dikonfigurasi, dan cache D + I
dengan status menunggu nol atau nonzero kenangan

2.7.3 ARM10 Family


ARM10 diumumkan pada tahun 1999, dirancang untuk kinerja. Membentang pipa ARM9
untuk enam tahap. Ini juga mendukung vektor opsional unit titik mengambang (VFP), yang
menambahkan tahap yang ketujuh ke pipa ARM10. VFP secara signifikan meningkatkan kinerja
floating-point dan sesuai dengan standar IEEE 754.1985 floating-point.
ARM1020E adalah prosesor pertama menggunakan ARM10E inti. Seperti ARM9E, termasuk
petunjuk E ditingkatkan. Ini memiliki terpisah 32K D + I cache, unit titik mengambang opsional
vektor dan MMU. ARM1020E juga memiliki antarmuka bus 64-bit dual untuk peningkatan
kinerja.
ARM1026EJ-S sangat mirip dengan ARM926EJ-S tetapi dengan MPU dan MMU. Prosesor ini
memiliki kinerja ARM10 dengan fleksibilitas ARM926EJ-S.

2.7.4 ARM11 Family


ARM1136J-S, mengumumkan pada tahun 2003, dirancang untuk aplikasi kinerja dan
powerefficient yang tinggi. ARM1136J-S adalah implementasi prosesor pertama untuk
mengeksekusi instruksi ARMv6 arsitektur. Ini menggabungkan delapan-tahap pipa dengan
terpisah loadstore dan aritmatika pipa. Petunjuk ARMv6 tersedia di satu instruksi beberapa data
(SIMD) ekstensi untuk pengolahan media, dirancang khusus untuk meningkatkan kinerja
pemrosesan video.
ARM1136JF-S adalah S ARM1136J dengan penambahan vektor unit titik mengambang
untuk cepat floating-point operasi.

2.7.5 Specialized Processors


StrongARM pada mulanya bersama-sama dikembangkan oleh Digital semikonduktor dan
sekarang secara eksklusif dilisensi oleh Intel Corporation. Hal ini telah populer untuk PDA dan
aplikasi yang memerlukan kinerja dengan konsumsi daya rendah. Itu adalah Harvard arsitektur
dengan terpisah D + saya cache. StrongARM adalah kinerja tinggi ARM prosesor yang pertama
untuk memasukkan pipa lima tahap, tetapi tidak mendukung set instruksi jempol.
Intel XScale adalah perbaikan produk untuk StrongARM dan menawarkan peningkatan
dramatis dalam kinerja. Pada saat penulisan, XScale dikutip dapat menjalankan hingga 1 GHz
XScale mengeksekusi instruksi v5TE arsitektur. Ini adalah arsitektur Harvard dan mirip dengan
StrongARM, karena juga termasuk MMU.
SC100 adalah di ujung lain spektrum kinerja. Hal ini dirancang khusus untuk aplikasi
keamanan daya rendah. SC100 SecurCore pertama dan didasarkan pada inti ARM7TDMI
bersama MPU. Inti ini kecil dan memiliki tegangan rendah dan persyaratan saat ini, yang
membuatnya menarik untuk aplikasi kartu pintar.
2.8 Kesimpulan
Dalam bab ini kami berfokus pada dasar-dasar perangkat keras prosesor lengan
sebenarnya.
Prosesor lengan dapat disarikan ke dalam delapan komponen-ALU, shifter barel, MAC,
daftar file, instruksi decoder, daftar alamat, incrementer, dan tanda memperluas.
Memiliki tiga set instruksi-lengan, ibu jari, dan Jazelle. File daftar berisi 37 Register, tetapi
hanya 17 atau 18 register Diakses pada setiap titik dalam waktu; sisanya membelok menurut
modus prosesor. Modus prosesor saat ini disimpan dalam cpsr. Ini memegang status saat ini
prosesor inti sebagai baik menyela masker, kondisi bendera dan negara. Negara menentukan set
instruksi yang sedang dijalankan.
Prosesor lengan terdiri dari inti ditambah komponen sekitarnya yang interface dengan
bus. Ekstensi inti meliputi:
■ Cache digunakan untuk meningkatkan kinerja keseluruhan sistem.
■ TCMs digunakan untuk memperbaiki deterministik real-time respon.
■ Manajemen memori digunakan untuk mengatur memori dan melindungi sumber daya sistem.
■ Coprocessors digunakan untuk memperpanjang set instruksi dan fungsionalitas. Coprocessor
15 kontrol manajemen cache, TCMs, dan memori.
Prosesor lengan adalah sebuah implementasi arsitektur set instruksi spesifik (ISA).
ISA telah terus-menerus diperbaiki dari desain prosesor lengan pertama. Prosesor
dikelompokkan menjadi keluarga implementasi (ARM7, ARM9, ARM10, dan ARM11) dengan
karakteristik yang sama.

Anda mungkin juga menyukai