Proses CU (Control Unit)
Control Unit - CU) 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.
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). 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-tugas CU
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.
Macam-macam CU]
Single-Cycle CU
Proses di CUl 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
cycleini tidak efisien.
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; bukan instruksi cycle selanjutnya.