Presentation is loading. Please wait.

Presentation is loading. Please wait.

Access the Instruction from Memory

Similar presentations


Presentation on theme: "Access the Instruction from Memory"— Presentation transcript:

1

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

40

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


Download ppt "Access the Instruction from Memory"

Similar presentations


Ads by Google