|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Multi-cycle datapath |
|
|
|
|
|
|
|
MUX example 1: |
|
|
|
|
One memory is used for
instructions and data, so we need a MUX to select between: |
|
|
PC (instruction) |
|
|
|
ALUout (data) |
|
|
|
for address to access in
memory |
|
|
|
|
|
Where else? (Hint:
Consider ALU) |
|
|
|
|
|
|
|
|
|
|
|
|
|
MUX example 2: |
|
|
|
|
|
|
One
ALU is used to perform all arithmetic and logic operations, so we need a MUX |
|
|
|
to select first operand
between |
|
|
|
|
|
PC |
|
|
|
|
|
|
|
|
Data register A |
|
|
|
Also, for second operand: |
|
|
|
Data register B |
|
|
|
Sign-extended immediate |
|
|
|
Sign-extended/shifted
immediate (offset for branch) |
|
|
|
Constant 4 (incrementing
PC) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|