PEMPROGRAMAN MIKRO


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