Cse431 05
Cse431 05
Computer Architecture
Fall 2005
clock
Add
Instruction
Memory
Read
PC Instruction
Address
Control
Unit
Read Addr 1
Read
Register
Read Addr 2 Data 1
Instruction
File
Write Addr Read
Data 2
Write Data
Read Addr 1
Read
Register
Instruction Read Addr 2 Data 1 overflow
File zero
Write Addr ALU
Read
Data 2
Write Data
The Register File is not written every cycle (e.g. sw), so we need
an explicit write control signal for the Register File
CSE431 L05 Basic MIPS Architecture.8 Irwin, PSU, 2005
Executing Load and Store Operations
Load and store operations involves
compute memory address by adding the base register (read from
the Register File during decode) to the 16-bit signed-extended
offset field in the instruction
store value (read from the Register File during decode) written to
the Data Memory
load value, read from the Data Memory, written to the Register
File RegWrite ALU control MemWrite
overflow
Read Addr 1 zero
Read Address
Register
Instruction Read Addr 2 Data 1 Data
File Memory Read Data
Write Addr ALU
Read
Data 2 Write Data
Write Data
Sign MemRead
16 Extend 32
ALU control
PC
Sign
16 Extend 32
CSE431 L05 Basic MIPS Architecture.10 Irwin, PSU, 2005
Executing Jump Operations
Jump operation involves
replace the lower 28 bits of the PC with the lower 26 bits of the
fetched instruction shifted left by 2 bits
Add
4
4
Jump
Instruction
Shift address
Memory
left 2 28
Read
PC Instruction
Address 26
Add
RegWrite ALUSrc ALU control MemWrite MemtoReg
4
ovf
zero
Instruction Read Addr 1
Read Address
Memory Register
Read Addr 2 Data 1 Data
Read File
PC Instruction Memory Read Data
Address Write Addr ALU
Read
Data 2 Write Data
Write Data
MemRead
Sign
16 Extend 32
RegWrite
RegDst
ovf
Instr[25-21] Read Addr 1
Instruction
Read Address
Memory Register
Instr[20-16] Read Addr 2 Data 1 zero
Data
Read
PC Instr[31-0] 0 File
ALU Memory Read Data 1
Address Write Addr
1 Read 0
Instr[15 Data 2 Write Data 0
Write Data
-11] 1
Instr[5-0]
RegWrite
RegDst
ovf
Instr[25-21] Read Addr
Instruction
1 Read Address
Memory Register
Instr[20-16] Read Addr 2 Data 1 zero
Data
Read
PC Instr[31-0] 0 File
ALU Memory Read Data 1
Address Write Addr
1 Read 0
Instr[15 Data 2 Write Data 0
Write Data
-11] 1
Instr[5-0]
RegWrite
RegDst
ovf
Instr[25-21] Read Addr 1
Instruction
Read Address
Memory Register
Instr[20-16] Read Addr 2 Data 1 zero
Data
Read
PC Instr[31-0] 0 File
ALU Memory Read Data 1
Address Write Addr
1 Read 0
Instr[15 Data 2 Write Data 0
Write Data
-11] 1
Instr[5-0]
RegWrite
RegDst
ovf
Instr[25-21] Read Addr 1
Instruction
Read Address
Memory Register
Instr[20-16] Read Addr 2 Data 1 zero
Data
Read
PC Instr[31-0] 0 File
ALU Memory Read Data 1
Address Write Addr
1 Read 0
Instr[15 Data 2 Write Data 0
Write Data
-11] 1
Instr[5-0]
RegWrite
RegDst
ovf
Instr[25-21] Read Addr 1
Instruction
Read Address
Memory Register
Instr[20-16] Read Addr 2 Data 1 zero
Read Data
PC Instr[31-0] 0 File
ALU Memory Read Data 1
Address Write Addr
1 Read 0
Instr[15 Data 2 Write Data 0
Write Data
-11] 1
Instr[15-0] Sign
ALU
16 Extend 32 control
Instr[5-0]
Cycle 1 Cycle 2
Clk
lw sw Waste
IR
Memory Read Addr 1
PC
A
Address Register Read
ALUout
Read Data Read Addr 2Data 1
File
(Instr. or Data) Write Addr ALU
Read
B
Write Data Write Data Data 2
MDR
Instr[31-26]
PC[31-28]
Instr[25-0] Shift 28
left 2 2
0
1
Memory 0
PC
0 Read Addr 1
Address
A
Read
IR
1 Register 1 zero
Read Addr 2 Data 1
ALUout
Read Data
0 File
(Instr. or Data) ALU
Write Addr
1 Read
Write Data Data 2
B
1 Write Data 0
4
MDR
1
0 2
Instr[15-0] Sign Shift 3
Extend 32 left 2 ALU
Instr[5-0] control
...
output function (determined by control logic points
current state and the input)
...
...
State Reg
Inst Next State
Opcode
lw sw R-type
IFetch Dec Exec Mem WB IFetch Dec Exec Mem IFetch
Cycle 1 Cycle 2
Clk
lw sw Waste
multicycle clock
slower than 1/5th of
Multiple Cycle Implementation: single cycle clock
due to state register
overhead
Clk Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9Cycle 10
lw sw R-type
IFetch Dec Exec Mem WB IFetch Dec Exec Mem IFetch
Reminders
HW2 due September 27th
Evening midterm exam scheduled
- Tuesday, October 18th , 20:15 to 22:15, Location 113 IST
- You should have let me know by now if you have a conflict !!