~ CONTROL UNIT ~
Puji dan syukur penulis panjatkan ke Tuhan Yang Maha Esa karena berkat limpahan rahmat dan
karunianya sehingga penulis dapat menyusun makalah ini tepat pada waktunya.
Pada penyusunan makalah ini, penulis banyak mendapat tantangan dan tambahan akan tetapi dengan
bantuan dari berbagai pihak tantangan itu bisa teratasi. Olehnya itu, penulis mengucapkan terima kasih
yang sebesar-besarnya kepada semua pihak yang telah membantu dalam penyusunan makalah ini, semoga
bantuannya mendapatkan bantuan yang setimpal dari Tuhan Yang Maha Esa.
Penulis menyadari bahwa makalah ini masih jauh dari kesempurnaan baik dari bentuk penyusunan
maupun materinya. Kritik konstruktif dari pembaca sangat diharapkan penulis, untuk penyempurnaan
makalah selanjutnya.
Akhir kata semoga makalah ini dapat memberikan manfaat kepada kita sekalian.
Daftar isi
Judul halaman 1
Kata pengantar 2
Daftar isi 3
BAB I Pendahuluan : 4
1.1 Latar belakang
1.2 Rumusan masalah
1.3 Tujuan
BAB II Isi 5
1. Pengertian Control Unit (CU) 5
2. Tugas Control Unit 5
3. Macam-Macam Control Unit 5
4. Operasi Mikro 5
5. Operasi Control Unit: Siklus Intruksi 6
6. Jenis Jenis Sinyal Kontrol 14
7. Input Pada Unit Control 15
8. Output Pada Unit Control 15
9. Implementasi Hardwired 16
1.3 Tujuan
Mengetahui cara kerja control unit
BAB II
ISI
1. Pengertian Control Unit (CU)
Control Unit merupakan bagian dari microprosesor dimana fungsi dari CU adalah untuk
memberikan arahan maupun pengawasan serta kontrol terhadap operasi yang dilakukan di bagian
ALU (Arithmetic Logical Unit) yang terdapat di dalam CPU. Output dari CU ini akan mengatur
aktivitas dari bagian lainnya dari perangkat CPU tersebut. Jika dilihat dari desain computer
sebelumnya, CU diimplementasikan sebagai ad-hoc logic yang susah untuk didesain. Namun
sekarang, CU diimplementasikan sebagai sebuah microprogram yang disimpan di dalam tempat
penyimpanan kontrol (control store). 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.
d. Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta
mengawasi kerja.
Sampai detik ini terdapat 2 macam jenis CU dimana tiap tiap CU memiliki desain maupun fungsi
yang berbeda berikut macam macam dari 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-
decodeopcode 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).
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
outputcontrol 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.
Pada Control Unit terdapat operasi yaitu Siklus Intruksi. Instruksi merupakan bentuk dari
pengeksekusian langkah langkah kecil yang biasa disebut dengan Siklus fetch, Siklus Eksekusi,
Siklus Pengambilan Tak Langsung, dan Siklus Interrupt.
Masing-masing Siklus 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).
4. Operasi Mikro
Di dalam CU terdapat Operasi yang disebut Operasi Mikro dimana operasi tingkat rendah yang
dapat dilakukan oleh komputer atau CPU sehingga fungsi-fungsi operasi akan dihasilkan untuk
memindahkan data antar register. Salah satu cara dalam melakukan operasi mikro tersebut
dengan menggunakan bahasa transfer register / Register Transfer Language (RTL). RTL adalah
sebuah bahasa yang digunakan untuk menjabarkan atau melaksanakan operasi mikro. Untuk
mengungkapkan bahasa RTL ini dapat digunakan notasi RTL yang merupakan aturan penulisan
pemberian instruksi RTL.
Operasi Mikro mengatur fungsi-fungsi sebagai berikut :
Kita melihat bahwa setiap fase siklus instruksi dapat didekomposisi menjadi rangkaian operasi
mikro elementer. Dalam contoh kita, ada satu urutan masing-masing untuk siklus fetch, indirect,
dan interrupt, dan untuk siklus eksekusi, ada satu urutan operasi mikro untuk setiap opcode.
Untuk melengkapi gambar, kita perlu mengaitkan rangkaian operasi mikro bersama-sama.
Kita asumsikan register 2-bit baru yang disebut kode siklus instruksi (ICC). ICC menunjuk
keadaan prosesor dalam hal bagian siklusnya:
00: Fetch
01: Indirect
10: Execute
11: Interrupt
Pada akhir masing-masing dari keempat siklus tersebut, ICC ditetapkan dengan tepat. Siklus
tidak langsung selalu diikuti oleh siklus eksekusi. Siklus interupsi selalu diikuti oleh siklus
pengambilan. Untuk kedua siklus eksekusi dan pengambilan, siklus berikutnya bergantung pada
keadaan sistem.
Dengan demikian, diagram alir pada gambar diatas mendefinisikan urutan lengkap operasi
mikro, bergantung hanya pada urutan instruksi dan pola interupsi. Tentu saja, ini adalah contoh
yang disederhanakan. Diagram alir untuk prosesor sebenarnya akan lebih kompleks.
Bagaimanapun, kita telah mencapai titik dalam diskusi kita di mana pengoperasian prosesor
didefinisikan sebagai kinerja rangkaian operasi mikro. Kita sekarang dapat mempertimbangkan
bagaimana unit kontrol menyebabkan urutan ini terjadi.
Dari diantara siklus-siklus diatas, penjelasannya adalah sebagai berikut:
Pada awal fetch cycle, alamat instruksi berikutnya yang akan dieksekusi ada di program
counter (PC); dalam hal ini, alamatnya adalah 1100100.
Langkah pertama adalah memindahkan alamat itu ke register alamat memori (MAR)
karena ini adalah satu-satunya register yang terhubung di jalur alamat bus sistem.
Langkah kedua adalah membawa instruksi. Alamat yang diinginkan (di MAR)
ditempatkan pada bus alamat, unit kontrol mengeluarkan perintah READ pada bus
kontrol, dan hasilnya muncul pada bus data dan disalin ke register bu bu memori (MBR).
Kita juga perlu menambah PC dengan 1 untuk bersiap-siap untuk instruksi selanjutnya.
Karena kedua tindakan ini (baca kata dari memori, tambahkan 1 ke PC) jangan saling
mengganggu, kita bisa melakukannya sekaligus untuk menghemat waktu.
Langkah ketiga adalah memindahkan isi MBR ke register instruksi (IR). Ini
membebaskan MBR untuk digunakan selama siklus tidak langsung yang mungkin terjadi.
Dengan demikian, fetch cycle sederhana sebenarnya terdiri dari tiga langkah dan empat operasi
mikro. Setiap operasi mikro melibatkan pergerakan data ke dalam atau di luar register. Selama
gerakan ini tidak saling mengganggu, beberapa di antaranya bisa berlangsung dalam satu
langkah, hemat kapur. Secara simbolis, kita bisa menuliskan urutan peristiwa sebagai berikut:
t1: MAR <= (PC)
t2: MBR <= memori
PC <= (PC) + l
t3: IR <= (MBR)
Dimana I adalah panjang instruksi. Kita perlu membuat beberapa komentar tentang urutan ini.
Bisa diasumsikan bahwa sebuah jam tersedia untuk tujuan waktu dan memancarkan pulsa clock
secara teratur. Setiap denyut nadi mendefinisikan satuan waktu. Dengan demikian, semua unit
waktu memiliki durasi yang sama. Setiap operasi mikro dapat dilakukan dalam waktu satu unit
waktu. Notasi (t1, t2, t3) mewakili satuan waktu berturut-turut. Dengan kata lain, hal ini
memiliki:
- Unit waktu pertama: Pindahkan isi Pc ke MAR.
- Unit waktu kedua:
Pindahkan isi lokasi memori yang ditentukan oleh MAR ke MBR.
Kenaikan oleh l isi PC.
- Unit waktu ketiga: Pindahkan konten MBR ke IR.
Perhatikan bahwa operasi mikro kedua dan ketiga keduanya berlangsung selama unit waktu
kedua. Operasi mikro ketiga bisa dikelompokkan dengan yang keempat tanpa mempengaruhi
operasi pengambilan:
t1: MAR <= (PC)
t2: MBR <= memori
t3: PC <= (PC) + l
IR <= (MBR)
Pengelompokan operasi mikro harus mengikuti dua aturan sederhana:
Urutan kejadian yang tepat harus diikuti. Jadi (MAR <= (PC)) harus mendahului (MBR
<= Memori) karena operasi baca memori menggunakan alamat di MAR.
Konflik harus dihindari. Seseorang tidak boleh membaca dan menulis dari daftar yang
sama dalam satu unit waktu, karena hasilnya tidak dapat diprediksi. Misalnya, operasi
mikro (MBR <= Memori) dan (IR <= MBR) tidak boleh terjadi selama unit waktu yang
sama.
Poin terakhir yang perlu dicatat adalah bahwa salah satu operasi mikro melibatkan
penambahan. Untuk menghindari duplikasi sirkuit, penambahan ini bisa dilakukan oleh
ALU. Penggunaan ALU mungkin melibatkan operasi mikro tambahan, bergantung pada
fungsionalitas ALU dan pengorganisasian prosesor.
Untuk menggambarkan siklus kita bisa menggunakan notasi register. Ini adalah cara yang sangat
sederhana untuk mencatat semua langkah yang terlibat. Dalam semua kasus di mana Anda
melihat tanda kurung mis. [PC], ini berarti isi benda di dalam kurung sudah terisi. Dalam kasus
baris pertama, isi dari counter program dimasukkan ke Register Alamat Memori.
Deskripsi rinci tentang siklus Fetch-Decode-Execute, Untuk lebih memahami apa yang sedang
terjadi di setiap tahap, kita sekarang akan melihat deskripsi terperinci:
Isi dari Counter Program, alamat instruksi berikutnya yang akan dieksekusi, ditempatkan ke
Register pada Alamat Memori.
Alamat dikirim dari MAR melalui bus alamat ke Memori Utama. Instruksi pada alamat tersebut
ditemukan dan dikembalikan melalui data bus ke Register Buffer Memori. Pada saat bersamaan
isi Counter Program akan ditambah 1, untuk referensi instruksi berikutnya yang akan dieksekusi.
MBR memuat Current Instruction Register dengan instruksi yang akan dieksekusi.
Begitu instruksi diambil, langkah selanjutnya adalah mengambil operan sumber. Melanjutkan
contoh sederhana kami, mari kita asumsikan format instruksi satu alamat, dengan pengalamatan
langsung dan tidak langsung diizinkan. Jika instruksi menentukan alamat tidak langsung, maka
siklus tidak langsung harus mendahului siklus eksekusi. Aliran data mencakup operasi mikro
berikut:
t1: MAR <= (IR (Alamat))
t2: MBR <= memori
t3: IR (alamat) <= (MBR (alamat))
Bidang alamat pada instruksi dipindahkan ke MAR. Ini kemudian digunakan untuk mengambil
alamat operan. Akhirnya, bidang alamat IR diperbarui dari MBR, sehingga sekarang berisi
alamat langsung dan bukan alamat tidak langsung. IR sekarang dalam keadaan sama seperti jika
pengalamatan tidak langsung tidak digunakan, dan siap untuk melakukan siklus eksekusi. Kita
melewatkan siklus itu sejenak, untuk mempertimbangkan siklus interupsi.
Kita sekarang dalam posisi untuk menguraikan sedikit pada siklus instruksi. Pertama, kita harus
mengenalkan satu sub-siklus tambahan, yang dikenal sebagai siklus tidak langsung.
Kita telah melihat bahwa eksekusi sebuah instruksi mungkin melibatkan satu atau lebih operan
dalam memori, yang masing-masing memerlukan akses memori. Selanjutnya, jika pengalamatan
tidak langsung digunakan, diperlukan tambahan akses memori.
Kita bisa mengumpamakan pengambilan alamat tidak langsung sebagai satu sub-siklus instruksi
lagi. Hasilnya ditunjukkan pada gambar berikut.
Cara lain untuk melihat proses ini ditunjukkan pada Gambar berikutnya. Ini menggambarkan
sifat dari siklus instruksi. Begitu instruksi diambil, penspesifikasi operand harus diidentifikasi.
Setiap input Operand dalam memori kemudian diambil, dan proses ini mungkin memerlukan
pengalamatan tidak langsung. Register-based operand tidak perlu diambilnya. Setelah opcode
dijalankan, proses yang serupa mungkin diperlukan untuk menyimpan hasilnya di memori
utama.
2. Interrupt Cycle
Pada penyelesaian siklus eksekusi, sebuah tes dilakukan untuk menentukan apakah ada interupsi
yang diaktifkan. Jika demikian, siklus interupsi terjadi. Sifat siklus ini sangat bervariasi dari satu
mesin ke mesin lainnya. Disajikan rangkaian acara yang sangat sederhana, diantaranya:
t1: MBR <= (PC)
t2: MAR <= Save_Address
PC <= Routine_Address
t3: memori <= (MBR)
Pada langkah pertama, isi PC ditransfer ke MBR, sehingga bisa disimpan untuk kembali dari
interrupt. Kemudian MAR dimuatkan dengan alamat di mana isi PC disimpan, dan PC diisikan
dengan alamat awal dari rutin pemrosesan interupsi. Kedua tindakan ini mungkin masing-masing
merupakan operasi mikro tunggal. Namun, karena kebanyakan prosesor menyediakan beberapa
tipe dan / atau tingkat interupsi, mungkin danau satu atau lebih operasi mikro tambahan untuk
mendapatkan save_address dan routine_address sebelum mereka dapat dipindahkan ke MAR dan
PC, masing-masing. Bagaimanapun, sekali ini selesai, langkah terakhir adalah menyimpan MBR,
yang berisi nilai lama PC, ke dalam memori. Prosesor sekarang siap untuk memulai siklus
instruksi berikutnya.
Kita mulai dengan IR yang berisi instruksi ADD. Pada langkah pertama, bagian alamat IR
dimuat ke MAR. Kemudian lokasi memori yang direferensikan dibaca. Akhirnya, isi R1 dan
MBR ditambahkan oleh ALU. Sekali lagi, ini adalah contoh yang disederhanakan. Operasi mikro
tambahan mungkin diperlukan untuk mengekstrak referensi register dari IR dan mungkin untuk
mengatur input ALU atau keluaran di beberapa register perantara. Mari kita lihat dua contoh
yang lebih kompleks. Instruksi umum adalah kenaikan dan lompat jika nol:
ISZ X
Isi lokasi X bertambah dengan 1. Jika hasilnya 0, instruksi berikutnya dilewati. Kemungkinan
urutan operasi mikro adalah
t1: MAR <= (CR (alamat))
t2: MBR <= memori
t3: MBR <= (MBR) - 1
t4: Memori <= (MBR)
Jika ((MBR) = 0) maka (PC <= (PC) + I)
Fitur baru yang diperkenalkan di sini adalah tindakan kondisional. PC bertambah jika (MBR) =
0; Tes dan tindakan ini bisa diimplementasikan sebagai satu operasi mikro. Perhatikan juga
bahwa operasi mikro ini dapat dilakukan selama unit waktu yang sama dimana nilai yang
diperbarui dalam MBR disimpan kembali ke memori.
Akhirnya, pertimbangkan instruksi panggilan subrutin. Sebagai contoh, pertimbangkan instruksi
branch-and-save-address:
BSA X
Alamat instruksi yang mengikuti instruksi BSA disimpan di lokasi X, dan eksekusi berlanjut ke
lokasi X - l. Alamat yang tersimpan kemudian akan digunakan untuk kembali. Ini adalah teknik
langsung untuk memberikan panggilan subrutin. sumber operasi mikro berikut:
t1: MAR <= (IR (alamat))
MBR <= (PC)
t2: PC <= (IR (alamat)) Memori <= (MBR)
t3: PC <= (PC) + I
Alamat di PC pada awal instruksi adalah alamat instruksi berikutnya secara berurutan. Ini
disimpan di alamat yang ditetapkan dalam Ihe IK. Alamat terakhir juga ditambahkan untuk
memberikan alamat instruksi untuk siklus instruksi berikutnya.
1. Clock
Clock yaitu 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.
2. Register instruksi
Register instruksi merupakan 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.
Bagian bus control bus system memberikan sinyal-sinyal ke unit control, seperti sinyal-sinyal
interupsi dan acknowledgement.
2. Sinyal control bagi Bus Control , sinyal ini terdiri dari dua macam yaitu :
a) Sinyal control bagi memori dan,
b) Sinyal control bagi modul-modul I/O.
9. Implementasi Hardwired
Implementasi Hardwired:
http://rto408.blogspot.com/2018/02/operasi-control-unit-siklus-intruksi.html?m=1