1. Putra Fadillah
2. Gery Adnediel
3. Aditiya Suryani
4. Rizki Ardi
5. Ady Indra Maysa Putra
6. Alwizar
Gambar 2.1
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.
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.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.
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
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.
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
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
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.
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