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, 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.
Temporary register dibutuhkan ketika data harus disimpan selama pelaksanaan sebuah
instruksi mesin. Register ini tersembunyi dari pemakai mikroprosesor.
SISTEM MIKROPROSESOR
Program terdiri dari banyak operasi individu yang sangat sederhana, yang disebut
isntruksi, yang menentukan secara rinci dan tepat bagaimana mikroprosesor harus
melakukan algoritma. Sebuah program sederhana mungkin memiliki puluhan
instruksi, sedangkan program yang kompleks dapat memiliki puluhan juta instruksi.
Secara kolektif, program yang dijalankan pada mikroprosesor disebut perangkat
lunak, berbeda dengan hardware yang menjalankan mereka. Setiap jenis
mikroprosesor memiliki set instruksi sendiri yang mendefinisikan set lengkap yang
unik, operasi diskrit yang mampu dilaksanakan. Instruksi ini melakukan tugas yang
sangat kecil, mereka sendiri, mungkin tampak tidak signifikan. Namun, ketika
ribuan atau jutaan instruksi kecil yang dirangkai, mereka dapat menciptakan video
game atau word processor.
Central Proccesing Unit (CPU) Komputer Modern dikemas dalam bentuk rangkaian
terintegrasi (IC) dengan ukuran yang relatif kecil dan disebut mikroprosesor.
Sebuah mikroprosesor adalah perangkat yang dapat diprogram dan dapat
menerima data biner dari perangkat masukan, mengolah data terkait dengan
instruksi yang tersimpan di memori dan memberikan hasilnya sebagai keluaran.
Dengan kata lain, mikroprosesor menjalankan program yang tersimpan didalam
memori dan memindah data ke dan dari dunia kuar melalui terminal I/O.
b) Data Bus
data bus
c) Address Bus
Bus alamat adalah larik bit dengan ukuran yang cukup untuk sepenuhnya
mengekspresikan ruang alamat mikroprosesor. Alamat ruang mengacu pada
jumlah maksimum memori dan I / O yang mana mikroprosesor secara langsung
dapat mengakses. Jika mikroprosesor memiliki bus alamat 16-bit, dapat menangani
alamat hingga 162 = 65.536 bytes. Oleh karena itu, ia memiliki ruang alamat 64 kB.
Seluruh address space tidak harus digunakan; itu hanya menetapkan batas
maksimum pada ukuran memori. Notasi umum untuk 16-bit address bus adalah A
[15:0], di mana 0 adalah bit paling kecil. Gambar 1.10. menunjukkan konfigurasi
bus mikroprosesor khas dalam komputer. Perhatikan bahwa bus alamat adalah
searah (mikroprosesor mengirimkan permintaan alamat untuk berbagai
perangkat), dan bus data dua arah (mikroprosesor mengirmkan data ketika menulis
dan perangkat mengirimkan data ketika dibaca).
Seluruh ruang alamat Sebuah mikroprosesor tidak pernah ditempati oleh fungsi
tunggal; melainkan dibagi oleh ROM, RAM, dan berbagai I / O. Setiap perangkat
dipetakan ke wilayah sendiri-sendiri dari ruang alamat dan diaktifkan hanya ketika
mikroprosesor mengirimkan alamat dalam wilayah yang dipetakan untuk
perangkat tersebut. Proses menyatakan bahwa alamat dalam suatu wilayah yang
diinginkan disebut decoding. Logika alamat digunakan untuk membagi ruang
alamat keseluruhan menjadi bagian-bagian yang lebih kecil di mana memori dan
perangkat I / O berada. Logika ini menghasilkan sinyal individu yang mengaktifkan
perangkat yang sesuai berdasarkan keadaan bus alamat sehingga perangkatnya
tidak memerlukan pengetahuan tentang decoding unik alamat komputer tertentu.
Address bus
d) Control Bus
Bus kendali (control bus) terdiri sejumlah jalur individu yang membawa sinyal
penyerempak. Istilah bus normalnya berarti sekelompok jalur yang bekerja
serempak. Bus kendali mengirim keluar sinyal kendali ke memori, terminal I/O dan
perangkat peripheral lain untuk memastikan bekerja tepat. Ini membawa sinyal
kendali seperti membaca memori, menulis memori, membaca terminal masukan,
menulis terminal keluaran, menggenggam, interupsi, dan lainnya. Sebagai contoh,
jika diinginkan untuk membaca isi dari lokasi memori tertentu, CPU pertama
mengirimkan keluar alamat dari lokasi pada bus address dan sinyal kendali “baca
memori” pada bus kendali. Memori menanggapi dengan mengeluarkan data yang
tersimpan di lokasi memori yang dialamatikepada bus data.
control bus
Ada dua jenis antarmuka komunikasi serial, yaitu antarmuka komunikasi asinkron
dan antarmuka komunikasi sinkron. Antarmuka komunikasi asinkron menggunakan
start dan stop bit protokol untuk sinkronisasi pemancar dan
penerima. Bitsare mulai dan berhenti tertanam dalam setiap byte data.
Dibandingkan dengan antarmuka komunikasi sinkron, ia menawarkan kecepatan
transmisi data yang lebih rendah. Hal ini juga disebut sebagai universal
asynchronous receiver/transmitter (UART) atau antarmuka komunikasi serial (SCI).
Antarmuka komunikasi sinkron menggunakan clock disinkronisasi untuk mengirim
dan menerima setiap bit. Sinkronisasi clock transmitter dan receiver biasanya
dilakukan dengan menggunakan jalur clock tambahan menghubungkan pemancar
dan penerima. Hal ini tidak dianjurkan untuk komunikasi jarak jauh. Hal ini juga
disebut sebagai antarmuka perangkat serial (SPI).
i) Timer / Counter
Counter merupakan rangkaian pencacah atau penghitung pulsa clock yang masuk
padanya yang dibangun dari sejumlah flip-flop. Banyaknya flip-flop yang digunakan
akan menentukan jumlah angka biner yang dapat dihitungnya. Ketika pulsa clock
dengan periode tetap diberikan pada masukkannya dan counter harus menghitung
sejumlah clock yang ditentukan maka akan diperoleh interval waktu yang tertentu
untuk menyelesaikan hitungan tersebut, fungsi ini disebut sebagai
timer. Counter/timer biasanya melakukan tiga fungsi berikut. Mereka digunakan
untuk menjaga waktu dan/atau mengukur interval waktu antara peristiwa,
menghitung jumlah kejadian dan menghasilkan tingkat baud untuk port serial.
Timer/counter mampu diprogram (programmable timer/counter) digunakan untuk
pembangkit penundaan yang akurat untuk menghitung waktu kejadian,
pembangkit tingkat, aplikasi pembangkit gelombang kompleks dan sebagainya.
j) Interrupt Control