Download presentation
Presentation is loading. Please wait.
2
Access the Instruction from Memory
PC Address Next PC Logic Instruction Memory Simplified Overview Instruction Access the Instruction from Memory
3
Access the Data from Registers
PC Address Next PC Logic Instruction Memory Simplified Overview Instruction Register File Access the Data from Registers
4
Perform the Instruction
PC Address Next PC Logic Instruction Memory Simplified Overview Instruction Register File ALU Perform the Instruction
5
Write the Result PC Next PC Logic Address Instruction Memory
Simplified Overview Instruction Addr Register File Data Memory ALU Data Out Data In Write the Result
6
PC Next PC Logic Address Instruction Memory Simplified Overview
Register File Data Memory ALU Data Out Data In Timing Assumption
7
MIPS - Lite Consider the following instructions for implementation INSTRUCTION OP FUNCT R type op rs, rt, rd add subtract AND OR set on less than 0 42 load word na lw rt, imm(rs) store word na sw rt, imm(rs) branch equal 4 na beq rs, rt,imm
8
Register File Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq INPUT R1 R2 Rw Registers R1 R2 Rw Dw Dr1 Dr2
9
Register File Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq INPUT rs R1 rt R2 rd Rw Registers R1 R2 Rw Dw Dr1 Dr2
10
Register File Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq INPUT rs rs R1 rt x R2 rd rt Rw Registers R1 R2 Rw Dw Dr1 Dr2
11
Register File Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq INPUT rs rs rs R1 rt x rt R2 rd rt x Rw Registers R1 R2 Rw Dw Dr1 Dr2
12
Register File Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq INPUT rs rs rs rs R1 rt x rt rt R2 rd rt x x Rw Registers R1 R2 Rw Dw Dr1 Dr2
13
RegDst = Register Destination for the Write Register
Register File Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq INPUT rs rs rs rs R1 rt x rt rt R2 rd rt x x Rw Registers rs rt rd R1 R2 Rw Dw Dr1 Dr2 1 mux RegDst = Register Destination for the Write Register
14
RegDst = Register Destination for the Write Register
Register File Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq INPUT rs rs rs rs R1 rt x rt rt R2 rd rt x x Rw x x RegDst rs rt rd R1 R2 Rw Dw Dr1 Dr2 1 mux RegDst = Register Destination for the Write Register
15
RegWrite = Write the selected register with Write Data Input
Register File Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq INPUT rs rs rs rs R1 rt x rt rt R2 rd rt x x Rw x x RegDst RegWrite = Write the selected register with Write Data Input rs rt rd R1 R2 Rw Dw Dr1 Dr2 1 mux RegDst = Register Destination for the Write Register
16
1 1 0 0 RegWrite = Write the selected register with Write Data Input
Register File Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq INPUT rs rs rs rs R1 rt x rt rt R2 rd rt x x Rw x x RegDst RegWrite = Write the selected register with Write Data Input rs rt rd R1 R2 Rw Dw Dr1 Dr2 1 mux RegDst = Register Destination for the Write Register
17
PC Next PC Logic Address Instruction Memory Simplified Overview
Register File Data Memory ALU Data Out Data In
18
ALU Operation Control Lines
ALU Control Code Function Bnegate Operation and or add subtract set on less than
19
ALU Control INSTRUCTION OP FUNCT ALUOp ALU Action ALU control add 0 32
subtract AND OR set on less than load word na store word na branch equal na
20
ALUOp = 10 if the operation depends on the funct field 00 if add
ALU Control INSTRUCTION OP FUNCT ALUOp ALU Action ALU control add subtract AND OR set on less than load word na store word na branch equal na ALUOp = 10 if the operation depends on the funct field 00 if add 01 if subtract
21
ALUOp = 10 if the operation depends on the funct field 00 if add
ALU Control INSTRUCTION OP FUNCT ALUOp ALU Action ALU control add add subtract subtract AND and OR or set on less than slt load word na add store word na add branch equal na subtract ALUOp = 10 if the operation depends on the funct field 00 if add 01 if subtract
22
ALU Control INSTRUCTION OP FUNCT ALUOp ALU Action ALU control
add add subtract subtract AND and OR or set on less than slt load word na add store word na add branch equal na subtract
23
ALU Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm add lw sw beq Input a b Zero a b ALU Result ALU control funct ALUOp
24
ALU Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm add lw sw beq Input Dr1 Dr2 a b Zero a b ALU Result ALU control funct ALUOp
25
Load Word & Store Word ( I – type )
lw rt, imm16 (rs) or sw rt, imm16 ( rs) op rs rt imm16 lw # load word M[ R[rs] + sign_ext(imm16) ] R[rt] sw # store word R[rt] M[ R[rs] + sign_ext(imm16) ]
26
ALU Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm add lw sw beq Input Dr1 Dr2 Dr1 ext(imm) a b Zero a b ALU Result ALU control funct ALUOp
27
ALU Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm add lw sw beq Input Dr1 Dr2 Dr1 ext(imm) Dr1 Dr2 a b Zero a b ALU Result ALU control funct ALUOp
28
ALU Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm add lw sw beq Input Dr1 Dr2 Dr1 ext(imm) Dr1 Dr2 a b Zero Dr1 a b ALU Result Dr2 1 sign ext imm 6 ALU control ALUSrc funct ALUOp
29
ALU Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm add lw sw beq Input Dr1 Dr2 Dr1 ext(imm) Dr1 Dr2 a b ALUSrc = ALU second reg control Dr1 a b Zero ALU Result Dr2 1 sign ext imm 6 ALU control ALUSrc funct ALUOp
30
ALU Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm add lw sw beq Input Dr1 Dr2 Dr1 ext(imm) Dr1 Dr2 a b ALUSrc = ALU second reg control Dr1 a b Zero ALU Result Dr2 1 sign ext imm 6 ALU control ALUSrc funct ALUOp
31
PC Next PC Logic Address Instruction Memory Simplified Overview
Register File Data Memory ALU Data Out Data In
32
Data Memory add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm MemWrite Result Addr Dr Dr2 Dw MemRead Data Memory
33
1 1 0 0 RegWrite = Write the selected register with Write Data Input
Register File Control add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq INPUT rs rs rs rs R1 rt x rt rt R2 rd rt x x Rw x x RegDst RegWrite = Write the selected register with Write Data Input rs rt rd R1 R2 Rw Dw Dr1 Dr2 1 mux RegDst = Register Destination for the Write Register
34
Data Memory add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq Control MemWrite MemRead MemWrite Result Addr Dr Dw Dr2 Data Memory MemRead
35
Data Memory add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq Control MemWrite MemRead MemWrite Result Addr Dr Dw Dr2 Data Memory MemRead
36
Data Memory add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs) beq rs, rt, imm add lw sw beq Control MemWrite MemRead MemWrite Result Addr Dr Dw Dr2 Data Memory MemRead
37
Data Memory add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm add lw sw beq Control MemWrite MemRead MemtoReg mux MemWrite 1 to Register File Dw Result Addr Dr Dw Dr2 MemtoReg Selects data memory or ALU output to Register Write Data Data Memory MemRead
38
Data Memory add rd, rs, rt lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm add lw sw beq Control MemWrite MemRead MemtoReg x x mux MemWrite 1 to Register File Dw Result Addr Dr Dw Dr2 MemtoReg Selects data memory or ALU output to Register Write Data Data Memory MemRead
39
PC Next PC Logic Address Instruction Memory Simplified Overview
Register File Data Memory ALU Data Out Data In
41
add rd, rs, rt PC Arithmetic lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm PC Arithmetic 4 ALU 1 Instr Mem Addr PC+4 PC ALU Shift Left 2 ? imm16 sign ext 16 32
42
add rd, rs, rt PC Arithmetic lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm PC Arithmetic 4 ALU 1 Instr Mem Addr PC+4 PC ALU Shift Left 2 imm16 sign ext Zero 16 32 Branch
43
add rd, rs, rt PC Arithmetic lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm PC Arithmetic add lw sw beq Control Branch 4 ALU 1 Instr Mem Addr PC+4 PC ALU Shift Left 2 imm16 sign ext Zero 16 32 Branch
44
add rd, rs, rt PC Arithmetic lw rt, imm(rs) sw rt, imm(rs)
beq rs, rt, imm PC Arithmetic add lw sw beq Control Branch 4 ALU 1 Instr Mem Addr PC+4 PC ALU Shift Left 2 imm16 sign ext Zero 16 32 Branch
45
Control Summary Inputs R type lw sw beq Op Outputs RegDst x x ALUSrc MemtoReg x x RegWrite MemRead MemWrite Branch ALUOp ALUOp
46
Review Fig 4.15 page 320 / Fig. 4.17 page 322
Review Timing
47
Add Jump Instruction j Label go to Label op address 2 address
6 bits bits The complete 32 bit address is : address 00 4 bits bits bits Upper 4 bits of the Program Counter, PC jump uses word addresses address * 4 = address:00 This is Pseudodirect Addressing. Note: 256 MB word boundaries
48
Jump Instruction Data Path
28 32 shift left 2 address Instruction[25-0] : 1 PC+4 (31-28) 4 4 “Other” Next Instr Logic Add PC
49
Jump Instruction Data Path
Jump = Opcode(2) Jump 28 32 shift left 2 address Instruction[25-0] : 1 PC+4 (31-28) 4 4 “Other” Next Instr Logic Add PC
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.