|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Datapath: memory access
(load) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Fetch instruction and
increment PC |
|
|
Fig. 5.21 |
|
|
2. Obtain base register
operand (Read data 1) from register file |
|
|
|
3.
Perform addition of register value with sign-extended immediate operand in
ALU, |
|
|
|
using ALU control to
select operation, ALUSrc = 1 to select immediate |
|
|
4. Use ALU result as
address for data memory |
|
|
|
5.
Use MemtoReg = 1 to select Read data and write back to destination register |
|
|
|
Controls: RegWrite = 1,
RegDst = 0 for $rt |
|
|
|
|
How would this have to
change for a store instruction? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|