ALU DAN CU
1. ALU
(Arithmetic Logic Unit)
1.
Pengertian ALU
ALU, singkatan dari Arithmetic And Logic Unit (menurut bahasa Indonesia : unit aritmatika dan logika). ALU adalah sirkuit CPU berkecepatan tinggi
yang bertugas menghitung dan membandingkan. Ada pendapat lain tentang
pengertian ALU yaitu salah satu bagian dalam dari sebuah mikroprosesor yang berfungsi untuk melakukan operasi hitungan aritmatika dan logika. Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan,
sedangkan contoh operasi logika adalah logika AND,OR,XOR,SHL,SHR.
Tugas utama dari ALU (Arithmetic And Logic Unit) adalah melakukan semua
perhitungan aritmatika atau matematika yang terjadi sesuai dengan instruksi
program. ALU melakukan operasi arithmatika dengan dasar pertambahan, sedang
operasi arithmatika yang lainnya, seperti pengurangan, perkalian, dan pembagian
dilakukan dengan dasar penjumlahan. sehingga sirkuit elektronik di ALU yang
digunakan untuk melaksanakan operasi arithmatika ini disebut adder.
Tugas lalin dari ALU adalah melakukan keputusan dari operasi logika sesuai
dengan instruksi program. Operasi logika (logical operation) meliputi
perbandingan dua buah elemen logika dengan menggunakan operator logika, yaitu:
a.
sama dengan (=)
b.
tidak sama dengan (<>)
c.
kurang dari (<)
d.
kurang atau sama dengan dari (<=)
e.
lebih besar dari (>)
f.
lebih besar atau sama dengan dari (>=) (sumber: Buku
Pengenalan Komputer, Hal 154-155, karangan Prof.Dr.Jogiyanto H.M, M.B.A.,Akt.)
Fungsi-fungsi yang didefinisikan pada ALU adalah Add (penjumlahan), Addu
(penjumlahan tidak bertanda), Sub (pengurangan), Subu
(pengurangan tidak bertanda), and, or, xor, sll (shift left logical),
srl (shift right logical), sra (shift right arithmetic), dan
lain-lain.
2. Struktur dan Cara Kerja ALU
ALU akan
bekerja setelah mendapat perintah dari Control Unit yang terletak pada
processor. Contorl Unit akan memberi perintah sesuai dengan komando yang
tertulis(terdapat) pada register. Jika isi register memberi perintah untuk
melakukan proses penjumlahan, maka PC akan menyuruh ALU untuk melakukan proses
penjumlahan. Selain perintah, register pun berisikan operand-operand.
Setelah proses
ALU selesai, hasil yang terbentuk adalah sebuah register yang berisi hasil atau
suatuperintah lainnya. Selain register, ALU pun mengeluarkan suatu flag yang
berfungsi untuk memberi tahu kepada kita tentang kondisi suatu processor
seperti apakah processor mengalami overflow atau tidak.
ALU
(Arithmethic and Control Unit) adalah bagian dari CPU yang bertanggung jawab
dalam proses komputasi dan proses logika. Semua komponen pada CPU bekerja untuk
memberikan asupan kepada ALU sehingga bisa dikatakan bahwa ALU adalah inti dari
sebuah CPU. Perhitungan pada ALU adalah bentuk bilangan integer yang
direpresentasikan dengan bilangan biner. Namun, untuk saat ini, ALU dapat
mengerjakan bilangan floating point atau bilangan berkoma, tentu saja
dipresentasikan dengan bentuk bilangan biner.
ALU mendapatkan
data (operand, operator, dan instruksi) yang akan disimpan dalam register.
Kemudian data tersebut diolah dengan aturan dan sistem tertentu berdasarkan
perintah control unit. Setelah proses ALU dikerjakan, output akan disimpan
dalam register yang dapat berupa sebuah data atau sebuah instruksi. Selain itu,
bentuk output yang dihasilkan oleh ALU berupa flag signal. Flag signal ini
adalah penanda status dari sebuah CPU.
Bilangan Ineger
Bilangan integer (bulat) tidak dikena oleh komputer dengan basis 10. Agar
komputer mengenal bilangan integer, maka para ahli komputer mengkonversi basis
10 menjadi basis 2. Seperti kita ketahui, bahwa bilangan berbasis 2 hanya
terdiri atas 1 dan 0. Angka 1 dan 0 melambangkan bahwa 1 menyatakan adanya arus
listrik dan 0 tidak ada arus listrik. Namun, untuk bilangan negatif, computer
tidak mengenal simbol (-). Komputer hanya mengenal simbol 1 dan 0. Untuk
mengenali bilangan negatif, maka digunakan suatu metode yang disebut dengan
Sign Magnitude Representation.
Metode ini
menggunakan simbol 1 pada bagian paling kiri (most significant) bit. Jika
terdapat angka 18 = (00010010)b, maka -18 adalah (10010010)b. Akan tetapi,
penggunaan sign-magnitude memiliki 2 kelemahan. Yang pertama adalah terdaptnya
-0 pada sign magnitude[0=(00000000)b; -0=(10000000)b]. Seperti kita ketahui,
angka 0 tidak memiliki nilai negatif sehingga secara logika, sign-magnitude
tidak dapat melakukan perhitungan aritmatika secara matematis. Yang kedua
adalah, tidak adanya alat atau software satupun yang dapat mendeteksi suatu bit
bernilai satu atau nol karena sangat sulit untuk membuat alat seperti itu.
Oleh karena
itu, penggunaan sign magnitude pada bilangan negatif tidak digunakan, akan
tetapi diganti dengan metode 2′s complement. Metode 2′s complement adalah
metode yang digunakan untuk merepresentasikan bilangan negatif pada komputer.
Cara yang digunakan adalah dengan nilai terbesar dari biner dikurangin dengan
nilai yang ingin dicari negatifnya. Contohnya ketika ingin mencari nilai -18,
maka lakukan cara berikut:
a.
ubah angka 18 menjadi biner (00010010)b
b.
karena biner tersebut terdiri dari 8 bit, maka nilai maksimumnya adalah
11111111
c.
kurangkan nilai maksimum dengan biner 18 -> 11111111 – 00010010 =
11101101
d.
kemudian, dengna sentuhan terakhir, kita tambahkan satu -> 11101101 +
00000001 = 11101110
Dengan metode
2′s complement, kedua masalah pada sign magnitude dapat diselesaikan dan
komputer dapat menjalankan. Namun, pada 2′s complement, nilai -128 pada biner 8
bit tidak ditemukan karena akan terjadi irelevansi.
2. CU (Control
Unit)
1. Pengertian CU
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.
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 atau perbandingan logika serta mengawasi kerja.
5. Menyimpan hasil proses ke memori utama.
2.
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 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 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 – 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.
3.
Teknik Untuk Mengimplementasikan Control Unit1. Control Unit Microprogrammed
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.
4.
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, execute cucle, dan interrupt cycle. Setiap sub cycle ini
disusun dari beberapa perintah dasar yang disebut micro operation.
OLEH : MIFFTAHUL JANNAH N R | 19/11546 | X-11
0 komentar:
Posting Komentar