ARSITEKTUR MIKROPROSESOR
Mikroprosesor (sering dituliskan: µP atau uP) adalah sebuah central processing unit (CPU) elektronik komputer yang terbuat dari transistor mini dan sirkuit lainnya di atas sebuah sirkuit terintegrasi (Integrated Circuit, IC) semikonduktor.
Sebelum berkembangnya mikroprosesor, CPU elektronik terbuat dari sirkuit terintegrasi TTL terpisah; sebelumnya, transistor individual; sebelumnya lagi, dari tabung vakum. Bahkan telah ada desain untuk mesin komputer sederhana atas dasar bagian mekanik seperti gear, shaft, lever, Tinkertoy, dll.
Evolusi dari mikroprosesor telah diketahui mengikuti Hukum Moore yang merupakan peningkatan performa dari tahun ke tahun. Teori ini merumuskan bahwa daya penghitungan akan berlipat ganda setiap 18 bulan, sebuah proses yang benar terjadi sejak awal 1970-an; sebuah kejutan bagi orang-orang yang berhubungan dengannya. Dari awalnya sebagai prosesor dalam kalkulator, perkembangan kekuatannya telah menuju ke dominasi mikroprosesor di berbagai jenis komputer; setiap sistem dari mainframe terbesar sampai ke komputer jijing terkecil sekarang menggunakan mikroprosesor sebagai pusatnya.
Blok fungsi yang
utama uP modern terdiri dari unit aritmatika dan logika (Arithmetic logic unit, ALU),
file register dan unit kendali (control unit).
Gambar Susunan skema umum mikroprosesor
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, zero dan 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 interupsi yang
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.
Control unit kemudian menterjemahkan instruksi
dan mengirimkan signal yang semestinya ke ALU, GPR, Multipllekser,
Demultiplekser, Program counter, dan lainnya. Jika instruksinya menyimpan data
di memori, control unit mengirim keluar alamat lokasi memori pada address bus,
data disimpan pada data bus dan perintah “tulis” pada jalur kendali.
Control
unit dikategorikan dua jenis bergantung dari cara membuatnya. Ini terdiri dari
control unit hard-wired dan microcoded. Control unit Hard-wired
adalah rangkaian logika sekuensial, yang mana statusnya terkait dengan fasa
dari siklus pelaksanaan instruksi. Dalam kasus control unit hard-wired, ada
rangkaian elektronik di control unit untuk membangkitkan sinyal kendali untuk
setiap instruksi. Mereka sangat kompak dan cepat, tetapi sulit untuk
merancangnya. Rancangan ini juga diketahui sebagai rancangan RISC (Reduced
Instruction Set Computer). Control unit microcoded mudah untuk merancang, dan
menjalankan sebuah instruksi dalam kasus ini melibatkan pelaksanaan sebuah
mikroprogram yang mengandung sebuah urutan dari mikro instruksi. Rancangan ini
juga diketahui sebagai rancangan CISC (Complex Instruction Set Computer).
Control unit Microcoded menawarkan lebih fleksibel daripada control unit
hard-wired tetapi mereka lebih lambat dibandingkan control unit hard-wired.
Tidak ada komentar:
Posting Komentar