Control Unit Adalah salah satu bagian
dari CPU yang bertugas untuk memberikan arahan / kendali / kontrol
terhadap operasi yangdilakukan 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). Pada
hardwire implementation control unit sebagai combinational 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 (programmable logic array) untuk merepresentasikan control
signal.
Control unit dari sebuah prosesor memiliki 2 peran
penting. Pertama, control unit mengatur processor agar melakukan semua
micro-operation dalam urutan yang benar. Kedua, control unit menghasilkan
control signal yang memastikan supaya semua micro-operation dieksekusi.
Control signal tersebut secara umum menyebabkan salah
satu dari hal berikut: pembukaan atau penutupan dari gerbang-gerbang logika,
transfer data antara register-register, dan pengoperasian ALU.
Model general dari sebuah control unit dapat dilihat pada gambar 2 berikut :
Gambar
: Model of Control Unit
Dari gambar tersebut dapat dilihat input dan output dari
sebuah control unit. Input dari sebuah control unit adalah :
1.2 Masukan
– masukan unit control:
1. Clock / pewaktu
pewaktu adalah cara
unit control dalam menjaga waktunya. Unit control menyebabkan
sebuah operasi mikro ( atau sejumslah operasi mikro yang bersamaan)
dibentuk bagi setiap pulsa waktu. Pulsa ini dikenal sebagai waktu siklus
prosesor.
Aturan untuk
pengelompokan siklus waktu (Rules for Clock Cycle Grouping)
��Urutan yang baik harus
mengikuti aturan berikut (Proper sequence
must be followed) :
o MAR :
��(PC)
harus diikuti dengan MBR
��(memory)
��Harus menghindari
terjadinya konflik (Conflicts must be avoided)
o Tidak boleh
melakukan pembacaan dan penulisan terhadap register yang sama dan pada waktu yg
bersamaan (Must not read & write same register at same time)
o Aktifitas MBR
��(memory)
& aktifitas IR
��(MBR)
tidak boleh dilakukan pada siklus yang bersamaan
�� PC
harus ditambahkan 1: PC (PC) +1
o Menggunakan ALU
o Mungkin diperlukan
additional micro-operations
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.
1.3 Keluaran-keluaran
unit control
1. 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
2. Sinyal
control bagi bus control; sinyal ini juga terdiri dari dua macam:
- Sinyal
control bagi memori.
- Sinyal control bagi modu-modul I/O
1.4 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 atauperbandingan logika serta mengawasi kerja.
5. Menyimpan hasil proses ke
memori utama.
1.5 Jenis-Jenis
Control Unit
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 dariopcode 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 – masingnyaakan
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-bitopcode memberitahukan
operasi apa yang selanjutnya akan dijalankan CPU.
1.6 TEKNIK UNTUK MENGIMPLEMENTASIKAN
CONTROL UNIT
1.
Control Unit Microprogrammed
Untuk menggenerasi signal
kontrol dengan cara membaca dan mengeluarkan atau mengalirkan mikroinstruksi.
Terbagi 2 yaitu :
- Control
Vertikal
Jenis implementasi dimana
signal kontrol di kode ke dalam pada bit , kemudian digunakan setelah dikode.
- Control
Horizontal
Control dimana
setiap bit kontrol mengatur 1 operasi gate atau mesin.
2.
Control Unit Konvensional /Hard-Wired
Untuk
menggenerasi signal kontrol.
Digunakan
pada komputer berkinerja tinggi (super komputer) dan RISC
Komputer
Mainframe sering menggunakannya untuk aritmetik, logika dan shift
sederhana dan instruksi akses memori.
CU
Konvensional menghasilkan suatu rangkaian mirointruksi.
Perbedaannya
dengan CU Microprogrammed terletak pada gerbang logikanya menggenerasi semua
mikroorder sehingga eksekusinya lebih cepat.
1.7 CARA
KERJA CONTROL UNIT
Ketika sebuah komputer pertama kali diaktifkan
power-nya, maka computer 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, executecucle, dan interrupt cycle.
Setiap sub cycle ini disusun dari beberapa perintah dasar yang
disebut micro operation.
1.8 Control
Unit Operation
Instruction Cycle
Eksekusi
suatu instruksi dalam sebuah komputer mencakup pengeksekusian langkah-langkah
kecil yang biasa disebut sebagai instruction cycle, yang terdiri dari fetch
cycle, execution cycle, indirect cycle, dan interrupt cycle (bisa
enabled/disabled).
Masing-masing
cycle masih dapat diuraikan kembali menjadi langkah – langkah yang lebih
kecil lagi, yaitu micro-operation. Suatu micro-operation biasanya berupa
transfer antar register, transfer antara register dan interface eksternal
(seperti system bus), atau suatu operasi ALU biasa ( aritmetik dan logika).
Gambar Instruction Cycle
2. MICRO
OPERATION
Micro operation merupakan operasi atomic
dari CPU (Atomic operation of CPU). Micro operation adalah kerja atau
eksekusi terhadap data yang tersimpan pada register dan merupakan cara kerjanya
dalam satu pulsa clock. Atau pengertian lainnya micro operation adalah suatu
operasi mikro dimana suatu computer menjalankan suatu program dan melakukan
siklus proses memasukkan dan mengambil data atau melakukan eksekusi
(Fetch/execute cycle ).
Hasil dari operasi ini dapat menggantikan isi dari informasi
biner terdahulu didalam register atau dipindahkan ke register lain.
2.1 Bagan
dari micro operation:
2.2 Tipe
Operasi Mikro
Mendefinisikan elemen dasar prosesor
Mendiskripsikan operasi mikro yang
harus dilakukan prosesor
Menentukan fungsi Control
Unit yang harus dilakukan prosesor
3. Fetch
cycle
Fetch
adalah siklus pengambilan data ke memori atau register. Berikut adalah
contoh aliran data siklus pengambilan(fetch cycle) :
- Urutan
kejadian selama siklus instruksi tergantung pada rancangan CPU.
- Asumsi:
sebuah CPU yang menggunakan register memori alamat (MAR), register memori
buffer (MBR), pencacah program (PC) dan register instruksi (IR).
Prosesnya :
- Pada
saat siklus pengambilan (fetch cycle), instruksi dibaca dari memori.
- PC
berisi alamat instruksi berikutnya yang akan diambil.
- Alamat
ini dipindahkan ke MAR dan ditaruh di bus alamat.
- Unit
control meminta pembacaan memori dan hasilnya disimpan di bus data dan disalin
ke MBR dan kemudian dipindahkan ke IR.
- PC
naik nilainya 1, sebagai persiapan untuk pengambilan selanjutnya.
- Siklus
selesai, unit control memeriksa isi IR untuk menentukan apakah IR berisi
operand specifier yang menggunakan pengalamatan tak langsung.
3.1 Ada 4 Registers yang ada di dalam fetch:
1. ƒ
Memory Address Register (MAR)
Terkoneksi
dengan address bus
MAR
melakukan spesifikasi address untuk operasi baca atau tulis
2. ƒ
Memory Buffer Register (MBR)
Terkoneksi
dengan data bus
Menyimpan
data untuk di tulis atau menyimpan data terakhir yang dibaca
(Holds data to write or
last data read)
3. Program
Counter (PC)
Menyimpan
address instruksi berikut yang akan di akses(holds address of next instruction
to be fetches)
4. Instruction
Register (IR)
Menyimpan
address instruksi terakhir yang diakses (Holds last instruction
fetched)
3.2 Fetch Sequence (Urutan Fetch)
1.
Address dari instruksi berikutnya berada dalam PC ƒ
2.
Address yang ada pada MAR di masukkan ke address bus ( address
alamat) ƒ
3. Control Unit memerintahkan perintah membaca
(Control unit issues READ
command)
4.
Hasil (data dari memory) berada pada data bus/
5.
Data dari data bus dapat di copy ke MBR
6.
PC ditambah 1 (secara paralel dengan proses fetch data dari memory)
7.
Data (instruksi) dipindahkan dari MBR ke IR
8.
MBR sekarang kosong dan siap untuk fetch data selanjut
6. Indirect
Cycle (Siklus tidak Langsung)
Siklus tidak langsung adalah
eksekusi sebuah instruksi melibatkan sebuah operand atau lebih di dalam memori,
yang masing – masing operand memerlukan akses memori. Pengambilan alamat –
alamat tak langsung dapat dianggap sebagai sebuah subsiklus instruksi atau
lebih.
4.1 Berikut adalah
gambar aliran data siklus tak langsung:
PENJELASAN :
- N
bit paling kanan pada MBR, yang berisi referensi alamat, dipindahkan ke MAR.
- Unit
control meminta pembacaan memori, agar mendapatkan alamat operand yang
diinginkan ke dalam MBR.
- Siklus
pengambilan dan siklus tak langsung cukup sederhana dan dapat diramalkan.
- Siklus
instruksi (instruction cycle) mengambil banyak bentuk karena bentuk bergantung
pada bermacam – macam instruksi mesin yang terdapat di dalam IR.
- Siklus
meliputi pemindahan data di antara register – register, pembacaan atau
penulisan dari memori atau I/O, dan penggunaan ALU.
�� MAR <- (IRaddress) artinya: Alamat dari IR
diisikan ke MAR
�� MBR <- (memory) artinya: isi dari memory
diisikan ke MBR
�� IRaddress <- (MBRaddress) artinya: alamat
dari MBR diisikan ke alamat dari IR
�� MBR berisi suatu address (MBR contains an
address)
�� Sekarang IR berada pada kondisi yang sama
dengan direct addressing (IR is now in same state as if direct addressing
had been used)
5. INTERRUPT
CYCLE
Interrupt/Interupsi
adalah suatu permintaan khusus kepada mikroposesor untuk melakukan sesuatu.
Bila terjadi interupsi, maka komputer akan menghentikan dahulu apa yang sedang
dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi.
Pada
IBM PC dan kompatibelnya disediakan 256 buah interupsi yang diberi nomor 0
sampai 255. Nomor interupsi 0 sampai 1Fh disediakan oleh ROM BIOS, yaitu suatu
IC didalam komputer yang mengatur operasi dasar komputer. Jadi bila terjadi
interupsi dengan nomor 0-1Fh, maka secara default komputer akan beralih menuju
ROM BIOS dan melaksanakan program yang terdapat disana. Program yang melayani
suatu interupsi dinamakan Interrupt Handler.
ALIRAN DATA SIKLUS
INTERUPSI
Isi PC, saat itu
harus disimpan sehingga CPU dapat melanjutkan aktivitas normal terjadinya
interrupt.
Cara: isi PC dipindahkan
ke MBR untuk kemudian dituliskan ke dalam memori.
Lokasi memori khusus yang
dicadangkan untuk keperluan ini dimuatkan ke MAR dari unit control.
Lokasi ini berupa stack
pointer.
PC dimuatkan dengan
alamat rutin interrupt.
Akibatnya siklus intruksi
berikutnya akan mulai mengambil instruksi yang sesuai.
6. Execution Cycle
Execution
cycle adalah proses dari CPU untuk mengerjakan instruksi yang sudah
dijemput dari main memory dan sudah berada di IR register.Control unit di CPU
mengartikan instruksi tersebut, melaksanakan operasi yang harus dilakukan,
seperti penjemputan/penambilan data dari main memory, mengirim instruksi ke ALU
untuk melakukan operasi aritmatika atau logika dan menyimpan hasil pengolahan
kembali ke main memory.
Contoh
eksekusi program
Sedangkan Execution sequence adalah
proses atau langkah sebuah eksekusi program yang terjadi dan berlangsung
pada sebuah sistemmikroprosesor. Sebuah mikroprosesor harus dapat
melakukan proses:
�� Fetch
data atau mengambil data baik dari memori maupun dari I/Odengan proses
baca (read) data.
�� Proses
data atau mengolah data dalam salah satu operasi aritmetika atau logika.
�� Write
data atau menulis data ke memori atau I/O.
�� Fetch
Instruction atau mengambil instruksi yaitu membaca instruksi dari memori
.
�� Interpret Instruction yaitu proses mengintepretasikan/
menterjemahkan instruksi. Instruksi harus didekode untuk menentukan
aksi dari suatu instruksi yang harus dilakukan. Instruksi dalam bahasa
mesin berbentuk kode-kode biner dalam heksadesimal. Setiap perintah
dikodekan dan disusun dalam sebuah set instruksi.Untuk mendapatkan
gambaran yangjelas, bagaimana bagian-bagian dari sebuah komputer atau
sistem mikroprosesor bekerja.
Perhatikan contoh ilustrasi Gambar di
bawah dapat mengeksekusi sebuaprogram sederhana:
Contoh
ini menggunakan tiga perintah program dengan contoh kasus sebagaiberikut:
�� Memasukkan
sebuah nilai dari keyboard yang terhubung ke Port pada alamat05h.
�� Menambahkannya
dengan 07 dari nilai yang terbaca.
�� Mengeluarkan
hasil penambahan ke display yang terhubung ke Port alamat 02h.
KESIMPULAN
Control Unit 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. Control
unit dari sebuah prosesor memiliki 2 peran penting. Pertama, control unit
mengatur processor agar melakukan semua micro-operation dalam urutan yang
benar. Kedua, control unit menghasilkan control signal yang memastikan supaya
semua micro-operation dieksekusi. Terdiri dari 2 jenis yaitu Single & Multi Control. Siklus
instruksi terdiri dari micro operation, fetch, indirect, interrupt dan
execution cycle.
maksih min
BalasHapuspemotong sim cut
mksi min,materinya sangat bermanfaat.
BalasHapus