coa 5 unit kendali
TRANSCRIPT
Unit Kendali
2
MIPS Datapath
3
Unit Kendali
Tujuan : mengendalikan semua aktifitas prosesor, persisnya, untuk mengendalikan semua komponen seperti ALU, PC, Register dll.
Input : Operation Code (Opcode) – 6 bit Output :
1. RegDst2. Branch3. MemRead4. MemtoReg5. ALUOp (2)6. MemWrite7. ALUSrc8. RegWrite
4
Bagian instruksi bit 31-26 adalah kode operasi Unit kendali akan menterjemahkan kode
operasi dan mengeluarkan 8 bit kendali yang mengendalikan jalannya prosesor
Unit Kendali
5
Input Unit Kendali Prinsip encodding pada control unit adalah:
terdiri dari 32 bit dan 6 bit diawal ( dari LSB/ dari kiri) disebut opcode
26 bit berikutnya adalah operand Sintak
6
Input Unit Kendali
Operation Code (Opcode – 6 bits) : Jenis instruksi yang akan dieksekusi
Instruksi terdiri dari opcode dan operand Misal instruksi add $t2, $s2, $t1
Artinya : jumlahkan data dalma register $s2 dan $t0 dan hasilnya disimpan dalam register $t2
Instruksi dalam biner : 000000 10010 01001 01010 00000 100000 ||Opcode| -----------------Operand ----------------- |
000000 adalah kode operasi untuk aritmetik (R) 100000 adalah kode fungsi operasi add
7
RegDst
tujuan : untuk mengendalikan input mux 32 register Mux Input : 5 bits instruction[20-16] atau 5 bits
instruction [15-11] Mux Output : 5 bit tergantung nilai RegDst
If RegDst = 0 than output=Instruction[20-16] If RegDst = 1 than output=Instruction[15-11]
8
RegDstMengendalikan multiplexer 2 ke 1RegDst memilih salah satu input dari
dua buah input yang ada Jika RegDst bernilai 0 maka keluaran
dari Mux berasal dari instruksi bit 20-16 Jika RegDst bernilai 1 maka keluaran
dari Mux berasal dari instruksi bit 15-11
9
Branch
tujuan : dengan zero flag dari ALU memilih kondisi pencabangan
If Zero flag=1 and branch=1 then branch occur If not (zero flag=1 and branch=1) then branch
not occur
10
BranchDi And-kan dengan zero flag keluaran
ALUPencabangan terjadi jika nilai zero flag
= 1Pada saat pencabangan maka alamat
yang akan digunakan sebagai tujuan pencabangan adalah hasil operasi ALU
11
MemRead
tujuan : agar data dari memori data dapat dibaca
If MemRead=1 then Read Data Data Memory[address]
12
MemReadMemori bisa dibaca dan bisa ditulisiPada saat memori dibaca tidak dapat
ditulisiSebaliknya pada saat memori ditulisi
tidak bisa dibacaMemRead mengendalikan pembacaan
memori Jika MemRead bernilai 1 maka isi
memori dapat dibaca melalui pin ReadData
13
MemToReg
tujuan : agar dapat transfer data dari memori data ke dalam register dengan memilih mux
If MemtoReg=1 then RegisterData Memory If MemtoReg=0 then RegisterALUResult
14
MemToReg Jalur kendali yang mengendalikan
multiplexer 2 ke 1Mux tersebut memilih salah satu input
yang berasal dari ALU atau dari memori Jika MemToReg bernilai 0 maka data
yang menuju Register berasal dari ALU Juka MemToReg bernilai 1 maka data
yang menuju Register berasal dari Memori
15
ALUOp
tujuan : untuk memeilih operasi ALU tergantung nilai Instruction [5-0], sebagai fungsi dalam tipe R.
16
ALUOpAluOp adalah jalur kendali yang
mengendalikan ALU controlALU control menentukan jenis instruksi
yang dikerjakan oleh ALU Input dari ALU control berasal dari 5 bit
fungsi dari bit 0 – 5Pada instruksi tipe-R jenis operasinya
ditentukan oleh keenam bit ini
17
MemWrite
tujuan : agar dapat menulisi memori data pada alamat DataMemory[ALUResult] dengan data dari Register (Read Data 2)
If MemWrite=1 then DataMemory[ALUResult]Read Data 2
18
MemWrite
MemWrite mengendlaikan penulisan memori
Alamat penulisan digunakan hasil dari operasi ALU
Data yang dimasukan ke dalam memori berasal dari register
19
ALUSrc
tujuan : untuk memilih input ALU apakah dari register atau dari SignExtend(Instruction[15-0])
If ALUSrc=0 then ALUInputRegister If ALUSrc=1 then
ALUInputSignExtend(Instruction[15-0])
20
ALUSrcALUSrc menentukan sumber data yang
akan dioperasikan oleh ALU Jika ALUSrc bernilai 0 maka data berasal
dari register Jika ALUSrc bernilai 1 maka data berasal
dari signExtend 32 bit
21
RegWrite
tujuan : agar dapat menulisi register[writeRegister] dengan data (write data)
If RegWrite=1 then Register[writeRegister]Write Data
22
RegWrite Jalur kendali yang mengendalikan
penulisan Register Jika RegWrite bernilai 1 maka register
dapat ditulisiData yang ditulisi bisa berasal dari
memori atau dari hasil operasi ALU
23
ReferensiHennessy, John. Patterson, David,
“Computer Architecture A Quantitative Approach”. Morgan Kaufmann publisher Inc. San Fransisco. USA. 1996.
http://chortle.ccsu.edu/AssemblyTutorial/Chapter-01/