CSSE232 Computer Architecture I Mul5cycle Control Groups - - PowerPoint PPT Presentation

csse232 computer architecture i
SMART_READER_LITE
LIVE PREVIEW

CSSE232 Computer Architecture I Mul5cycle Control Groups - - PowerPoint PPT Presentation

CSSE232 Computer Architecture I Mul5cycle Control Groups GroupA: Megan, Chris, Zach, Michael, Chase GroupB: Gary, Heather, Brodie, Philip, Joe GroupC:


slide-1
SLIDE 1

CSSE232 ¡ Computer ¡Architecture ¡I ¡

Mul5cycle ¡Control ¡

slide-2
SLIDE 2

Groups ¡

  • GroupA: ¡Megan, ¡Chris, ¡Zach, ¡Michael, ¡Chase ¡
  • GroupB: ¡Gary, ¡Heather, ¡Brodie, ¡Philip, ¡Joe ¡
  • GroupC: ¡Brian, ¡Abby, ¡Aus5n, ¡Gordon ¡
  • GroupD: ¡Francis, ¡Aler, ¡L.E., ¡Alvin, ¡MaJhew ¡
slide-3
SLIDE 3

Outline ¡

  • Control ¡lines ¡
  • Finite ¡state ¡machine ¡
  • Project ¡review ¡
slide-4
SLIDE 4

Mul5cycle ¡Datapath ¡with ¡Control ¡

Complete multicycle MIPS datapath (with branch and jump capability) and showing the main control block and all control lines

Shift left 2 PC M u x 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction [15– 11] M u x 1 M u x 1 4 Instruction [15– 0] Sign extend 32 16 Instruction [25– 21] Instruction [20– 16] Instruction [15– 0] Instruction register ALU control ALU result ALU Zero Memory data register A B

IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op [5– 0]

Instruction [31-26] Instruction [5– 0]

M u x 2 Jump address [31-0]

Instruction [25– 0] 26 28

Shift left 2 PC [31-28]

1 1 M u x 3 2 M u x 1 ALUOut Memory MemData Write data Address

New multiplexor New gates For the jump address

slide-5
SLIDE 5

Mul5cycle ¡Control ¡Step ¡(1): ¡ Fetch ¡

  • IR = Memory[PC];
  • PC = PC + 4; ¡

1 1 1 X X 010 1

5 5

RD1 RD2 RN1 RN2 WN WD RegWrite

Registers

Operation

ALU

3

E X T N D

16 32

Zero RD WD MemRead

Memory

ADDR MemWrite

5

Instruction I

32

ALUSrcB

<<2 PC

4 RegDst

5

I R M D R

M U X

1 2 3

M U X

1

M U X

1

A B

ALU OUT

1 2

M U X

<<2

CONCAT

28 32

M U X

1 ALUSrcA jmpaddr

I[25:0]

rd

MUX

1 rt rs immediate PCSource MemtoReg IorD PCWr* IRWrite

slide-6
SLIDE 6

Mul5cycle ¡Control ¡Step ¡(2): ¡ Instruc5on ¡Decode ¡& ¡Register ¡Fetch ¡

A = Reg[IR[25-21]]; (A = Reg[rs]) B = Reg[IR[20-15]]; (B = Reg[rt]) ALUOut = (PC + sign-extend(IR[15-0]) << 2); ¡ X X 3 X X 010

5 5

RD1 RD2 RN1 RN2 WN WD RegWrite

Registers

Operation

ALU

3

E X T N D

16 32

Zero RD WD MemRead

Memory

ADDR MemWrite

5

Instruction I

32

ALUSrcB

<<2 PC

4 RegDst

5

I R M D R

M U X

1 2 3

M U X

1

M U X

1

A B

ALU OUT

1 2

M U X

<<2

CONCAT

28 32

M U X

1 ALUSrcA jmpaddr

I[25:0]

rd

MUX

1 rt rs immediate PCSource MemtoReg IorD PCWr* IRWrite

slide-7
SLIDE 7

Mul5cycle ¡Control ¡Step ¡(3): ¡ ALU ¡Instruc5on ¡(R-­‑Type) ¡

  • ALUOut = A op B; ¡

X X X 1 X ???

5 5

RD1 RD2 RN1 RN2 WN WD RegWrite

Registers

Operation

ALU

3

E X T N D

16 32

Zero RD WD MemRead

Memory

ADDR MemWrite

5

Instruction I

32

ALUSrcB

<<2 PC

4 RegDst

5

I R M D R

M U X

1 2 3

M U X

1

M U X

1

A B

ALU OUT

1 2

M U X

<<2

CONCAT

28 32

M U X

1 ALUSrcA jmpaddr

I[25:0]

rd

MUX

1 rt rs immediate PCSource MemtoReg IorD PCWr* IRWrite

slide-8
SLIDE 8

1 X X XXX X X 1 1

5 ¡ 5 ¡

RD1 ¡ RD2 ¡ RN1 ¡ RN2 ¡ WN ¡ WD ¡ RegWrite ¡

Registers ¡

Operation ¡

ALU ¡

3 ¡

E ¡ X ¡ T ¡ N ¡ D ¡

16 ¡ 32 ¡

Zero ¡ RD ¡ WD ¡ MemRead ¡

Memory ¡

ADDR ¡ MemWrite ¡

5 ¡

Instruction ¡ I ¡

32 ¡

ALUSrcB ¡

<<2 ¡ PC ¡

4 ¡ RegDst ¡

5 ¡

I ¡ R ¡ M ¡ D ¡ R ¡

M ¡ U ¡ X ¡

0 ¡ 1 ¡ 2 ¡ 3 ¡

M ¡ U ¡ X ¡

1 ¡

M ¡ U ¡ X ¡

0 ¡ 1 ¡

A ¡ B ¡

ALU ¡ OUT ¡

0 ¡ 1 ¡ 2 ¡

M ¡ U ¡ X ¡

<<2 ¡

CONCAT ¡

28 ¡ 32 ¡

M ¡ U ¡ X ¡

0 ¡ 1 ¡ ALUSrcA ¡ jmpaddr ¡

I[25:0] ¡

rd ¡

MUX ¡

0 ¡ 1 ¡ rt ¡ rs ¡ immediate ¡ PCSource ¡ MemtoReg ¡ IorD ¡ PCWr* ¡ IRWrite ¡

Mul5cycle ¡Control ¡Step ¡(4): ¡ ALU ¡Instruc5on ¡(R-­‑Type) ¡

  • Reg[IR[15:11]] = ALUOut;
  • (Reg[Rd] = ALUOut)
slide-9
SLIDE 9

X

Mul5cycle ¡Control ¡Step ¡(3): ¡ Memory ¡Reference ¡Instruc5ons ¡

  • ALUOut = A + sign-extend(IR[15-0]); ¡

X 2 X 1 X 010

5 5

RD1 RD2 RN1 RN2 WN WD RegWrite

Registers

Operation

ALU

3

E X T N D

16 32

Zero RD WD MemRead

Memory

ADDR MemWrite

5

Instruction I

32

ALUSrcB

<<2 PC

4 RegDst

5

I R M D R

M U X

1 2 3

M U X

1

M U X

1

A B

ALU OUT

1 2

M U X

<<2

CONCAT

28 32

M U X

1 ALUSrcA jmpaddr

I[25:0]

rd

MUX

1 rt rs immediate PCSource MemtoReg IorD PCWr* IRWrite

slide-10
SLIDE 10

Mul5cycle ¡Execu5on ¡Steps ¡(4) ¡ Memory ¡Access ¡-­‑ ¡Write ¡(sw) ¡

  • Memory[ALUOut] = B; ¡

X X X 1 1 X X XXX

5 5

RD1 RD2 RN1 RN2 WN WD RegWrite

Registers

Operation

ALU

3

E X T N D

16 32

Zero RD WD MemRead

Memory

ADDR MemWrite

5

Instruction I

32

ALUSrcB

<<2 PC

4 RegDst

5

I R M D R

M U X

1 2 3

M U X

1

M U X

1

A B

ALU OUT

1 2

M U X

<<2

CONCAT

28 32

M U X

1 ALUSrcA jmpaddr

I[25:0]

rd

MUX

1 rt rs immediate PCSource MemtoReg IorD PCWr* IRWrite

slide-11
SLIDE 11

Mul5cycle ¡Control ¡Step ¡(4): ¡ Memory ¡Access ¡-­‑ ¡Read ¡(lw) ¡

  • MDR = Memory[ALUOut]; ¡

X X X 1 1 X X XXX

5 5

RD1 RD2 RN1 RN2 WN WD RegWrite

Registers

Operation

ALU

3

E X T N D

16 32

Zero RD WD MemRead

Memory

ADDR MemWrite

5

Instruction I

32

ALUSrcB

<<2 PC

4 RegDst

5

I R M D R

M U X

1 2 3

M U X

1

M U X

1

A B

ALU OUT

1 2

M U X

<<2

CONCAT

28 32

M U X

1 ALUSrcA jmpaddr

I[25:0]

rd

MUX

1 rt rs immediate PCSource MemtoReg IorD PCWr* IRWrite

slide-12
SLIDE 12

Mul5cycle ¡Execu5on ¡Steps ¡(5) ¡ Memory ¡Read ¡Comple5on ¡(lw) ¡

  • Reg[IR[20-16]] = MDR; ¡

1 X X X X XXX

5 ¡ 5 ¡

RD1 ¡ RD2 ¡ RN1 ¡ RN2 ¡ WN ¡ WD ¡ RegWrite ¡

Registers ¡

Operation ¡

ALU ¡

3 ¡

E ¡ X ¡ T ¡ N ¡ D ¡

16 ¡ 32 ¡

Zero ¡ RD ¡ WD ¡ MemRead ¡

Memory ¡

ADDR ¡ MemWrite ¡

5 ¡

Instruction ¡ I ¡

32 ¡

ALUSrcB ¡

<<2 ¡ PC ¡

4 ¡ RegDst ¡

5 ¡

I ¡ R ¡ M ¡ D ¡ R ¡

M ¡ U ¡ X ¡

0 ¡ 1 ¡ 2 ¡ 3 ¡

M ¡ U ¡ X ¡

0 ¡ 1 ¡

M ¡ U ¡ X ¡

0 ¡ 1 ¡

A ¡ B ¡

ALU ¡ OUT ¡

0 ¡ 1 ¡ 2 ¡

M ¡ U ¡ X ¡

<<2 ¡

CONCAT ¡

28 ¡ 32 ¡

M ¡ U ¡ X ¡

0 ¡ 1 ¡ ALUSrcA ¡ jmpaddr ¡

I[25:0] ¡

rd ¡

MUX ¡

0 ¡ 1 ¡ rt ¡ rs ¡ immediate ¡ PCSource ¡ MemtoReg ¡ IorD ¡ PCWr* ¡ IRWrite ¡

slide-13
SLIDE 13

1 if Zero=1

Mul5cycle ¡Control ¡Step ¡(3): ¡ Branch ¡Instruc5ons ¡

  • if (A == B) PC = ALUOut; ¡

X X X 1 1 011

5 5

RD1 RD2 RN1 RN2 WN WD RegWrite

Registers

Operation

ALU

3

E X T N D

16 32

Zero RD WD MemRead

Memory

ADDR MemWrite

5

Instruction I

32

ALUSrcB

<<2 PC

4 RegDst

5

I R M D R

M U X

1 2 3

M U X

1

M U X

1

A B

ALU OUT

1 2

M U X

<<2

CONCAT

28 32

M U X

1 ALUSrcA jmpaddr

I[25:0]

rd

MUX

1 rt rs immediate PCSource MemtoReg IorD PCWr* IRWrite

slide-14
SLIDE 14

Mul5cycle ¡Execu5on ¡Step ¡(3): ¡ Jump ¡Instruc5on ¡

  • PC = PC[21-28] concat (IR[25-0] << 2);

X X X 1 X X 2 XXX

5 5

RD1 RD2 RN1 RN2 WN WD RegWrite

Registers

Operation

ALU

3

E X T N D

16 32

Zero RD WD MemRead

Memory

ADDR MemWrite

5

Instruction I

32

ALUSrcB

<<2 PC

4 RegDst

5

I R M D R

M U X

1 2 3

M U X

1

M U X

1

A B

ALU OUT

1 2

M U X

<<2

CONCAT

28 32

M U X

1 ALUSrcA jmpaddr

I[25:0]

rd

MUX

1 rt rs immediate PCSource MemtoReg IorD PCWr* IRWrite

slide-15
SLIDE 15

Implemen5ng ¡Control ¡

  • Value ¡of ¡control ¡signals ¡is ¡dependent ¡upon: ¡

– what ¡instruc5on ¡is ¡being ¡executed ¡ – which ¡step ¡is ¡being ¡performed ¡ ¡

  • Use ¡the ¡informa5on ¡we ¡have ¡accumulated ¡to ¡specify ¡a ¡finite ¡state ¡

machine ¡

– specify ¡the ¡finite ¡state ¡machine ¡graphically, ¡or ¡ – use ¡microprogramming ¡ ¡

  • Implementa5on ¡is ¡then ¡derived ¡from ¡the ¡specifica5on ¡

¡

slide-16
SLIDE 16

Review: ¡Finite ¡State ¡Machines ¡

  • Finite ¡state ¡machines ¡(FSMs): ¡

– a ¡set ¡of ¡states ¡and ¡ ¡ – next ¡state ¡func5on, ¡determined ¡by ¡current ¡state ¡and ¡the ¡input ¡ – output ¡func5on, ¡determined ¡by ¡current ¡state ¡and ¡possibly ¡input ¡

¡ ¡ ¡ ¡ ¡

– We’ll ¡use ¡a ¡Moore ¡machine ¡– ¡output ¡based ¡only ¡on ¡current ¡state ¡

Next-state function Current state Clock Output function Next state Outputs Inputs

slide-17
SLIDE 17

FSM ¡Control: ¡Memory ¡Reference ¡ ¡

MemWrite IorD = 1 MemRead IorD = 1 ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00 RegWrite MemtoReg = 1 RegDst = 0 Memory address computation (Op = 'LW') or (Op = 'SW') Memory access Write-back step (Op = 'SW') (Op = 'LW') 4 2 5 3 From state 1 To state 0 (Figure 5.37) Memory access

FSM control for memory-reference has 4 states

slide-18
SLIDE 18

FSM ¡Control: ¡R-­‑type ¡Instruc5on ¡ ¡

ALUSrcA = 1 ALUSrcB = 00 ALUOp = 10 RegDst = 1 RegWrite MemtoReg = 0 Execution R-type completion 6 7 (Op = R-type) From state 1 To state 0 (Figure 5.37)

FSM control to implement R-type instructions has 2 states

slide-19
SLIDE 19

¡ FSM ¡Control: ¡Branch ¡Instruc5on ¡ ¡

Branch completion 8 (Op = 'BEQ') From state 1 To state 0 (Figure 5.37) ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01

FSM control to implement branches has 1 state

slide-20
SLIDE 20

FSM ¡Control: ¡Jump ¡Instruc5on ¡

Jump completion 9 (Op = 'J') From state 1 To state 0 (Figure 5.37) PCWrite PCSource = 10

FSM control to implement jumps has 1 state

slide-21
SLIDE 21

FSM ¡Control: ¡Complete ¡View ¡ ¡

PCWrite PCSource = 10 ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01 ALUSrcA =1 ALUSrcB = 00 ALUOp= 10 RegDst = 1 RegWrite MemtoReg = 0 MemWrite IorD = 1 MemRead IorD = 1 ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00 RegDst=0 RegWrite MemtoReg=1 ALUSrcA = 0 ALUSrcB = 11 ALUOp = 00 MemRead ALUSrcA = 0 IorD = 0 IRWrite ALUSrcB = 01 ALUOp = 00 PCWrite PCSource = 00 Instruction fetch Instruction decode/ register fetch Jump completion Branch completion Execution Memory address computation Memory access Memory access R-type completion Write-back step (Op = 'LW') or (Op = 'SW') (Op = R-type) (Op = 'BEQ') (Op = 'J') (Op = 'SW') (Op = 'LW') 4 1 9 8 6 2 7 5 3 Start

The complete FSM control for the multicycle MIPS datapath: refer Multicycle Datapath with Control Labels on arcs are conditions that determine next state

IF ¡ ID ¡ EX ¡ MEM ¡ WB ¡

slide-22
SLIDE 22

Review ¡and ¡Ques5ons ¡

  • Control ¡lines ¡
  • Finite ¡state ¡machine ¡