ALU used for
→ opcode로 구분!
ALU control | Function |
---|---|
0000 | AND |
0001 | OR |
0010 | add |
0110 | subtract |
0111 | set-on-less-than |
1101 | NOR |
Assume 2-bit ALUOp derived from opcode
opcode | ALUOp | Operation | funct | ALU function | ALU control |
---|---|---|---|---|---|
lw | 00 | load word | XXXXXX | add | 0010 |
sw | 00 | store word | XXXXXX | add | 0010 |
beq | 01 | branch equal | XXXXXX | subtract | 0110 |
R-type | 10 | add | 100000 | add | 0010 |
subtract | 100010 | subtract | 0110 | ||
AND | 100100 | AND | 0000 | ||
OR | 100101 | OR | 0001 | ||
set-on-less-than | 101010 | set-on-less-than | 0111 |
Truth table for ALU control
ALUOp | funct field | ALU control | ||||||
---|---|---|---|---|---|---|---|---|
ALUOp1 | ALUOp0 | F5 | F4 | F3 | F2 | F1 | F0 | |
0 | 0 | x | x | x | x | x | x | 0010 |
x | 1 | x | x | x | x | x | x | 0110 |
1 | x | x | x | 0 | 0 | 0 | 0 | 0010 |
1 | x | x | x | 0 | 0 | 0 | 0 | 0010 |
1 | x | x | x | 0 | 0 | 1 | 0 | 0110 |
1 | x | x | x | 0 | 1 | 0 | 0 | 0000 |
1 | x | x | x | 0 | 1 | 0 | 1 | 0001 |
1 | x | x | x | 1 | 0 | 1 | 0 | 0111 |