ARSITEKTUR MIKROPROSESOR
Blok fungsi yang utama uP modern terdiri dari unit aritmatika dan logika (Arithmetic logic unit, ALU), file register dan
unit kendali (control unit).
Unit Aritmatika dan logika (ALU) adalah komponen inti dari semua mikroprosesor. Ia melakukan operasi seputar
aritmatika bilangan dan logika biner dari mikroprosesor. ALU adalah gabungan rangkaian logika dan memiliki dua
jalur masukan, sebuah jalur data keluaran dan sebuah jalur status. Ia mengambil data dari register mikroprosesor,
mengolah data sesuai dengan instruksi dari unit kendali dan menyimpan hasilnya pada regsiter keluarannya yang
dinamakan accumulator atau work register. Semua ALU modern menggunakan format data biner dalam komplemen
2.
Operasi aritmatika bilangan yang dilakukan oleh ALU diantaranya penjumlahan dan pengurangan. Operasi logika
melaksanakan proses AND, OR, NOT dan EXCLUSIVE-OR. Beberapa mikroprosesor 64-bit juga melakukan operasi
perkalian dan pembagian. Disebagian mikroprosesor, operasi perkalian dan pembagian dilakukan dengan
menuliskan algoritma menggunakan operasi penjumlahan dan pengurangan. ALU juga melakukan operasi
menggeser bit dan operasi membandingkan data.
File register meliputi berbagai register digunakan utamanya untuk menyimpan data, pengalamatan, dan informasi
status selama menjalankan program. Register adalah perangkat logika sekuensial dibangun dari flip-flop. Sebagian
dari kebanyakan register yang ditemukan didalam sebagian besar mikroprosesor terdiri dari Program Counter,
register instruksi, register buffer, register status, stack pointer, general-purpose register dan register sementara.
Accumulator (ACU) atau work register, merupakan menyimpan data yang akan diproses oleh ALU dan
menampung data hasil proses di ALU. data pada ACU harus segera dipindah ke GPR atau memori eksternal setelah
siklus proses ALU selesai, karena ACU akan segera diisi data lain pada siklus proses di ALU berikutnya.
Program Counter adalah register yang menyimpan alamat instruksi berikutnya yang akan dijalankan dan karenanya
memainkan peran utama didalam pengendalian urutan instruksi mesin yang dijalankan prosesor. Setelah instruksi
dibaca ke memori, program counter dengan sendirinya menaikkan 1 alamat. Ini tentunya pada anggapan bahwa
instruksi dijalankan berurutan. Muatannya dipengaruhi juga oleh instruksi jump dan call. Pada kasus instruksi jump,
pertama program counter diisi dengan alamat baru dan kemudian dinaikkanya sampai ditemukan instruksi jump
lainnya. Ketika mikroprosesor menerima sebuah instruksi untuk memulai sebuah subrutin, muatan dari program
counter akan dinaikkan 1 dan disimpan didalam stack. Program counter diisi dengan alamat pertama dari subrutin.
Muatannya akan dinaikkan 1 sampai ditemukan instruksi return. Muatan yang tersimpan di-stack kemudian diisikan
kembali kedalam program counter dan program dilanjutkan, menjalankan setiap instruksi secara berurutan sampai
ditemukan instruksi jump atau pemanggilan subrutin ditemukan. Proses interupsi juga mempengaruhi muatan
program counter.
Instruction Register menyimpan kode dari instruksi yang sedang dijalankan. Control unit mengupas kode operasi
dari instruction register, yang mana merupakan urutan dari sinyal kendalike sistem untuk melaksanakan proses yang
dipersyaratkan oleh instruksi.
Buffer register menghubungkan mikroprosesor dengan sistem memorinya. Dua standar buffer register adalah
memory address register (MAR) dan memory buffer register (MBR). MAR menghubungkan kaki address dan
mikroprosesor dan menggenggam alamat memori absolut dari data atau instruksi untuk diakses. MBR, juga disebut
sebagai memory data register dihubungkan ke kaki data mikroprosesor. Ia menyimpan semua data yang ditulis ke
atau dibaca dari memori.
Status register atau flag register menyimpan status keluaran dari hasil sebuah operasi dan memberikan informasi
tambahan tentang hasil dari operasi ALU. Status dari bit yang tersimpan didalam status register menyatakan tentang
yang terjadi atau tidak terjadi dari kondisi yang berbeda dan satu bit atau lebih dan kemungkinan akan diperbarui
pada akhir operasi. Setiap bit adalah tanda Boolean yang menyatakan kondisi tertentu. Kondisi yang paling banyak
adalah carry, overflow, zerodan negative. Untuk contoh, nilai 1 diposisi status bit carry menunjukkan bahwa hasil
operasi menghasilkan sebuah carry. Pentingnya memperhatikan status register didalam kenyataanya bahwa kondisi
seperangkat kode pada status bit yang berbeda didalam status register membentuk pembuatan keputusan oleh
mikroprosesor selama menjalankan program.
Stack pointer adalah register yang digunakan untuk menyimpan alamat dari lokasi memori yang dimiliki paling
akhir ketika masuk di percabangan. Dalam kenyataan, stack adalah sebuah blok dari lokasi memori yang dirancang
untuk menyimpan sementara dari data alamat. Ini digunakan untuk menyimpan data dari general purpose register
selama melaksanakan subrutin atau sebuah interupsiyang sedang dilayani. Data dipindahkan dari register general ke
stack dengan instruksi PUSH pada awal pemanggilan subrutin, dan kembali ke register general dengan perintah
POP pada akhir pemanggilan subrutin. Mikroprosesor menggunakan stack karena ini lebih cepat untuk memindah
data menggunakan perintah PUSH dan POP daripada untuk memindah data ke/dari memori menggunakan instruksi
MOVE.
general-purpose register. Ada sejumlah register untuk penggunaan umum, dirancang sebagai general-purpose
register (GPR). Mereka digunakan secara eksplisit untuk menyimpan informasi data dan alamat. Register data
digunakan untuk operasi aritmatika, selama register alamat menggunakan pengalamatan berindeks (indexing) dan
tak langsung (indirect). Ini meningkatkan kecepatan proses dari mikroprosesor dengan menghindari jumlah yang
besar dari operasi baca/tulis memori eksternal selama operasi ALU dilaksanakan, ini sebagai hasil yang lebih mudah
dan lebih cepat untuk membaca dari atau menulis ke register internal daripada membaca dari atau menulis ke lokasi
memori eksternal.
Awalnya mikroprosesor hanya memiliki sebuah register yang disebut Akumulator (Accumulator) untuk menyimpan
hasil operasi ALU. hal ini membutuhkan sedikitnya empat instruksi bahasa rakitan (assembly) untuk mengerjakan
penjumlahan sederhana, termasuk mengambil data dari lokasi memori eksternal ke akumulator, menjumlahkan isi
akumulator ke lokasi memori lain, menyimpan hasilnya ke akumulator dan memindah isi akumulator kembali ke
lokasi memori eksternal. Dengan ketersediaan GPR dengan jumlah yang lebih besar, ini akan memungkinkan untuk
melaksanakan berbagai operasi ALU tanpa pernah butuh menyimpan data di memori eksternal.
Temporary register dibutuhkan ketika data harus disimpan selama pelaksanaan sebuah instruksi mesin. Register ini
tersembunyi dari pemakai mikroprosesor.
Control unit memerintah dan mengkoordinasikan aktifitas dari bagian-bagian yang berbeda dari prosesor dan
perangkat I/O. Ia bertanggungjawab untuk mengendalikan siklus dari pengambilan instruksi mesin dari memori dan
menjalankannya. Ia juga mengkoordinasikan aktifitas perangkat masukan dan keluaran. Ini pasti blok fungsi yang
sangat rumit dari semua blok mikroprosesor dan mencakup bagian terluas pada area chip. Control unit adalah
rangkaian logika sekuensial, sesuai langkah-langkah prosesor melalui urutan dari operasi yang diserempakkan. Ia
mengirimkan terus-menerus dari sinyal kendali dan pulsa berwaktu ke komponen dan kaki eksternal mikroprosesor.
Sebagai ilustrasi, untuk menjalankan sebuah instruksi dari memori, control unit mengirim keluar perintah “baca” ke
memori dan membaca instruksi (atau data) ini kembali pada data bus.