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 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 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:
·
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.
·
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 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-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:
·
Memiliki kompleksitas dalam
pengurutan dan operasi mikronya
·
Sulit didesain dan dilakukan
pengetesan
·
Tidak fleksibel
·
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:
·
Unit control memerlukan sebuah
memori untuk menyimpan program controlnya
·
Fungsi-fungsi pengontrolan
dilakukan berdasarkan program control yang tersimpan pada unit control
·
Fungsi-fungsi pengontrolan tidak
berdasarkan decode dari input unit control lagi
·
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.
0 Comments In "Materi Control Unit"