Selasa, 27 Oktober 2015

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 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.


2 komentar: