Unit kendali

**Unit kendali** () adalah salah satu bagian dari unit pemroses sentral yang bertugas untuk memberikan kendali terhadap operasi yang dilakukan oleh unit aritmetika dan logika. Keluaran dari unit kendali akan mengatur aktivitas bagian lainnya dari unit pemroses sentral.

Pada awal-awal desain komputer, unit kendali diimplementasikan sebagai logika ad-hoc yang susah untuk didesain. Sekarang, unit kendali diimplementasikan sebagai sebuah program mikro yang disimpan di dalam tempat penyimpanan kontrol. Beberapa kata dari program mikro dipilih oleh pengurut mikro dan bit yang datang dari *kata-kata* tersebut akan secara langsung mengontrol bagian-bagian berbeda dari perangkat tersebut, termasuk di antaranya adalah register, unit aritmetika dan logika, register instruksi, bus dan peralatan masukan/keluaran di luar sirkuit terpadu. Pada komputer modern, setiap subsistem ini telah memiliki kontrolernya masing-masing, dengan unit kendali sebagai pemantaunya. Unit kendali juga berfungsi untuk bersinkronasi antar komponen.

## Tugas
Tugas dari unit kendali adalah sebagai berikut:

# Mengatur dan mengendalikan alat-alat masukan dan keluaran.
# Mengambil instruksi-instruksi dari memori utama.
# Mengambil data dari memori utama kalau diperlukan oleh proses.
# Mengirim instruksi ke unit aritmetika dan logika bila ada perhitungan aritmetika atau perbandingan logika serta mengawasi kerja.
# Menyimpan hasil proses ke memori utama.

## Macam-macam
### Unit kendali siklus tunggal
Proses di unit kendali siklus tunggal hanya terjadi dalam satu siklus jam, artinya setiap instruksi ada pada satu siklus, maka dari itu tidak memerlukan rumus. Dengan demikian fungsi Boolean masing-masing garis kendali hanya merupakan fungsi dari kode operasi saja. Siklus jam harus mempunyai panjang yang sama untuk setiap jenis instruksi. Ada dua bagian pada unit kontrol ini, yaitu proses mendekode kode operasi 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 unit aritmetika dan logika, yaitu “ALUSrc”. Desain unit kendali siklus tunggal dapat bekerja dengan baik dan benar tetapi tidak efisien.

### Unit kendali multi-siklus
Berbeda dengan unit kendali siklus tunggal, unit kontrol multi-siklus lebih memiliki banyak fungsi. Dengan memperhatikan rumus dan kode operasi, fungsi boolean dari masing-masing garis kendali keluaran dapat ditentukan. Masing-masingnya akan menjadi fungsi dari 10 buah logika masukan. Jadi akan terdapat banyak fungsi boolean, dan masing-masingnya tidak sederhana. Pada unit kendali multi-siklus, sinyal kontrol tidak lagi ditentukan dengan melihat pada bit-bit instruksinya. Bit-bit kode operasi memberitahukan operasi apa yang selanjutnya akan dijalankan oleh unit pemrosesan sentral, bukan instruksi siklus selanjutnya.

## Referensi