PEMPROGRAMAN
MIKRO
Unit
kendali logika (CLU/Control logic unit) mengatur seluruh aktifitas perangkat
keras di dalam computer. CLU menyebabkan suatu instruksi di-fetch dari memori,
memberi kode pada instruksi tersebut untuk menentukan operasi yang akan
dilaksanakan, menentukan sumber dan tujuan data, dan menyebabkan perpindahan
data dan eksekusi operasi yang diperlukan. Kode instruksi, bersama dengan data
tersimpan di dalam memori. Instruksi merupakan suatu entitas yang kompleks yang
pelaksanaannya tidak dapat diselesaikan dalam sebuah pulsa waktu tunggal.
Durasi
siklus fetch/eksekusi tergantung pada jenis operasi yang akan dikerjakan, mode
pengamatan yang digunakan dan jumlah operand yang diperlukan. Yang dikerjakan
CLU adalah membagi setiap siklus instruksi menjadi serangkaian keadaan (state).
Instruksi-mikro
merupakan operasi primitive tingkat rendah yang bertindak secara langsung pada
sirkuit logika suatu computer. Mereka memerinci fungsi-fungsi seperti berikut :
1.
Membuka/menutup suatu gerbang dari sebuah
register ke sebuah bus.
2.
Mentransfer data sepanjang sebuah bus.
3.
Memberi inisial sinyal-sinyal kendali seperti
READ, WRITE, SHIFT, CLEAR, dan SET.
4.
Mengirimkan sinyal-sinyal waktu.
5.
Menunggu sejumlah periode waktu tertentu.
6.
Menguji bit-bit tertentu dalam sebuah
register.
Ada
dua pendekatan pokok bagi perancangan sebuah CLU : rancangan hard-wired (logika
random) dan rancangan microprogrammed. Pada pendekatan hard-wired, sejumlah
gerbang, counter dan register saling dihubungkan untuk menghasilkan
sinyal-sinyal kendali. Pada pendekatan microprogrammed, dibentuk serangkaian
instruksi-mikro (program-mikro), untuk setiap instruksi mikro dan disimpan
dalam sebuah memori kendali dalam CLU.
a.
Kendali hard-wired
Sewaktu sebuah instruksi ditempatkan dalam
register instruksi (IR/Instruction Register), CLU mendecode instruksi itu dan
menghasilkan serangkaian instruksi-mikro. Mnemonic nya diperlihatkan berikut
ini:
1.
LDR (Load suatu register dari memori)
2.
LDM (Load memori dari suatu register)
3.
ADR (Add ke register)
4.
BRU (Branch/percabangan tidak kondisional)
5.
BRZ (Branch/percabangan pada nol)
b.
Kendali microprogrammed
Pertama kali diungkapkan oleh M.V Wilkes pada
awal 1950-an. Dalam CLU microprogrammed, serangkaian instruksi mikro yang
berhubungan dengan masing-masing instruksi dalam kelompok instruksi tersimpan
di dalam memori ROM yang disebut memori kendali. Oleh karena itu arti sebuah
instruksi dapat diubah dengan mengubah program-mikro bersesuaian dengan
instruksi tsb.
Ada kemiripan fungsional antara pasangan
register MAR dan MBR dan pasangan CAR dan CBR. Pasangan pertama digunakan untuk
mengakses instruksi-makro, sedangkan pasangan yang terakhir digunakan untuk
mengakses instruksi-mikro.
c.
Format instruksi-mikro
Ada 2 : horizontal dan vertical. Pada format
horizontal, satu bit diberikan untuk setiap sinyal logika yang dapat dihasilkan
oleh instruksi-mikro. Pendekatan ini mempunyai keuntungan bahwa dapat
menghasilkan sebanyak mungkin sinyal kendali yang diperlukan secara beruntun,
yang memungkinkan suatu operasi sangat cepat. Kebanyakan operasi-mikro adalah
mutual ekslusif dan tidak pernah dipanggil secara bersamaan. Jika terbawa ke
dalam ekstrem (hanya satu field) maka proses coding dan decoding menghasilkan
format instruksi-mikro vertical, dimana hanya satu operasi-mikro yang dipanggil
pada suatu waktu.
Rangkaian operasi-mikro yang berhubungan
dengan ALU tersebut terdiri dari :
X
<-
(Register)
transfer isi sebuah register ke input X pada ALU.
Y
<-
(Register)
transfer isi sebuah register ke input Y pada ALU.
Z
<-
f(X,Y)
memilih sebuah operasi ALU.
Register
<- (Z)
menuliskan Z ke sebuah register.
Pendekatan
vertical memerlukan panjang word yang relative pendek tetapi implementasinya
memerlukan sirkuit yang lebih kompleks dan tidak mengambil seluruh keuntungan
paralelisme dan arsitektur-mikro. Kebanyakan prosesor memakai kombinasi dari
kedua pendekatan. Format instruksi-mikro dapat sangat bervariasi dari rancangan
yang satu ke lainnya dan tergatung pada faktor seperti kelompok operasi mikro
yang dipilih, pertukaran antara panjang word instruksi-mikro dan kecepatan
operasi, dan tingkat kompleksitas sirkuit decoding-instruksimikro yang
diterapkan.
d.
Perangkaian instruksi-mikro
Meskipun terkadang cukup hanya mem-fetch
instruksi-mikro berikutnya secara berurutan, kita memerlukan beberapa mekanisme
yang memungkinkan lompatan kondisional dalam program-mikro yang memungkinkannya
untuk membuat suatu keputusan. Lompatan kondisional memungkinkan
instruksi-mikro mempunyai dua pendahulu (successor) dan meningkatkan kecepatan
eksekusinya, ketimbang men-setup beberapa kondisi dalam satu instruksi-mikro
dan kemudian mengujinya pada instruksi-mikro berikutnya. Untuk mencapai hal
tersebut, disiapkan dua field untuk setiap instruksi-mikro yaitu: sebuah field
ADDR, yang berisi address pendahulu yang potensial bagi instruksi-mikro saat
ini, dan sebuah field COND, yang menentukan apakah instruksi-mikro berikutnya
di-fetch daro (CAR) + 1 atau daro ADDR.
Karena hanya ada 4 pilihan mengenai
instruksi-mikro berikutnya maka lebar field COND dapat sebesar 2 bit dan
keempat pilihan tsb dapat diindikasikan dengan mengatur COND sebagai berikut:
COND
=
00
jangan lompat; instruksi-mikro berikutnya diambil dari (CAR) + 1.
COND
=
01
lompat ke ADDR jika C1.
COND
=
10
lompat ke ADDR jika C2.
COND
=
11
lompat ke ADDR tanpa kondisional.
Disini
C1 dan C2 merupakan 2 bit status yang mewakili kondisi untuk suatu lompatan.
e.
Emulasi
Dalam emulasi, suatu computer diprogram
secara mikro untuk mempunyai kumpulan instruksi yang benar-benar sama dengan
computer lainnya dan dapat mempunyai tingkah laku yang sama pula. Emulasi
memungkinkan kita untuk mengganti peralatan yang lama dengan mesin yang lebih
up-to-date tanpa mengharuskan pemakai untuk menulis kembali keseluruhan
perangkat lunak mereka. Jika computer mengemulasi computer yang asli secara
keseluruhan maka tidak perlu ada perubahan perangkat lunak untuk menjalankan
program yang ada. Dengan demikian, emulasi ini memungkinkan transisi ke sistem
yang baru dengan kerusakan yang minimal.
f.
Irisan bit
Sistem yang dapat diprogram secara mikro
dapat dibuat dengan menggunakan sirkuit terpadu yang khusus (IC/integrated
circuit) yang disebut prosesor irisan-bit (bit-sliced), untuk merancang
perangkat keras perangkat-instruksimikro dan menggunakannya sehubungan dengan
beragamnya konfigurasi path data dan kumpulan instruksi. Dengan demikian kita
dapat menentukan pembangunan blok yang dengan mudah dapat disusun ke dalam
suatu computer untuk memenuhi persyaratan aplikasi tertentu.
Fleksibilitas yang terdapat dalam pendekatan
ini dapat ditingkatkan jika blok-blok tersebut dapat digunakan untuk membangun
prosesor dengan panjang word yang arbitrer. Hal ini merupakan dasar ide irisan
bit. Irisan bit merupakan irisan yang melalui data path prosesor tsb. Irisan
ini hanya terdiri atas beberapa bit (umumnya 2 atau 8), yang berisi semua
sirkuit logika yang diperlukan untuk menyiapkan fungsi-fungsi ALU, transfer
register dan fungsi-fungsi kendali. Pola-pola hubungan untuk sirkuit pada
irisan tsb dihasilkan di bawah kendali program-mikro, sementara sinyal kendali
yang dibutuhkan disediakan oleh pembangunan blok lainnya.
Peralatan
pendukung bagi program-mikro:
v Assembler-mikro
Merupakan
program-program perangkat lunak yang memungkinkan para perancang untuk
meng-encode suatu program-mikro dalam suatu Bahasa simbolik (mnemonics) dan
menterjemahkan representasi ini ke dalam representasi absolut untuk di-load ke
dalam memori kendali. Keuntungannya:
1.
Meningkatkan produktivitas dalam penulisan
program-mikro.
2.
Tingkat independensi terharap struktur
perangkat keras.
3.
Kemudahan untuk berubah.
4.
Pengujian kesalahan.
5.
Informasi referensi silang.
6.
Peningkatan kemampuan dapat terbaca.
Assembler-mikro terdiri
atas 2 kategori, pertama assembler-mikro umum atau sesuai definisi. Biasanya
mempunyai 2 input: (1) sebuah definisi format instruksi-mikro dan interpretasi
nilai-nilai simbolik (2) program-mikro simbolik itu sendiri. Yang kedua terdiri
atas program-program yang dikembangkan untuk Bahasa assembly-mikro tertentu dan
rancangan instruksi-mikro tertentu. Biasanya dikembangkan untuk organisasi
computer tertentu.
v Formatter
Adalah program-program yang memberi fasilitas
bagi pemrograman PROM yang digunakan untuk mengimplementasikan memori kendali.
v Sistem
Pengembangan
Kategori umum ini terdiri atas peralatan
perangkat keras dan lunak untuk mendukung perancangan sister microprogrammed.
Peralatan pengembangan ini memungkinkan programmer untuk menyimpan
program-mikro dan menguji data pada file disk, mengeditnya dari terminal dan
menstimulasikan memori kendali. Juga menyediakan dukungan debugging dari
layanan emulasi untuk sisrem yang sedang dikembangkan.
v Simulator
perangkat keras
Merupakan
program-program yang mensimulasikan rincian arus data di dalam perangkat keras
yang sedang dirancang. Simulator ini memungkinkan perancang untuk
mengembangkan, mendebug dan menguji logika program-mikro bersamaan dengan
pengembangan sistem perangkat keras.
g.
Biaya dan keuntungan pemrograman mikro
Kendali microprogrammed menawarkan suatu
pendekatan yang lebih terstruktur untuk merancang unit kendali logika (CLU),
relative mudah diubah-ubah dan dibetulkan, menawarkan kemampuan diagnostic yang
lebih baik dan lebih dapat diandalkan.
Sumber:
Komentar
Posting Komentar