|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Control unit: ALU |
|
|
|
|
|
|
|
ALU operation selection:
function depends on type of instruction |
|
|
|
|
|
R-type: function
determined by function field from instruction |
|
|
|
|
|
Load/store: add to
compute memory address |
|
|
|
|
|
Branch: subtract to
compare operands |
|
|
|
|
|
|
|
|
|
|
|
|
|
(Main control) |
(Instruction) |
|
|
|
Instruction |
ALUOp |
Function |
ALU control |
|
|
|
|
|
lw, sw |
00 |
|
xxxxxx |
|
010 |
add |
|
|
|
|
|
beq |
|
01 |
|
xxxxxx |
|
110 |
subtract |
|
|
|
|
|
add |
|
10 |
|
100000 |
|
010 |
add |
|
|
|
|
|
sub |
|
10 |
|
100010 |
|
110 |
subtract |
|
|
|
|
|
and |
|
10 |
|
100100 |
|
000 |
and |
|
|
|
|
|
or |
|
10 |
|
100101 |
|
001 |
or |
|
|
|
|
|
slt |
|
10 |
|
101010 |
|
111 |
set on less than |
|
|
Fig. 5.15 shows complete
truth table for generating these ALU control bits |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|