74
Comp. Sys. Design & Architecture 2 nd Edition © 2004 Prentice Hall, Mark Franklin,S06 Chapter 4 Topics The Design Process A 1-bus Microarchitecture for SRC Data Path Implementation Logic Design for the 1-bus SRC The Control Unit The 2- and 3-bus Processor Designs The Machine Reset Process Machine Exceptions

Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

  • Upload
    ngominh

  • View
    221

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Chapter 4 Topics

The Design ProcessA 1-bus Microarchitecture for SRCData Path ImplementationLogic Design for the 1-bus SRCThe Control UnitThe 2- and 3-bus Processor DesignsThe Machine Reset ProcessMachine Exceptions

Page 2: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Abstract & Concrete RT Descriptions

The abstract RTN in Chap. 2 defines “what,” not “how”.

Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement.

Different concrete RTNs could implement the same ISA.

Page 3: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Block Diagram of 1-bus SRC

Page 4: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

High-Level View of the 1-Bus SRC Design

EA

12

ADDSUBANDORSHRSHRASHLSHCNOTNEGC=BINC4

Memory

System

Page 5: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Microarchitecture Constraints

One bus connecting most registers:allows many different RTs, only one transfer at a time.

Memory address must be copied into MA by CPU.Memory data written from or read into MD.1st ALU op. A; result C2nd ALU op. BusIR Bus; MA Bus

A decoder (not shown) interprets contents of IRMA supplies address to memory, not to CPU bus

ALU

A B

C

31 0

32 32-bitGeneral

Purpose Registers

R0

R31

32

C

PC

IR

MA

MD

⟨31..0⟩

31 0

To memory subsystem

A

Page 6: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Abstract & Concrete RTN for SRC add Instr.

Abstract RTN: (IR ← M[PC]: PC ← PC + 4; instruction_execution);instruction_execution := ( • • •add (:= op= 12) → R[ra] ← R[rb] + R[rc]:

Parts of 2 RTs (IR ← M[PC]: PC ← PC + 4;) done in T0Single add RT takes 3 concrete RTs (T3, T4, T5)

ALU

A B

C

31 0

32 32-bitGeneral

Purpose Registers

R0

R31

32

C

PC

I R

MA

MD

⟨31..0⟩

31 0

To memory subsystem

A

Step RTNT0. MA ← PC: C ← PC + 4; T1. MD ← M[MA]: PC ← C;T2. IR ← MD;T3. A ← R[rb];T4. C ← A + R[rc];T5. R[ra] ← C;

Concrete RTN for add:

IFIEx.

Page 7: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Concrete RTN Gives Information about Sub-units

The ALU must be able to add two 32-bit values.ALU must also be able to increment B input by 4.Memory read must use address from MA & return data to MD.Two RTs separated by : (T0 & T1)take place in the same clock.Steps T0, T1, & T2 constitute instruction fetch, and are the same for all instructions.With this implementation, fetch & execute of the add instructiontakes 6 clock cycles.

Page 8: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Concrete RTN for Arithmetic Instr: addi

addi (:= op= 13) → R[ra] ← R[rb] + c2⟨16..0⟩ {2's comp. sign extend} :Abstract RTN:

ALU

A B

C

31 0

32 32-bitGeneral

Purpose Registers

R0

R31

32

C

PC

I R

MA

MD

⟨31..0⟩

31 0

To memory subsystem

A

Concrete RTN for addi:

Step RTNT0. MA ← PC: C ← PC + 4; T1. MD ← M[MA]; PC ← C;T2. IR ← MD;T3. A ← R[rb];T4. C ← A+c2⟨16..0⟩ {sign ext.};T5. R[ra] ← C;

ExecuteFetch

Sign Ext.32

Differs from add only in step T4.Requirement for sign extend hardware.

Page 9: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

More Complete architecture view (1-bus SRC): including Some Control Signals

• Concrete RTN: More detail in data path.

– Instruction reg. logic & new paths

– Condition bit FF– Shift count reg.

Memory

SystemOp

Page 10: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Abstract & Concrete RTN for Load & StoreAbstract RTN:ld (:= op= 1) → R[ra] ← M[disp] :st (:= op= 3) → M[disp] ← R[ra] :

wheredisp⟨31..0⟩ := ((rb=0) → c2⟨16..0⟩ {sign ext.} :

(rb≠0) → R[rb] + c2⟨16..0⟩ {sign extend, 2's comp.} ) :

Concrete RTN:Step RTN: load RTN: store T0-T2 Instruction fetchT3. A ← (rb=0 → 0: rb≠0 → R[rb]);T4. C ← A + (16@IR⟨16⟩#IR⟨15..0⟩);T5. MA ← C;T6. MD ← M[MA]; MD ← R[ra];T7. R[ra] ← MD; M[MA] ← MD;

Instruction Execute

Page 11: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Notes for Load & Store

T0 T2 are the same as for add, addi, and for all instructionsT3 T5 are the same for ld & st; both calculate dispA way is needed to use 0 for R[rb] when rb=0 (new register used)15 bit sign extension is needed for IR⟨16..0⟩Memory read into MD occurs at T6 of ldWrite of MD into memory occurs at T7 of st

Page 12: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Concrete RTN for Conditional Branch

Abstract RTN:br (:= op= 8) → (cond → PC ← R[rb]):cond := ( c3⟨2..0⟩=0 → 0: never

c3⟨2..0⟩=1 → 1: alwaysc3⟨2..0⟩=2 → R[rc]=0: if register is zeroc3⟨2..0⟩=3 → R[rc]≠0: if register is nonzeroc3⟨2..0⟩=4 → R[rc]⟨31⟩=0 if positive or zeroc3⟨2..0⟩=5 → R[rc]⟨31⟩=1 ): if negative

Concrete RTN:

Step Concrete RTNT0-T2 Instruction fetchT3. CON ← cond(R[rc]);T4. CON → PC ← R[rb];

CON is a 1-bit register not directly accessible to programmer

Page 13: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Notes on Conditional Branch RTN

c3⟨2..0⟩ are the low order 3 bits of IR.

cond() is evaluated by a combinational logic circuit having inputs from R[rc] and c3⟨2..0⟩.

The one bit register CON is not accessible to the programmer & only holds the output of the combinational logic for the condition.

If the branch succeeds; PC {contents of a general register}.

Page 14: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Abstract & Concrete RTN for SRC Shift Right

Abstract RTN:shr (:= op = 26) → R[ra]⟨31..0⟩ ← (n @ 0) # R[rb]⟨31..n⟩ :n := ( (c3⟨4..0⟩=0) → R[rc]⟨4..0⟩ : shift count in reg.

(c3⟨4..0⟩≠0) → c3⟨4..0⟩ ): or const. field

Step Concrete RTNT0-T2 Instruction fetchT3. n ← IR⟨4..0⟩;T4. (n=0) → (n ← R[rc]⟨4..0⟩);Τ5. C ← R[rb];T6. Shr (:= (n≠0) → (C⟨31..0⟩ ← 0#C⟨31..1⟩: n ← n-1; Shr) );T7. R[ra] ← C;

step T6 is repeated n times

Tbl 4.5

Case of N ≠ 0Case of N = 0

Page 15: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Notes on SRC Shift RTN

In the abstract RTN, n is defined with :=In the concrete RTN, it is a physical registern both holds the shift count & is used as a counter in step T6T6 is repeated n times as shown by the recursion in the RTNThe control for such repeated steps will be treated later

Page 16: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Data Path/Control Unit Separation

Data path & control interface consists of gate & clock signals.

Gate: selects one of several values to apply to a common point, say a bus (logic of selection).

Clock: enables loading register FFs to new inputs (timing of selection)

The type of flip-flop used in registers influences design:Latch: simpler hardware, but more complex timingEdge triggering: simpler timing, but about 2× hardware

We will use edge triggering

Page 17: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Latch & Edge-Triggered Operations

Latch output follows input while strobe is high

DD

C

Q

C

Q

D Q

C

• Edge triggering samples input at edge time

D

C

Q

Page 18: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

The SRC Register File & It’s Control Signals

BA = Base Address

Rout gates selected reg. onto bus.Rin clocked selected reg. from bus.

BAout differs from Rout by gating 0 when R[0] is selected Clk

Places 0 on bus if R0 & BA is selected.

Page 19: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Extracting c1, c2 & op from the IR

I⟨21⟩ is the sign bit of C1 that must be extended

I⟨16⟩ is the sign bit of C2 that must be extendedSign bits are fanned out from one to several bits and gated to bus

Page 20: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

CPU Memory Interface: MA & MD Reg.

MD is loaded from memory bus or from CPU bus

MD can drive CPU bus or memory bus

Clk

Page 21: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

More Complete architecture view (1-bus SRC): including Some Control Signals

• Concrete RTN: More detail in data path.

– Instruction reg. logic & new paths

– Condition bit FF– Shift count reg.

Memory

SystemOp

Page 22: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

The ALU & Associated Registers

Page 23: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Design for One Bit of the 1-Bus SRC ALU

Page 24: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Concrete RTN Control Signal SequenceInstruction Fetch

Step Concrete RTN Control SequenceT0. MA ← PC: C ← PC+4; PCout, MAin, Inc4, CinT1. MD ← M[MA]: PC ← C; Read, Cout, PCin, WaitT2. IR ← MD; MDout, IRinT3. Instruction_execution

The register transfers are the concrete RTN.The control signals that cause the register transfers make up the control sequence.Wait prevents the control from advancing to step T2 until the memory asserts Done.

Page 25: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Control Steps, Control Signals & Timing

Within a given time step, the order in which control signals arewritten is irrelevant

In step T0: {Cin, Inc4, MAin, PCout } == {PCout, MAin, Inc4, Cin }Timing distinctions within a step are between gate enables & clksThe memory read should be started early in clk cycle (reduce wait).MA must have the right value before being used for the read.Depending on memory timing and clock cycle time, Read (MD M[MA]) could be in T0.

MA PC in first half of the clock cycle MD M[MA] in the second half of the clock cycle

Page 26: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Control Sequence: add Instructionadd (:= op= 12) → R[ra] ← R[rb] + R[rc]:

The Add Instruction

Step Concrete RTN Control SequenceT0. MA ← PC: C ← PC+4; PCout, MAin, Inc4, Cin, ReadT1. MD ← M[MA]: PC ← C; Cout, PCin, WaitT2. IR ← MD; MDout, IRinT3. A ← R[rb]; Grb, Rout, AinT4. C ← A + R[rc]; Grc, Rout, ADD, CinT5. R[ra] ← C; Cout, Gra, Rin, End

Note the use of Gra, Grb, & Grc to gate the correct 5 bit register select code to the regs.End signals the control to start over at step T0.

Page 27: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Control Sequence: addi Instruction

addi (:= op= 13) → R[ra] ← R[rb] + c2⟨16..0⟩ {2's comp., sign ext.} :

Step Concrete RTN Control SequenceT0. MA ← PC: C ← PC + 4; PCout, MAin, Inc4, Cin, ReadT1. MD ← M[MA]; PC ← C; Cout, PCin, WaitT2. IR ← MD; MDout, IRinT3. A ← R[rb]; Grb, Rout, AinT4. C ← A + c2⟨16..0⟩ {sign ext.}; c2out, ADD, CinT5. R[ra] ← C; Cout, Gra, Rin, End

The addi Instruction

The c2out signal sign extends IR⟨16..0⟩ and gates it to the bus

Page 28: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Control Sequence: st Instructionst (:= op= 3) → M[disp] ← R[ra] :disp⟨31..0⟩ := ((rb=0) → c2⟨16..0⟩ {sign ext.} :

(rb≠0) → R[rb] + c2⟨16..0⟩ {sign extend, 2's comp.} ) :

The st Instruction

Step Concrete RTN Control SequenceT0-T2 Instruction fetch Instruction fetchT3. A ← (rb=0) → 0: rb≠0 → R[rb]; Grb, BAout, AinT4. C ← A + c2⟨16..0⟩ {sign ext.}; c2out, ADD, CinT5. MA ← C; Cout, MAinT6. MD ← R[ra]; Gra, Rout, MDin, WriteT7. M[MA] ← MD; Wait, End

} address arithmetic

Note BAout in T3 compared to Rout in T3 of addi

Page 29: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

The Shift Counter

The concrete RTN for shr relies upon a 5 bit register to hold the shift count.It must load, decrement, and have an = 0 test.

From Figure 4.3

Bus

Decr

Ld

5

n4⟨4..0⟩

⟨4..0⟩

⟨31..0⟩

n = 0

n: shift count5-bit down counter

n = Q4..Q0

32

0n = 0

Decrement Shift count, n

Page 30: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Control Sequence: SRC shr Instruction-Looping

Step Concrete RTN Control SequenceT0-T2 Instruction fetch Instruction fetchT3. n ← IR⟨4..0⟩; c1out, LdT4. (n=0) → (n ← R[rc]⟨4..0⟩); n=0 → (Grc, Rout, Ld)T5. C ← R[rb]; Grb, Rout, C=B, CinT6. Shr (:= (n≠0) → n≠0 → (Cout, SHR, Cin,

(C⟨31..0⟩ ← 0#C⟨31..1⟩: Decr, Goto6)n ← n-1; Shr) );

T7. R[ra] ← C; Cout, Gra, Rin, End

Conditional control signals and repeating a control step are newconcepts

Page 31: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Branching

cond := ( c3⟨2..0⟩=0 → 0:c3⟨2..0⟩=1 → 1:c3⟨2..0⟩=2 → R[rc]=0:c3⟨2..0⟩=3 → R[rc]≠0:c3⟨2..0⟩=4 → R[rc]⟨31⟩=0:c3⟨2..0⟩=5 → R[rc]⟨31⟩=1 ):

This is equivalent to the logic expression

cond = (c3⟨2..0⟩=1) ∨ (c3⟨2..0⟩=2)∧(R[rc]=0) ∨(c3⟨2..0⟩=3)∧¬(R[rc]=0) ∨ (c3⟨2..0⟩=4)∧¬R[rc]⟨31⟩ ∨(c3⟨2..0⟩=5)∧R[rc]⟨31⟩

Page 32: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

The Conditional Value CON

NOR gate does =0 test of R[rc] on bus

Page 33: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Control Sequence: Branch Instruction, br

br (:= op= 8) → (cond → PC ← R[rb]):

Step Concrete RTN Control SequenceT0-T2 Instruction fetch Instruction fetchT3. CON ← cond(R[rc]); Grc, Rout, CONinT4. CON → PC ← R[rb]; Grb, Rout, CON → PCin, End

Condition logic is always connected to CON, so R[rc] only needs to be put on bus in T3.Only PCin is conditional in T4 since gating R[rb] to bus makes no difference if it is not used.

Page 34: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Summary of the Design Process

Descriptions:Informal description formal RTN description block diagram arch. concrete RTN steps

hardware design of combinational logic blocks

control sequences

control unit (sequential logic) & timing

Done

Done

Partially Done

Not Done

Page 35: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Data Path Clocking: Register Transfer Timing

Clock Period

minimum clock period = tmin = tg + tbp + tcomb + tl

Page 36: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Signal Timing on the Data Path

Several delays occur in getting data from R1 to R2Gate delay through the 3-state bus driver—tgWorst case propagation delay on bus—tbp

Delay through any logic, such as ALU—tcomb

Set up time for data to affect state of R2—tsu

Data can be strobed into R2 after this timetR2valid = tg + tbp + tcomb + tsu

Diagram shows strobe signal in the form for a latch. It must be high for a minimum time—twThere is a hold time, th, for data after strobe ends

Page 37: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Effect of Signal Timing on Min Clock Cycle

A total latch propagation delay is the sum

Tl = tsu + tw + thAll above times are specified for latchth may be very small or zero

The minimum clock period is determined by finding longest path from ff output to ff input

This is usually a path through the ALUConditional signals add a little gate delay

Using this path, the minimum clock period is

tmin = tg + tbp + tcomb + tl

Page 38: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Latches vs Edge Triggered or Master Slave FFs

During the high part of a strobe a latch changes its output.If this output can affect its input, an error can occur.This can influence even the kind of concrete RTs that can be written for a data path.If the C register is implemented with latches, then

C ← C + MD; is not legal.If the C register is implemented with master-slave or edge triggered flip-flops, it is OK.

Page 39: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

The Control Unit

The control unit’s job is to generate the control signals in the proper sequence.Things the control signals depend on:

The time step TiThe instruction op code (for steps other than T0, T1, T2)Some few data path signals like CON, n=0, etc.Some external signals: reset, interrupt, etc. (to be covered)

The components of the control unit are: a time state generator, instruction decoder, combinational logic to generate control signals.

Page 40: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

.

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Control Unit Detail

Page 41: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Control Signal Encoder Logic

Design process:Comb through the entire set of control sequences.Find all occurrences of each control signal.Write an equation describing that signal.

Example: Gra = T5·(add + addi) + T6·st + T7·shr + ...

Step Control SequenceT0. PCout, MAin, Inc4, Cin, Read

T1. Cout, PCin, Wait

T2. MDout, IRin

addStep Control SequenceT3. Grb, Rout, Ain

T4. Grc, Rout, ADD, Cin

T5. Cout, Gra, Rin, End

addiStep Control SequenceT3. Grb, Rout, Ain

T4. c2out, ADD, Cin

T5. Cout, Gra, Rin, End

stStep Control SequenceT3. Grb, BAout, Ain

T4. c2out, ADD, Cin

T5. Cout, MAin

T6. Gra, Rout, MDin, Write

T7. Wait, End

shrStep Control SequenceT3. c1out, Ld

T4. n=0 → (Grc, Rout, Ld)

T5. Grb, Rout, C=B

T6. n≠0 → (Cout, SHR, Cin,Decr, Goto7)

T7. Cout, Gra, Rin, End

Page 42: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Data Path Conditions in Control Signal Logic

Step Control SequenceT0. PCout, MAin, Inc4, Cin, Read

T1. Cout, PCin, Wait

T2. MDout, IRin

addStep Control SequenceT3. Grb, Rout, Ain

T4. Grc, Rout, ADD, Cin

T5. Cout, Gra, Rin, End

addiStep Control SequenceT3. Grb, Rout, Ain

T4. c2out, ADD, Cin

T5. Cout, Gra, Rin, End

stStep Control SequenceT3. Grb, BAout, Ain

T4. c2out, ADD, Cin

T5. Cout, MAin

T6. Gra, Rout, MDin, Write

T7. Wait, End

shrStep Control SequenceT3. c1out, Ld

T4. n=0 → (Grc, Rout, Ld)

T5. Grb, Rout, C=B

T6. n≠0 → (Cout, SHR, Cin,Decr, Goto7)

T7. Cout, Gra, Rin, End

Example: Grc = T4·add + T4·(n=0)·shr + ...

Page 43: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Generation of the logic for Cout and Gra

Step Concrete RTN Control SequenceT0. MA PC: C PC+4 PCout, MAin, Inc4, Cin, ReadT1. MD M[MA]: PC C Cout, PCin, WaitT2. IR MD; MDout, IRinT3. A R[rb]; Grb, Rout, AinT4. C A + R[rc]; Grc, Rout, ADD, CinT5. R[ra] C; Cout, Gra, Rin, End

Page 44: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Branching in the Control Unit

3-state gates allow 6 to be applied to counter inputReset will synchronously reset counter to step T0

Checks for number of shifts, if .ne 0, redoes Step 6.

Page 45: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Clocking Logic: Start, Stop & Memory Synch.

Mck is master clock oscillator

Enables Control Ctr.

Synchronous Done signal from memory

Page 46: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Have Completed One-Bus Design of SRC

High level architecture block diagramConcrete RTN stepsHardware design of registers and data path logicRevision of concrete RTN steps where neededControl sequencesRegister clocking decisionsLogic equations for control signalsTime step generator designClock run, stop, and synchronization logic

Page 47: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Improved architectures requiring a new RTN

More data paths more things can be done in one step.Consider a two bus design.By separating input & output of ALU on different buses, the C register is eliminated.Steps can be saved by gating ALU results directly into their destinations.

Page 48: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

The 2-bus Microarchitecture

Bus A carries data going into registersBus B carries data being gated out of registersALU function C=B is used for all simple register transfers

Page 49: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Concrete RTN & Control Seq. : 2-bus add

Step Concrete RTN Control SequenceT0. MA ← PC; PCout, C=B, MAin, ReadT1. PC ← PC + 4: MD ← M[MA]; PCout, Inc4, PCin, WaitT2. IR ← MD; MDout, C=B, IRinT3. A ← R[rb]; Grb, Rout, C=B, AinT4. R[ra] ← A + R[rc]; Grc, Rout, ADD, Sra, Rin, End

Note the appearance of Grc to gate the output of the register rc onto the B bus. Sra to select ra to receive data gated from the A bus.Two register select decoders will be needed.Transparent latches will be required for MA at step T0.

Page 50: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Performance and Design

%Speedup =T1 − bus − T 2 − bus

T 2 − bus× 100

WhereT = Exec' n.Time = IC × CPI × τ

Page 51: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Speedup Due To Going to 2 Buses• Assume that IC & τ don’t change in going from 1 bus 2 buses.• Naively assume that CPI goes from 8 7 clocks.

%Speedup =T 1 − bus − T 2 − bus

T 2 − bus× 100

= IC × 8 × τ − IC × 7 × τIC × 7 × τ

× 100 = 8 − 77

× 100 = 14%

How will this speedup change if clock period of 2-bus machine is increased by 10%?

Page 52: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

3-bus Architecture: Further performance gains

A 3-bus architecture allows both operand inputs & the output of the ALU to be connected to buses.Both the C output register & the A input register are eliminated.Careful connection of register inputs & outputs can allow multiple RTs in a step.

Page 53: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

The 3-Bus SRC Design

A-bus is ALU operand 1, B-bus is ALU operand 2, and C-bus is ALU outputNote MA input connected to the B-bus

Page 54: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

SRC add Instruction: 3-bus architecture

Step Concrete RTN Control SequenceT0. MA ← PC: PC ← PC + 4: PCout, MAin, Inc4, PCin,

MD ← M[MA]; Read, WaitT1. IR ← MD; MDout, C=B, IRinT2. R[ra] ← R[rb] + R[rc]; GArc, RAout, GBrb, RBout,

ADD, Sra, Rin, End

Note the use of 3 register selection signals in step T2: GArc, GBrb & SraIn step T0, PC moves to MA over bus B and goes through the ALU Inc4 operation to reach PC again by way of bus C

PC must be edge triggered or master-slave

Page 55: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Performance and Design

How does going to three buses affect performance?Assume average CPI goes from 8 to 4, while τ increases by 10%:

%Speedup =IC × 8 × τ − IC × 4 × 1.1τ

IC × 4 × 1.1τ× 100 =

8 − 4.44.4

× 100 = 82%

Page 56: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Processor Reset Function

Reset sets program counter to a fixed valueMay be a hardwired value, orcontents of a memory cell whose address is hardwired

The control step counter is resetPending exceptions are prevented, so initialization code is not interruptedIt may set condition codes (if any) to known stateIt may clear some processor state registersA “soft” reset makes minimal changes: PC, T (T-step counter)A “hard” reset initializes more processor state

Page 57: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

SRC Reset Capability

We specify both a hard and soft reset for SRCThe Strt signal will do a hard reset

It is effective only when machine is stoppedIt resets the PC to zeroIt resets all 32 general registers to zero

The Soft Reset signal is effective when the machine is runningIt sets PC to zeroIt restarts instruction fetchIt clears the Reset signal

Actions are described in instruction_interpretation

Page 58: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Abstract RTN for SRC Reset & Start

Processor StateStrt: Start signalRst: External reset signal

instruction_interpretation := (¬Run∧Strt → (Run ← 1: PC, R[0..31] ← 0);

Run∧¬Rst → (IR ← M[PC]: PC ← PC + 4;instruction_execution):

Run∧Rst → ( Rst ← 0: PC ← 0); instruction_interpretation):

Processor off, push start button.

Processor running, normal execution.

Soft reset during execution.

Page 59: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Resetting in the Middle of Instruction Execution

The abstract RTN implies that reset takes effect after the current instruction is done.To describe reset during an instruction, we must go from abstract to concrete RTN.

Read the book.

Page 60: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Concrete RTN: Reset During add Execution

Step Concrete RTNT0 ¬Reset → (MA ← PC: C ← PC + 4):

Reset → (Reset ← 0: PC ← 0: T ←0):T1 ¬Reset → (MD ← M[MA]: P ← C):

Reset → (Reset ← 0: PC ← 0: T ← 0):T2 ¬Reset → (IR ← MD):

Reset → (Reset ← 0: PC ← 0: T ← 0):T3 ¬Reset → (A ← R[rb]):

Reset → (Reset ← 0: PC ← 0: T ← 0):T4 ¬Reset → (C ← A + R[rc]):

Reset → (Reset ← 0: PC ← 0: T ← 0):T5 ¬Reset → (R[ra ] ← C):

Reset → (Reset ← 0: PC ← 0: T ← 0):

Page 61: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Control Sequences Including the Reset Function

Step Control SequenceT0. ¬Reset → (PCout, MAin, Inc4, Cin, Read):

Reset → (ClrPC, ClrR, Goto0):T1 ¬Reset → (Cout, PCin, Wait):

Reset → (ClrPC, ClrR, Goto0):• • •

ClrPC clears the program counter to all zeros, and ClrR clears the one bit Reset flip-flopBecause the same reset actions are in every step of every instruction, their control signals are independent of time step or op code

Page 62: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

General Comments on Exceptions

An exception is an event that causes a change in the program specified flow of control.

Because normal program execution is interrupted, they are often called interrupts.

Interrupts may be external (generated by an I/O device), or internal (generated for example by a divide by zero).

Page 63: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Response to an InterruptThe system has control over the type of interrupts permitted at any given time.

When an allowed interrupt occurs, the state of the currently executing program is saved.

Control is transferred to the correct software routine ,interrupt routine, associated with this interrupt.

This interrupt type, and others of less or equal importance are generally disallowed during interrupt routing execution.

The state of the interrupted program is restored at the end of execution of the interrupt routine.

Page 64: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Hardware Required to Support Interrupts

To determine relative importance, a priority number is associated with every interrupt.Hardware must save & change the PC on interrupts. Hardware must first disable interrupts so that processor is not interrupted again before entering its current interrupt routine.Address of the interrupt routine is maintained in an interrupt vector and is a hardware function of the interrupt type.Interrupts must access a memory area for PC and other hardware saved items.

Choices are special registers, a hardware stack, specific memorylocations.

Page 65: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Support Instructions for Interrupts

An instruction executed at the end of the interrupt routine mustrestore state prior to being interrupted.

There must be instructions to control what interrupts are allowed.

The simplest of these enable or disable all exceptions

If processor state is stored in special registers on an interrupt, instructions are needed to save & restore these registers

Page 66: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Kinds of Exceptions

System resetExceptions associated with memory access

Machine check exceptionsData access exceptionsInstruction access exceptionsAlignment exceptions

Program exceptionsMiscellaneous hardware exceptionsTrace and debugging exceptionsNon-maskable exceptionsExternal exceptions—interrupts

Page 67: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

An Interrupt Facility for SRCThe exception mechanism for SRC handles external interrupts.

There are no priorities, but only an enable & disable mechanism.

The PC & interrupt source information are stored in special registers: Any other state saving is done by software.

The interrupt source supplies 8 bits that are used to generate the interrupt vector.

It also supplies a 16 bit code carrying information about the cause of the interrupt.

Page 68: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Processor State Associated with Interrupts

Processor interrupt mechanism

ireq: interrupt request signaliack: interrupt acknowledge signalIE: one bit interrupt enable flagIPC⟨31..0⟩: storage for PC saved upon interruptIsrc_info⟨15..0⟩: information from interrupt sourceII(15..0): info. on source of last interruptIsrc_vect⟨7..0⟩: type code from interrupt sourceIvect(31..0):= 20@0#Isrc_vect�7..0�#4@0:

0000Isrc_vect⟨7..0⟩000 . . . 031 0341112

Ivect⟨31..0⟩

From Dev.→To Dev. ←Internal CPU Internal CPUFrom Dev.→Internal CPUFrom Dev →Internal CPU

Page 69: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Instr. Interpretation Modified for Interrupts

instruction_interpretation :=(¬Run∧Strt → Run ← 1:Run∧¬(ireq∧IE) → (IR ← M[PC]: PC ← PC + 4; instruction_execution):Run∧(ireq∧IE) → (IPC ← PC⟨31..0⟩:

II⟨15..0⟩ ← Isrc_info⟨15..0⟩: iack ← 1:IE ← 0: PC ← Ivect⟨31..0⟩; iack ← 0); instruction_execution);

If interrupts are enabled, PC & interrupt info. are stored in IPC & II, respectively

With multiple requests, external priority circuit (discussed in later chapter) determines which vector & info. are returned

Interrupts are disabledThe acknowledge signal is asserted

Interrupts disabled.

Page 70: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

SRC Instructions to Support Interrupts

Return from interrupt instructionrfi (:= op = 29 ) → (PC ← IPC: IE ← 1):

Save & restore interrupt statesvi (:= op = 16) → (R[ra]⟨15..0⟩ ← II⟨15..0⟩: R[rb] ← IPC⟨31..0⟩):ri (:= op = 17) → (II⟨15..0⟩ ← R[ra]⟨15..0⟩ : IPC⟨31..0⟩ ← R[rb]):

Enable & disable interrupt systemeen (:= op = 10 ) → (IE ← 1): exception enableedi (:= op = 11 ) → (IE ← 0): exception disable

The 2 rfi actions are indivisible.

Page 71: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Concrete RTN for Instruction Fetch with Interrupts

Step ¬(ireq∧IE) Concrete RTN (ireq∧IE) T0. (¬(ireq∧IE) → ( (ireq∧IE) → (IPC ← PC: II ← Isrc_info:

MA ← PC: C ← PC+4): IE ← 0: PC← 20@0#Isrc_vect⟨7..0⟩#0000:Iack←1);

T1. MD ← M[MA] : PC ← C; Iack ← 0: End;T2. IR ← MD;

PC could be transferred to IPC over the busII and IPC probably have separate inputs for the externally supplied valuesIack is pulsed, described as ←1; ←0, which is easier as a control signal than in RTN

Page 72: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Exceptions During Instruction Execution

Some exceptions occur in the middle of instructionsSome CISCs have very long instructions, like string moveSome exception conditions prevent instruction completion, like uninstalled memory

To handle this sort of exception, the CPU must make special provision for restarting

Partially completed actions must be reversed so the instruction can be re-executed after exception handlingInformation about the internal CPU state must be saved so that the instruction can resume where it left off

This problem is acute with pipeline designs.

Page 73: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Recap of the Design Process: the Main Topic of Chap. 4

Informal description

formal RTN description

block diagram architecture

concrete RTN steps

hardware design of blocks

Control sequences

control unit and timing

Chapter 2

SRC

Chapter 4

Page 74: Chapter 4 Topics - cse.wustl.edujbf/cse362.d/cse362.slides.d/Ch4.S06.pdf · Concrete RTN uses a set of real registers & buses to accomplish the effect of an abstract RTN statement

Comp. Sys. Design & Architecture 2nd Edition © 2004 Prentice Hall, Mark Franklin,S06

Chapter 4 Summary

Chapter 4 has described a non-pipelined data path, and a hardwired controller design for SRC.The concepts of data path block diagrams, concrete RTN, control sequences, control logic equations, step counter control, and clocking have been introduced.The effect of different data path architectures on the concrete RTN was explored.We have begun to make simple, quantitative estimates of the impact of hardware design on performance.Hard and soft resets were designed.A simple exception mechanism was supplied for SRC.