the alu control unit

24
The ALU Control Unit Lecture 33 Section 4.3, Appendix D Robb T. Koether Hampden-Sydney College Mon, Nov 18, 2019 Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 1 / 19

Upload: others

Post on 27-Mar-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

The ALU Control UnitLecture 33

Section 4.3, Appendix D

Robb T. Koether

Hampden-Sydney College

Mon, Nov 18, 2019

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 1 / 19

1 The Control Unit

2 The ALU Control Unit

3 Assignment

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 2 / 19

Outline

1 The Control Unit

2 The ALU Control Unit

3 Assignment

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 3 / 19

The Control Unit

The Control Unit

RegWriteRegDest MemToReg MemRead MemWriteALUSrc Branch

Control Unit ALUOp ALUOp

Operation

RegWriteRegDest MemToReg MemRead MemWriteALUSrc Branch

Data Path

ALU

Instruction

32 6 6[31:26] [5:0]

2

4

The ALU Control Unit receives input from the Control Unit (derivedfrom the opcode) and from the funct field of the instruction.

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 4 / 19

The Control Unit

The Control Unit

RegWriteRegDest MemToReg MemRead MemWriteALUSrc Branch

Control Unit ALUOp ALUOp

Operation

RegWriteRegDest MemToReg MemRead MemWriteALUSrc Branch

Data Path

ALU

Instruction

32 6 6[31:26] [5:0]

2

4

The ALU Control Unit output is a 4-bit value that determines thearithmetic or logical operation performed by the ALU.

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 4 / 19

The Op Codes

Instruction op Field funct Fieldlw 100011 XXXXXXsw 101011 XXXXXXbeq 000100 XXXXXXaddi 001000 XXXXXXadd 000000 100000sub 000000 100010and 000000 100100or 000000 100101nor 000000 100111slt 000000 101010

The funct field matters only for R-type instructions.

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 5 / 19

The ALUOp Codes

Instruction op Field ALUOpLoad/store word 100011 00

Branch equal 000100 01Add immediate 001000 11

R-type 000000 10

The ALUOp is determined by the op code of the instruction.

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 6 / 19

Summary of the Control Unit Output

Control Unit Output

Reg

Writ

e

Reg

Dst

Mem

toR

eg

Mem

Rea

d

Mem

Writ

e

Bra

nch

ALU

Op1

ALU

Op0

RT

lw

sw

beq

OP Op5 Op4 Op3 Op2 Op1 Op0

Input

Output

0 0 0 0 0 0

1 0 0 0 1 1

1 0 1 0 1 1

0 0 0 1 0 0

101 0 0 0 0 1

010 1 1 0 0 0

X1X 0 0 1 0 0X0X 0 0 0 1 0

ALU

Src

0

0

01

addi 0 0 01 0 0 0 1 0 1 0 0 0 1 1

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 7 / 19

The Control Unit

opCode0opCode1opCode2opCode3opCode4opCode5

R-Type lw sw beqRegDst

ALUSrc

MemtoReg

RegWrite

MemRead

MemWrite

ALUOp1

ALUOp0

addi

Branch

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 8 / 19

Outline

1 The Control Unit

2 The ALU Control Unit

3 Assignment

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 9 / 19

The ALU Control Unit Codes

Instruction funct ALU ALU ControlOperation ALUOp Field Action InputLoad word 00 XXXXXX Add 0010Store word 00 XXXXXX Add 0010

Branch equal 01 XXXXXX Subtract 0110Add immediate 11 XXXXXX Add 0010

Add 10 XX0000 Add 0010Subtract 10 XX0010 Subtract 0110

And 10 XX0100 And 0000Or 10 XX0101 Or 0001Nor 10 XX0111 Nor 1100

Set on less than 10 XX1010 Set on less than 0111

The ALU Control Unit output is determined by the ALUOp and thefunct field.

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 10 / 19

The Truth Table

Main Control funct FieldInstr ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 Operationlw 0 0 X X X X X X 0010sw 0 0 X X X X X X 0010beq 0 1 X X X X X X 0110addi 1 1 X X X X X X 0010add 1 0 X X 0 0 0 0 0010sub 1 0 X X 0 0 1 0 0110and 1 0 X X 0 1 0 0 0000or 1 0 X X 0 1 0 1 0001nor 1 0 X X 0 1 1 1 1100slt 1 0 X X 1 0 1 0 0111

What are the Boolean functions that determine the ALU Control Unit’soutput?

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 11 / 19

ALU Op0

Instruction funct FieldInstr ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 Op0

lw 0 0 X X X X X X 0sw 0 0 X X X X X X 0beq 0 1 X X X X X X 0addi 1 1 X X X X X X 0add 1 0 X X 0 0 0 0 0sub 1 0 X X 0 0 1 0 0and 1 0 X X 0 1 0 0 0or 1 0 X X 0 1 0 1 1nor 1 0 X X 0 1 1 1 0slt 1 0 X X 1 0 1 0 1

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 12 / 19

ALU Op0

Instruction funct FieldInstr ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 Op0

lw 0 0 X X X X X X 0sw 0 0 X X X X X X 0beq 0 1 X X X X X X 0addi 1 1 X X X X X X 0add 1 0 X X 0 0 0 0 0sub 1 0 X X 0 0 1 0 0and 1 0 X X 0 1 0 0 0or 1 0 X X 0 1 0 1 1nor 1 0 X X 0 1 1 1 0slt 1 0 X X 1 0 1 0 1

Op0 = ALUOp1 · ALUOp0 · (F3 + F1 · F0).

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 12 / 19

ALU Op1

Instruction funct FieldInstr ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 Op1

lw 0 0 X X X X X X 1sw 0 0 X X X X X X 1beq 0 1 X X X X X X 1addi 1 1 X X X X X X 1add 1 0 X X 0 0 0 0 1sub 1 0 X X 0 0 1 0 1and 1 0 X X 0 1 0 0 0or 1 0 X X 0 1 0 1 0nor 1 0 X X 0 1 1 1 0slt 1 0 X X 1 0 1 0 1

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 13 / 19

ALU Op1

Instruction funct FieldInstr ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 Op1

lw 0 0 X X X X X X 1sw 0 0 X X X X X X 1beq 0 1 X X X X X X 1addi 1 1 X X X X X X 1add 1 0 X X 0 0 0 0 1sub 1 0 X X 0 0 1 0 1and 1 0 X X 0 1 0 0 0or 1 0 X X 0 1 0 1 0nor 1 0 X X 0 1 1 1 0slt 1 0 X X 1 0 1 0 1

Op1 = ALUOp1 + ALUOp0 + F2.

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 13 / 19

ALU Op2

Instruction funct FieldInstr ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 Op2

sw 0 0 X X X X X X 0lw 0 0 X X X X X X 0beq 0 1 X X X X X X 1addi 1 1 X X X X X X 0add 1 0 X X 0 0 0 0 0sub 1 0 X X 0 0 1 0 1and 1 0 X X 0 1 0 0 0or 1 0 X X 0 1 0 1 0nor 1 0 X X 0 1 1 1 1slt 1 0 X X 1 0 1 0 1

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 14 / 19

ALU Op2

Instruction funct FieldInstr ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 Op2

sw 0 0 X X X X X X 0lw 0 0 X X X X X X 0beq 0 1 X X X X X X 1addi 1 1 X X X X X X 0add 1 0 X X 0 0 0 0 0sub 1 0 X X 0 0 1 0 1and 1 0 X X 0 1 0 0 0or 1 0 X X 0 1 0 1 0nor 1 0 X X 0 1 1 1 1slt 1 0 X X 1 0 1 0 1

Op2 =(

ALUOp1 · ALUOp0

)+(

ALUOp1 · ALUOp0 · F1

).

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 14 / 19

ALU Op3

Instruction funct FieldInstr ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 Op3

lw 0 0 X X X X X X 0sw 0 0 X X X X X X 0beq 0 1 X X X X X X 0addi 1 0 X X 0 0 0 0 0add 1 0 X X 0 0 1 0 0sub 1 0 X X 0 1 0 0 0and 1 0 X X 0 1 0 0 0or 1 0 X X 0 1 0 1 0nor 1 0 X X 0 1 1 1 1slt 1 0 X X 1 0 1 0 0

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 15 / 19

ALU Op3

Instruction funct FieldInstr ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 Op3

lw 0 0 X X X X X X 0sw 0 0 X X X X X X 0beq 0 1 X X X X X X 0addi 1 0 X X 0 0 0 0 0add 1 0 X X 0 0 1 0 0sub 1 0 X X 0 1 0 0 0and 1 0 X X 0 1 0 0 0or 1 0 X X 0 1 0 1 0nor 1 0 X X 0 1 1 1 1slt 1 0 X X 1 0 1 0 0

Op3 = ALUOp1 · ALUOp0 · F1 · F0.

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 15 / 19

The ALU Control Unit

Op0 = ALUOp1 · ALUOp0 · (F3 + F1 · F0),

Op1 = ALUOp1 + ALUOp0 + F2,

Op2 =(

ALUOp1 · ALUOp0

)+(

ALUOp1 · ALUOp0 · F1

),

Op3 = ALUOp1 · ALUOp0 · F1 · F0.

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 16 / 19

The ALU Control Unit

The ALU Control Unit

ALUOp

F[6:0]

Op

ALUOp0

Op2

ALUOp1

F0F1F2F3

Op1

Op0

2

6

4

0Op3

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 17 / 19

Outline

1 The Control Unit

2 The ALU Control Unit

3 Assignment

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 18 / 19

Assignment

AssignmentRead Section 4.3, Appendix D.

Robb T. Koether (Hampden-Sydney College) The ALU Control Unit Mon, Nov 18, 2019 19 / 19