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