Control Unit
Control Unit merupakan bagian yang berfungsi sebagai pengatur dan
mengatur dan pengendali semua peralatan computer, Control Unit juga mengatur
kapan alat input menerima data, mengolah, dan menampilkan proses serta hasil
pengolahan data. Dengan demikian semua perintah dapat dilakukan secara
berurutan tanpa adanya tumpang tindih antara satu perintah dengan perintah
lainnya.
Pada awal-awal desain komputer, CU diimplementasikan sebagai ad-hoc
logic yang susah untuk didesain. Sekarang, CU diimplementasikan sebagai
sebuah yang disimpan di dalam tempat penyimpanan kontrol (control store). Beberapa word dari microprogram dipilih oleh microsquncer 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 dari CU adalah sebagai berikut:
Ø Mengatur dan mengendalikan alat-alat input
dan output.
Ø Mengambil instruksi-instruksi dari memori
utama.
Ø Mengambil data dari memori utama kalau
diperlukan oleh proses.
Ø Mengirim instruksi ke ALU bila ada
perhitungan aritmatika atau perbandingan
logika serta mengawasi kerja.
Ø Menyimpan hasil proses ke memori utama.
Proses
tiga langkah karakteristik unit control:
Ø Menentukan elemen dasar prosesor
Ø Menjelaskan operasi mikro yang akan dilakukan
prosesor
Ø Menentukan fungsi-fungsi yang harus dilakukan
unit control agar menyebabkan pembentukan operasi mikro.
Masukan-masukan unit control:
1. 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.
2. Register
instruksi
opcode instruksi saat itu digunakan untuk menentukan operasi mikro mana
yang akan dilakukan selama siklus eksekusi.
3. Flag
flag ini diperlukan oleh unit control untuk menentukan status prosesor
dan hasil operasi ALU sebelumnya.
4. 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.
Macam-macam CU
1. Single-Cycle CU
Proses di Single-Cycle 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 linehanya 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-decode opcode 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.
2. 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 output control 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.
Implementasi Unit Kontrol
1. Implementasi
hardwired
Unit kontrol merupakan rangkaian kombinatorial. Sinyal-sinyal logika
inputnya akan didekodekan menjadi sinyal-sinyal logika output, yang merupakan
sinyal-sinyal kontrol ke sistem komputer. Sinyal-sinyal input tersebut, seperti
clock, flag, register instruction, dan sinyal kontrol merupakan input bagi unit
kontrol untuk mengetahui status komputer. Sinyal keluaran yang dihasilkan akan
mengendalikan sistem kerja komputer.
N buah input biner akan menghasilkan 2N output biner. Setiap instruksi
memiliki opcode yang yang berbeda-beda. Opcode yang berbeda dalam instruksi
akan menghasilkan sinyal kontrol yang berbeda pula. Pewaktu unit kontrol
mengeluarkan rangkaian pulsa yang periodik.
Pulsa waktu ini digunakan untuk mengukur durasi setiap operasi mikro
yang dijalankan CPU, intinya digunakan untuk sinkronisasi kerja masing-masing
bagian. Masalah dalam Merancang Implementasi Hardwired:
a) Memiliki kompleksitas dalam pengurutan dan
operasi mikronya
b) Sulit didesain dan dilakukan pengetesan
c) Tidak fleksibel
d) Sulit untuk menambahkan instruksi baru
Jadi secara garis besar:
Ø Intinya unit control merupakan rangkaian
kombinatorial
Ø Sinyal-sinyal logika inputnya akan dikodekan
menjadi sekumpulan sinyal-sinyal logika output yang merupakan sinyal-sinyal
kontrol ke system computer
Ø Input unit control meliputi sinyal-sinyal
register instruksi, pewaktu, flag dan sinyal bus control
Ø Sinyal-sinyal tersebut sebagai masukkan bagi
unit control dalam mengetahui status computer
Ø Selanjutnya dikodekan manghasilkan sinyal
keluaran untuk mengendalikan system kerja computer
Ø n buah input biner akan menghasilkan 2n
output biner
Ø setiap instruksi memiliki opcode yang berbeda
– beda
Ø opcode yang berbeda dalam setiap instruksi
akan menghasilkan sinyal control yang berbeda pula
Ø pewaktu unit control mengeluarkan rangkaian
pulsa yang periodic
Ø pulsa waktu ini digunakan untuk mengukur
durasi setiap operasi mikro yang dijalankan CPU, intinya digunakan untuk
sinkronisasi kerja masing – masing bagian
2. Implementasi
microprogrammed
Implementasi yang paling reliabel saat ini adalah implementasi
microprogrammed. Unit kontrol memerlukan sebuah memori untuk menyimpan program
kontrolnya. Fungsi–fungsi pengontrolan dilakukan berdasarkan program kontrol
yang tersimpan pada unit kontrol. Selain itu, fungsi–fungsi pengontrolan tidak
berdasarkan dekode dari input unit kontrol lagi. Teknik ini dapat menjawab
kesulitan–kesulitan yang ditemui dalam implementasi hardwired.
Jadi secara garis besar :
1.
Unit
control memerlukan sebuah memori untuk menyimpan program controlnya
2.
Fungsi-fungsi
pengontrolan dilakukan berdasarkan program control yang tersimpan pada unit
control
3.
Fungsi-fungsi
pengontrolan tidak berdasarkan decode dari input unit control lagi
4.
Teknik
ini dapat menjawab kesulitan-kesulitan yang ditemui dalam implementasi
hardwired
CARA KERJA CONTROL UNIT
Ketika sebuah komputer pertama kali diaktifkan power-nya, maka
komputer tersebut menjalankan operasi bootstrap. Operasi ini akan membaca
sebuah instruksi dari suatu lokasi memory yang telah diketahui sebelumnya dan
mentransfer instruksi tersebut ke control unit untuk dieksekusi.
Instruksi-intruksi dibaca dari memory dan dieksekusi sesuai dengan urutan
penyimpanannya. Program counter dari suatu computer menyediakan suatu cara
untuk menyimpan lokasi instruksi berikutnya. Urutan eksekusi berubah dengan
memindah lokasi intruksi baru ke program counter sebelum pembacaan (fetch)
instruksi dikerjakan. Sebuah intruksi merupakan kalimat imperatif pendek yang
sudah dapat menjelaskan makna dari perintah tersebut.
Suatu intruksi terdiri
dari :
1. subjek (komputernya)
2. verb (suatu kode operasi yang
mengindikasikan pekerjaan apa yang akan dilaksanakan)
3. objek (operands) yang
mengidentifikasikan nilai data atau lokasi memory.
Ketika intruksi-intruksi diterima oleh Control Unit, operation
code akan mengaktifkan urutan logic untuk mengeksekusi
intruksi-intruksi tersebut.
Satu eksekusi program terdiri dari beberapa instruction
cycle yang menjadi komponen penyusun dari program tersebut. Sedangkan
untuk setiap instruction cycle terdiri dari beberapa sub
cycle lagi seperti ftech cycle, indirect cycle, execute
cucle, dan interrupt cycle. Setiap sub cycle ini disusun
dari beberapa perintah dasar yang disebut micro operation. Untuk lebih
jelasnya, seperti di bawah ini :
Setiap control signal yang ada sebenarnya berfungsi
sebagai switch untuk menghubungkan beberapa regsiter (MAR, MBR, PC,
IR) serta komponen lainnya seperti ALU dan setiap micro
operation diwakilkan oleh satu control signal. Micro operation
bekerja antar register untuk membentuk suatu sub cycle, sebagai contoh fetch
cycle :
a. T1 : MAR ç (PC)
b. T2 : MBR ç (memory)
PC ç (PC) + 1
c. T3 : IR ç (MBR)
Sebagai contoh sederhana dari control signal seperti bagan di bawah ini
:
Untuk ftech cycle, micro operation pertama adalah MAR ç (PC)
yang diwakilkan oleh control signal C2. Selanjutnya MBR ç (memory)
diwakilkan C5 dan seterusnya.
Pada hardwire implementation control unit sebagai combinatorial circuit
yang dibuat berdasarkan control signal yang akan dikeluarkan. Jadi untuk setiap
control signal memiliki rangkaian logika tertentu pada control unit yang dapat menghasilkan
control signal yang dimaksud. Secara umum untuk metode ini digunakan PLA
(progammable logic array) untuk merepresentasikan control signal, seperti
gambar di bawah ini :
Input untuk control unit yaitu IR, flags, clock, dan control bus signal.
Flags dan control bus signal memiliki representasi secara langsung dan
signifikan terhadap operasi bila dibandingkan dengan IR dan clock. Untuk IR
sendiri, control unit akan menggunakan operation code yang terdapat pada IR.
Setiap operation code menandakan setiap proses yang berbeda. Proses ini dapat
disederhanakan dengan digunakannya decoder. Decoder memiliki n input dan 2n
output yang akan merepresentasikan opcode. Jadi input dari IR akan diterjemakan
oleh decoder sebelum menjadi input ke control unit.
Clock digunakan untuk mengukur durasi dari micro operation. Untuk
mengantisipasi propagasi sinyal yang dikirimkan melalui data paths dan
rangkaian prosesor, maka periode dari setiap clock seharusnya cukup besar.
Untuk mengatasinya digunakan counter yang dapat memberikan clock input bagi
control signal yang berbeda, namun pada akhir instruction cycle, contol unit
harus mengembalikan ke counter untuk menginisialisasikan periode awal.
Setiap control signal direptresentasikan dengan fungsi Boolean lalu dibuatlah
combinatorial circuit. Contohnya untuk C5 [MBR ç (memory)] digunakan
di fetch cycle dan indirect cycle. Masing-masing sub cycle direpresentasikan
dengan 2 bit, P dan Q. maka untuk C5 : C5 = ~P.~Q. T2 + ~P.Q.T2 >> T2
adalah clock yang digunakan.
Setelah itu juga harus diperhatikan karena setiap operasi untuk execute
cycle tidak sama. Tetapi untuk memudahkan dalam contoh ini execute cycle
membaca LDA dari memory, sehingga secara lengkap : C5 = ~P.~Q.T2 + ~P.Q.T2 +
P.~Q.(LDA).T2
Berbeda dengan sebelumnya, μ programmed implementation tidak
menggunakan combinatorial circuir namun menggunakan μ instruction
yang disimpan pada control memory. Proses untuk menghasilkan control signal
dimulai dengan seqencing logic yang memberi perintah READ kepada contol memory.
Kemudian dilanjutkan dengan pemindahan cari CAR (control address register) ke
CBR (contol buffer register) isi alamat yang ditujukan oleh control memry.
Setelah itu CBR mengeluarkan control signal yang dituju dan alamat selanjutnya
ke sequencing logic. Terakhir, sequencing logic akan memberikan alamat baru ke
CAR beradasarkan informasi dari CBR dan ALU.
Kelebihan dari μ programmed adalah lebih mudah untuk
mengimplementasikan dan mendesain control unit. Selain itu dibandingkan dengan
harwired jauh lebih murah. Implementasi dari decoder dan sequencing logic
dari μ programmed merupakan logika yang sederhana. Kemudahan untuk
melakukan testing dan menambahkan instruksi baru dengan desain yang fleksibel.
Sedangkan kelebihan dari hardwire adalah kecepatannya yang tinggi karena logika
control unit langsung dibentuk menjadi rangkaian.






Tidak ada komentar:
Posting Komentar