KENDALI
MIKROPROGRAMMED
Istilah
program-mikro pertama kali diungkapkan oleh M.V Wilkes pada awal tahun 1950-an
ketika dia mengajukan suatu pendekatan baru untuk mengendalikan perancangan
unit. Ide ini menarik perhatian banyak ahli dan insinyur komputer pada saat
itu, walaupun hal itu tampak tidak realistis karena adanya persyaratan untuk
memori kendali yang sangat cepat dan relatif tidak mahal. Situasi ini berubah
secara dramatis dengan adanya pengumuman keluarga komputer IBM System/360 pada
bulan April 1964. Seluruh model terbesar menyertakan memori kontrol yang cepat
dan tidak mahal dan merupakan microprogrammed. Sejak itu,
pemrograman mikro menjadi hal yang umum sejalan dengan peningkatan kecepatan
dan penurunan harga memori kontrol.
A. Unit Kendali
Unit kendali (bahasa
Inggris: Control Unit - CU) adalah salah
satu bagian dari CPU yang
bertugas untuk memberikan arahan/kendali/ kontrol terhadap operasi yang
dilakukan di bagian ALU (Arithmetic
Logical Unit) di dalam CPU tersebut. Output dari CU ini akan mengatur aktivitas dari bagian lainnya dari
perangkat CPU tersebut.
Pada awal-awal desain komputer, CU diimplementasikan
sebagai ad-hoc logic yang susah untuk didesain. Sekarang, CU diimplementasikan sebagai
sebuah microprogram yang
disimpan di dalam tempat penyimpanan kontrol (control store).
Beberapa word dari microprogram dipilih
oleh microsequencer dan bit yang datang
dari word-word tersebut akan secara langsung mengontrol
bagian-bagian berbeda dari perangkat tersebut, termasuk di antaranya
adalah register,
ALU, register instruksi, bus dan
peralatan input/output di luar chip. Pada komputer modern, setiap subsistem ini telah
memiliki kontrolernya masing-masing, dengan CU sebagai pemantaunya (supervisor).
Tugas CU
Tugas dari CU
adalah sebagai berikut:
1.
Mengatur dan
mengendalikan alat-alat input dan output.
2.
Mengambil
instruksi-instruksi dari memori utama.
3.
Mengambil data dari
memori utama kalau diperlukan oleh proses.
4.
Mengirim instruksi ke ALU
bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja.
5.
Menyimpan
hasil proses ke memori utama.
Macam-macam CU
Single-Cycle CU
Proses di CU ini hanya terjadi dalam
satu clock cycle, artinya
setiap instruksi ada pada satu cycle, maka dari itu tidak
memerlukan state. Dengan demikian fungsi boolean
masing-masing control line hanya merupakan fungsi dari opcode saja. Clock
cycle harus mempunyai panjang yang sama untuk setiap jenis instruksi.
Ada dua bagian pada unit kontrol ini, yaitu proses men-decodeopcode untuk
mengelompokkannya menjadi 4 macam instruksi (yaitu di gerbang AND), dan
pemberian sinyal kontrol berdasarkan jenis instruksinya (yaitu gerbang OR).
Keempat jenis instruksi adalah “R-format” (berhubungan dengan register), “lw”
(membaca memori), “sw” (menulis ke memori), dan “beq” (branching).
Sinyal kontrol yang dihasilkan bergantung pada jenis instruksinya. Misalnya
jika melibatkan memori ”R-format” atau ”lw” maka akan sinyal ”Regwrite” akan
aktif. Hal lain jika melibatkan memori “lw” atau “sw” maka akan diberi sinyal
kontrol ke ALU, yaitu “ALUSrc”. Desain single-cycle ini lebih
dapat bekerja dengan baik dan benar tetapi cycle ini tidak
efisien.
Multi-Cycle CU
Berbeda dengan unit kontrol yang single-cycle,
unit kontrol yang multi-cycle lebih memiliki banyak fungsi.
Dengan memperhatikan state dan opcode,
fungsi boolean dari
masing-masing outputcontrol line dapat ditentukan.
Masing-masingnya akan menjadi fungsi dari 10 buah input logic. Jadi
akan terdapat banyak fungsi boolean, dan masing-masingnya tidak sederhana.
Pada cycle ini, sinyal kontrol tidak lagi ditentukan dengan
melihat pada bit-bit instruksinya. Bit-bit opcode memberitahukan
operasi apa yang selanjutnya akan dijalankan CPU; bukan instruksi cycle
selanjutnya.
Macam register yang digunakan:
a. Register alamat memori
(MAR): dihubungkan dengan saluran alamat bus system. MAR menerapkan alamat didalam memori
untuk operasi membaca dan menulis.
b. Register
buffer memori (MBR): dihubungkan dengan saluran data bus system. MBR berisi
nilai yang akan disimpan di memori atau nilai terakhir yang dibaca dari memori.
c. Program counter (PC);
menampung alamat instruksi berikutnya yang akan diambil.
d. Register instruksi (IR);
menampung instruksi terakhir yang diambil.
Proses tiga langkah karakteristik unit
control:
1. Menentukan
elemen dasar prosesor 2. Menjelaskan operasi mikro yang akan dilakukan prosesor
3. Menentukan fungsi-fungsi yang harus dilakukan unit control agar menyebabkan pembentukan operasi mikro
Dua tugas dasar unit control:
Pengurutan: unit control menyebabkan
prosesor menuju sejumlah operasi mikro dalam urutan yang benar, yang didasarkan
pada program yang sedang dieksekusi.
Eksekusi: unit control menyebabkan setiap
operasi mikro dilakukan.
Masukan-masukan unit control:
Clock/pewaktu: pewaktu adalah cara unit control
dalam menjaga waktunya. Unit control menyebabkan sebuah operasi mikro (atau
sejumlah operasi mikro yang bersamaan) dibentuk bagi setiap pulsa waktu. Pulsa
ini dikenal sebagai waktu siklus prosesor.
Register instruksi: opcode instruksi saat
itu digunakan untuk menentukan operasi mikro mana yang akan dilakukan selama
siklus eksekusi.
Flag: flag ini diperlukan oleh unit control untuk
menentukan status prosesor dan hasil operasi ALU sebelumnya.
Sinyal control untuk mengontrol bus. Bagian bus control bus system
memberikan sinyal-sinyal ke unit control, seperti sinyal-sinyal interupsi dan
acknowledgement.
Keluaran-keluaran unit control:
a. Sinyal
control didalam prosesor: terdiri dari dua macam: sinyal-sinyal yang
menyebabkan data dipindahkan dari register yang satu keregister yang lainnya,
dan sinyal-sinyal yang dapat mengaktifasi fungsi-fungsi ALU tertentu.
b. Sinyal
control bagi bus control; sinyal ini juga terdiri dari dua macam: sinyal
control bagi memori dan sinyal control bagi modu-modul I/O
Terdapat tiga macam sinyal control:
· Sinyal-sinyal yang mengaktifasi fungsi ALU
· Sinyal-sinya yang mengaktifasi alur
data
· Sinyal-sinyal pada bus system
eksternal atau antar muka eksternal lainnya.
Sinyal control yang dhasilkan oleh
unit control menyebabkan terbuka dan tertutupnya gerbanga logika, dihasilkan
pada perpindahan data dank e register dan operasi ALU.
B. Organisasi CLU Microprogrammed
Instruksi di-fetch kedalam IR dan pengendali mikro menjalankan program mikro yang bersesuaian. Address awal program mikro di-load kedalam CAR(Control Address Register) kemudian memori control mentransfer instruksi mikro pertama ke dalam CBR(Control Buffer Register).
Dengan
memfetch sebuah instruksi mikro dari memori kontrol berarti kita menyatakan
sebuah siklus mikro,yaitu waktu di mana instruksi mikro didecode
untuk menghasilkan sinyal kendali yang diperlukan untuk menjalankannya. CAR
secara normal bertambah 1 pada tiap-tiap pulsa sehingga dapat mengalamati
instruksi mikro berikutnya secara berurutan. Namun, perhatikan bahwa rangkaian
tersebut dapat diubah oleh kondisi-kondisi yang terjadi di dalam atau di luar
CLU, yang mungkin menyebabkan pengendali mikro meningkatkan CAR lebih dari 1.
Jika ada operand yang diperlukan untuk suatu instruksi tertentu maka informasi address
dalam IR di-decode untuk melengkapi lokasi operand.
C. FORMAT INSTRUKSI
MIKRO
Pada
dasarnya ada dua jenis format instruksi-mikro: horisontal dan vertikal. Pada
format instruksi-mikro horisontal, satu bit diberikan untuk setiap sinyal
logika yang dapat dihasilkan oleh instruksi-mikro. Dengan demikian, jika
dibutuhkan sejumlah K sinyal kendali yang berbeda maka
dibutuhkan instruksi-mikro dengan word sepanjang K bit. Untuk
menghasilkan suatu sinyal tertentu, bit yang bersesuaian dalam instruksi mikro
diatur menjadi 1, kehadiran suatu sinyal kendali diindikasikan dengan
menempatkan sebuah nol pada posisi bit yang semestinya. Pendekatan ini
mempunyai keuntungan bahwa kita dapat menghasilkan sebanyak mungkin sinyal
kendali yang diperlukan secara beruntun, yang memungkinkan operasi yang sangat
cepat.
Namun
demikian kebanyakan operasi-mikro adalah mutual ekslusif dan tidak pernah dipanggil
secara bersamaan. Karena itu, kita dapat membagi mereka ke dalam
kelompok-kelompok dan menggunakan sejumlah bit (field) untuk memberi
kode sekumpulan intruksi-mikro yang mutual ekslusif. Kemudian digunakan suatu
dekoder untuk memilih operasi mikro tertentu yang akan dipanggil. Jika terbawa
ke dalam ekstrem (hanya satu field) maka proses mengode (coding)
dan mendekode (decoding) menghasilkan suatu format instruksi-mikro
vertikal, dimana hanya ada satu operasi-mikro yang dipanggil pada suatu waktu.
Karena itu instruksi-mikro vertikal menyerupai format sebuah interuksi-makro
dan terdiri atas suatu kode operasi tunggal, disebut sebagai opecode mikro,
satu operand atau lebih, dan berberapa field lain (misalnya
untuk percabangan kondisional).
D. Komponen-Komponen
Pokok Control Unit Microprogrammed
1. Instruction Register
Menyimpan instruksi register
mesin yang dijalankan.
2. Control Store berisi
microprogrammed
a. Untuk
semua instruksi mesin
b. Untuk
startup mesin.
c. Untuk memprosesan
interupt
3. Address Computing Circuiting
Menentukan
alamat Control Store dari mikroinstruksi berikutnya yang akan dijalankan.
4. Microprogrammed Counter
Menyimpan
alamat dari mikroinstruksi berikutnya.
5. Microinstruction Buffer
Menyimpan
mikroinstruksi tersebut selama dieksekusi.
6. Microinstruction Decoder
Menghasilkan
dan mengeluarkan mikroorder yang didasarkan pada mikroinstruksi dan opcode
instruksi yang akan dijalankan
Komentar
Posting Komentar