Arithmetic Logical Unit merupakan unit penalaran secara logic. ALU ini adalah merupakan Sirkuit CPU berkecepatan tinggi yang bertugas menghitung dan membandingkan. Angka-angka dikirim dari memori ke ALU untuk dikalkulasi dan kemudian dikirim kembali ke memori. Jika CPU diasumsikan sebagai otaknya komputer, maka ada suatu alat lain di dalam CPU tersebut yang kenal dengan nama Arithmetic Logical Unit (ALU), ALU inilah yang berfikir untuk menjalankan perintah yang diberikan kepada CPU tersebut. ALU sendiri merupakan suatu kesatuan alat yang terdiri dari berbagai komponen perangkat elektronika termasuk di dalamnya sekelompok transistor, yang dikenal dengan nama logic gate, dimana logic gate ini berfungsi untuk melaksanakan perintah dasar matematika dan operasi logika. Kumpulan susunan dari logic gate inilah yang dapat melakukan perintah perhitungan matematika yang lebih komplit seperti perintah “add” untuk menambahkan bilangan, atau “devide” atau pembagian dari suatu bilangan. Selain perintah matematika yang lebih komplit, kumpulan dari logic gate ini juga mampu untuk melaksanakan perintah yang berhubungan dengan logika, seperti hasil perbandingan dua buah bilangan. Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruction set. Perintah yang ada pada masing-masing CPU belum tentu sama, terutama CPU yang dibuat oleh pembuat yang berbeda, katakanlah misalnya perintah yang dilaksanakan oleh CPU buatan intel belum tentu sama dengan CPU yang dibuat oleh Sun atau perusahaan pembuat mikroprosesor lainnya. Jika perintah yang dijalankan oleh suatu CPU dengan CPU lainnya adalah sama, maka pada level inilah suatu sistem dikatakan compaitible. Sehingga sebuah program atau perangkat lunak atau software yang dibuat berdasarkan perintah yang ada pada Intel tidak akan bisa dijalankan untuk semua jenis prosesor, kecuali untuk prosesor yang compatible dengannya. Seperti halnya dalam bahasa yang digunakan oleh manusia, instruction set ini juga memiliki aturan bahasa yang bisa saja berbeda satu dengan lainnya. Bandingkanlah beda struktur bahasa Inggris dengan Indonesia, atau dengan bahasa lainnya, begitu juga dengan instruction set yang ada pada mesin, tergantung dimana lingkungan instruction set itu digunakan.
UNIT KONTROL
Unit kontrol atau yang sering dikenal dengan control unit ,akan menyimpan perintah sekarang yang dilakukan oleh komputer, memerintahkan ALU untuk melaksanaan dan mendapat kembal iinformasi (dari memori) yang diperlukan untuk melaksanakan perintah itu, dan memindahkan kembali hasil ke lokasi memori yang sesuai. Sekali yang terjadi, unit kontrol pergi ke perintah berikutnya (biasanya ditempatkan di slot berikutnya, kecuali kalau perintah ituadalah perintah lompatan yang memberitahukan kepada komputerbahwa perintah berikutnya ditempatkan di lokasi lain).
Bagian CPU yang menyebabkan fungsi komputer tercapai inimengeluarkan sinyal-sinyal kontrol yang bersifat internal bagi CPU untuk memindahkan data antar Register agar ALU melakukan fungsinya untuk mengatur operasi-operasi internal lainnya. Register, yang merupakan bagian dari unit kontrol, adalah tempat penyimpan data sementara dalam CPU selama proses eksekusi. Apabila terjadi proses eksekusi, data dalam register dikirim ke ALU untuk diproses, hasil eksekusi nantinya diletakkan ke register kembali. Unit kontrol akan menghasilkan sinyal yang akan mengontrol operasi ALU dan pemindahan data ke dan dari ALU. Unit kontrol juga mengeluarkan sinyal kontrol eksternal bagi pertukaran data memori dan modul-modul I/O.
Macam-macam Unit Kontrol
1. Unit Kontrol Single-Cycle
Proses di unit kontrol ini hanya terjadi dalam satu clock cycle artinya setiap instruksi (fetch, decode, execute) 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 macaminstruksi (yaitu di gerbang AND), dan pemberian sinyal kontrolberdasarkan jenis instruksinya (yaitu gerbang OR). Keempat jenisinstruksi 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. Unit Kontrol Multi-Cycle
Gambar disamping menunjukkan diagram blok dari unit kontrol multi-cycle. 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 control line output 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 di-execute CPU; bukan instruksi cycle selanjutnya.
Fungsi Unit Kontrol
1. Pengurutan (sequencing): unit kontrol bertugas mengontrol sejumlah operasi mikro dalam urutan yang benar
state
register overhead
Cycle 1
Cycle 2
Cycle 3
Cycle 4
Cycle 5
Fetch
Decode
Exec
Mem
WB
lw
Single cycle Implementation:
Multiple Cycle Implementation:
2. Eksekusi (execution): unit kontrol menyebabkan setiap operasi mikro dilakukan
Input Unit Kontrol
Unit kontrol mempunyai beberapa input, diantaranya:
Clock: berfungsi untuk sinkronisasi operasi antar komponen
Flag: flag-flag ini diperlukan unit kontrol untuk mengetahui status CPU. Flag diset ALU sebagai hasil dari suatu operasi, misalnya: overflow flag, diset 1 bila hasil komputasi melampaui panjang register tempat flag disimpan.
Instruction register: menggunakan opcode untuk menentukan operasi mikro yang akan dilakukan selama siklus eksekusi
Sinyal kontrol dari ”bus control”: memberi jalur ke unit kontrol untuk sinyal-sinyal tertentu, seperti sinyal interrupt dan sinyalacknowledgment
Output Unit Kontrol
Sinyal kontrol di dalam CPU (control signals within CPU): output unitkontrol terdiri dari dua macam sinyal, yaitu:
sinyal-sinyal yang menyebabkan perpindahan data antar register
sinyal-sinyal yang dapat mengaktifkan fungsi ALU yang spesifik
Sinyal kontrol ke ”bus control” juga terdiri atas 2 sinyal, yaitu:
sinyal kontrol ke memori
sinyal kontrol ke modul-modul I/O
Implementasi Unit Kontrol
Implementasi hardwired
Unit kontrol merupakan rangkaian kombinatorial. Sinyal-sinyal logika inputnya akan didekodekan menjadi sinyal-sinyal logika output, yang merupakan sinyal-sinyal kontrol ke sistem komputer. Sinyal-sinyal input tersebut, seperti clock, flag, register instruction, dan sinyal kontrol merupakan input bagi unit kontrol untuk mengetahui status komputer. Sinyal keluaran yang dihasilkan akan mengendalikan sistem kerja komputer.
N buah input biner akan menghasilkan 2N output biner. Setiap instruksi memiliki opcode yang yang berbeda-beda.
Opcode yang berbeda dalam instruksi akan menghasilkan sinyal kontrol yang berbeda pula. Pewaktu unit kontrolmengeluarkan rangkaian pulsa yang periodik.
Pulsa waktu ini digunakan untuk mengukur durasisetiap operasi mikro yang dijalankan CPU, intinya digunakanuntuk sinkronisasi kerja masing-masing bagian.
Masalah dalam Merancang Implementasi Hardwired:
Ø Memiliki kompleksitas dalam pengurutan dan operasi mikronya
Ø Sulit didesain dan dilakukan pengetesan
Ø Tidak fleksibel
Ø Sulit untuk menambahkan instruksi baru
Implementasi microprogrammed
Implementasi yang paling reliabel saat ini adalah implementasi microprogrammed. Unit kontrol memerlukan sebuah memori untuk menyimpan program kontrolnya.
Fungsi–fungsi pengontrolan dilakukan berdasarkan program kontrol yang tersimpan pada unit kontrol. Selain itu, fungsi–fungsi pengontrolan tidak berdasarkan dekode dari input unit kontrol lagi.
Teknik ini dapat menjawab kesulitan–kesulitan yang ditemui dalam implementasi hardwired.
Daftar Pustaka
http://lecturer.eepis-its.edu/~setia/Modul/ArKom/Pertemuan%2016.pdf
www.imappl.org/~cgloster/eece211/general/tex/design_method/design_method/node9.html
www.cs.pu.edu.tw/~kuancli/ca_chap16.ppt
www.wikipedia.org/wiki/unit_kontrol
http://sdmines.sdsmt.edu/upload/directory/materials/8886_20060222145517.doc
http://www-inst.eecs.berkeley.edu/~cs61c/fa04/hw/proj3/HP_AppC.pdf