coa 5 unit kendali

23
Unit Kendali

Upload: syamsulbachri

Post on 11-Jun-2015

251 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: COA 5 Unit Kendali

Unit Kendali

Page 2: COA 5 Unit Kendali

2

MIPS Datapath

Page 3: COA 5 Unit Kendali

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

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

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

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

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

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

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

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

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

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

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

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

15

ALUOp

tujuan : untuk memeilih operasi ALU tergantung nilai Instruction [5-0], sebagai fungsi dalam tipe R.

Page 16: COA 5 Unit Kendali

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

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

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

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

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

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

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

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/