coa 5 unit kendali
TRANSCRIPT
![Page 1: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/1.jpg)
Unit Kendali
![Page 2: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/2.jpg)
2
MIPS Datapath
![Page 3: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/3.jpg)
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
![Page 4: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/4.jpg)
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
![Page 5: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/5.jpg)
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
![Page 6: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/6.jpg)
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
![Page 7: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/7.jpg)
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]
![Page 8: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/8.jpg)
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
![Page 9: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/9.jpg)
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
![Page 10: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/10.jpg)
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
![Page 11: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/11.jpg)
11
MemRead
tujuan : agar data dari memori data dapat dibaca
If MemRead=1 then Read Data Data Memory[address]
![Page 12: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/12.jpg)
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
![Page 13: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/13.jpg)
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
![Page 14: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/14.jpg)
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
![Page 15: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/15.jpg)
15
ALUOp
tujuan : untuk memeilih operasi ALU tergantung nilai Instruction [5-0], sebagai fungsi dalam tipe R.
![Page 16: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/16.jpg)
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
![Page 17: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/17.jpg)
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
![Page 18: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/18.jpg)
18
MemWrite
MemWrite mengendlaikan penulisan memori
Alamat penulisan digunakan hasil dari operasi ALU
Data yang dimasukan ke dalam memori berasal dari register
![Page 19: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/19.jpg)
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])
![Page 20: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/20.jpg)
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
![Page 21: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/21.jpg)
21
RegWrite
tujuan : agar dapat menulisi register[writeRegister] dengan data (write data)
If RegWrite=1 then Register[writeRegister]Write Data
![Page 22: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/22.jpg)
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
![Page 23: COA 5 Unit Kendali](https://reader033.vdocuments.mx/reader033/viewer/2022061601/5571f2cf49795947648d19d4/html5/thumbnails/23.jpg)
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/