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.
Tidak ada komentar:
Posting Komentar