Control Unit
PENGERTIAN CONTROL UNIT
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 atau perbandingan 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 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.
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, execute cucle, 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 sistem
mikroprosesor. Sebuah mikroprosesor harus
dapat melakukan proses:
Fetch
data atau mengambil data baik dari memori maupun dari I/O dengan 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 yang
jelas, bagaimana bagian-bagian dari sebuah
komputer atau sistem mikroprosesor bekerja.
Perhatikan contoh ilustrasi Gambar di
bawah dapat mengeksekusi
sebua
program sederhana:
Contoh ini menggunakan tiga
perintah program
dengan contoh kasus sebagai berikut:
Memasukkan sebuah nilai dari keyboard yang terhubung ke Port pada alamat
05h.
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.
DAFTAR PUSTAKA
images.jabeschand.multiply.multiplycontent.com/.../3.3.1.%20Perancangan%20Kinerja%20Bus%20Sistem.pdf
Operasi
unit control(STMIK-AUB SURAKARTA)
Sistem
microprosessor(ILMAWAN MUSTAQQIM, S.Pd.T,M.T)
Set
instruksi(RIYANTO SIGIT,S.T.M.Kom)
Operasi
unit control(NUR ROSYIDN,ST)