4
CS 150 - Spring 2007 – Lec #16 – Retiming - 1 State Machine Timing ! Retiming " Slosh logic between registers to balance latencies and improve clock timings " Accelerate or retard cycle in which outputs are asserted ! Parallelism " Doing more than one thing at a time ! Pipelining " Splitting computations into overlapped, smaller time steps CS 150 - Spring 2007 – Lec #16 – Retiming - 2 Synchronizer Circuitry at Inputs and Outputs Output Logic Output Logic Output Logic D D D D STATE STATE STATE Q Q Q A A A' A' Q ƒ ƒ' ƒ ƒ ƒ' A Recall: Synchronous Mealy Machine Discussion ! Placement of flipflops before and after the output logic changes the timing of when the output signals are asserted … CS 150 - Spring 2007 – Lec #16 – Retiming - 3 Recall: Synchronous Mealy Machine with Synchronizers Following Outputs Case III: Synchronized Outputs A asserted during Cycle 0, ƒ' asserted in next cycle Effect of ƒ delayed one cycle cycle 0 cycle 1 cycle 2 CLK A ƒ ƒ' S0 S1 A/ƒ Signal goes into effect one cycle later CS 150 - Spring 2007 – Lec #16 – Retiming - 4 Vending Machine State Machine ! Moore machine " outputs associated with state [0] 10¢ [0] [0] 15¢ [1] N’ D’ + Reset D D N N+D N N’ D’ Reset’ N’ D’ N’ D’ Reset Mealy machine outputs associated with transitions 10¢ 15¢ (N’ D’ + Reset)/0 D/0 D/1 N/0 N+D/1 N/0 N’ D’/0 Reset’/1 N’ D’/0 N’ D’/0 Reset/0 CS 150 - Spring 2007 – Lec #16 – Retiming - 5 Open asserted only when in state 15 State Machine Retiming ! Moore vs. (Async) Mealy Machine " Vending Machine Example Open asserted when last coin inserted leading to state 15 CS 150 - Spring 2007 – Lec #16 – Retiming - 6 State Machine Retiming ! Retiming the Moore Machine: Faster generation of outputs ! Synchronizing the Mealy Machine: Add a FF, delaying the output ! These two implementations have identical timing behavior Push the AND gate through the State FFs and synchronize with an output FF Like computing open in the prior state and delaying it one state time

Parallelism Pipelining - University of California, Berkeleycs150/sp07/Lectures/16-Retimingx6.pdfCS 150 - Spring 2007 Ð Lec #16 Ð Retiming - 13 Time Multiplexing x x x x + + + 0.2mt10.2mt20.2mt30.4proj

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Parallelism Pipelining - University of California, Berkeleycs150/sp07/Lectures/16-Retimingx6.pdfCS 150 - Spring 2007 Ð Lec #16 Ð Retiming - 13 Time Multiplexing x x x x + + + 0.2mt10.2mt20.2mt30.4proj

CS 150 - Spring 2007 – Lec #16 – Retiming - 1

State Machine Timing

! Retiming" Slosh logic between registers to balance latencies and

improve clock timings

" Accelerate or retard cycle in which outputs are asserted

! Parallelism" Doing more than one thing at a time

! Pipelining" Splitting computations into overlapped, smaller time steps

CS 150 - Spring 2007 – Lec #16 – Retiming - 2

SynchronizerCircuitry atInputs and

Outputs

Output

Logic

Output

Logic

Output

Logic

D

D

D

D

STATE STATE STATE

Q Q

Q

A A

A' A'

Q

ƒ

ƒ' ƒ

ƒ

ƒ'

A

Recall: Synchronous Mealy MachineDiscussion

! Placement of flipflops before and after the output logic changes the timingof when the output signals are asserted …

CS 150 - Spring 2007 – Lec #16 – Retiming - 3

Recall: Synchronous Mealy Machine withSynchronizers Following Outputs

Case III: Synchronized Outputs

A asserted during Cycle 0, ƒ' asserted in next cycle

Effect of ƒ delayed one cycle

cycle 0 cycle 1 cycle 2

CLK

A

ƒ

ƒ'

S0

S1

A/ƒ

Signal goesinto effect onecycle later

CS 150 - Spring 2007 – Lec #16 – Retiming - 4

Vending Machine State Machine! Moore machine

" outputs associated with state

0¢[0]

10¢[0]

5¢[0]

15¢[1]

N’ D’ + Reset

D

D

N

N+D

N

N’ D’

Reset’

N’ D’

N’ D’

Reset

Mealy machineoutputs associated with transitions

10¢

15¢

(N’ D’ + Reset)/0

D/0

D/1

N/0

N+D/1

N/0

N’ D’/0

Reset’/1

N’ D’/0

N’ D’/0

Reset/0

CS 150 - Spring 2007 – Lec #16 – Retiming - 5

Open asserted only whenin state 15

State Machine Retiming! Moore vs. (Async) Mealy Machine

" Vending Machine Example

Open asserted when lastcoin inserted leading to

state 15CS 150 - Spring 2007 – Lec #16 – Retiming - 6

State Machine Retiming! Retiming the Moore Machine: Faster generation of outputs

! Synchronizing the Mealy Machine: Add a FF, delaying the output

! These two implementations have identical timing behavior

Push the AND gate through theState FFs and synchronize with

an output FFLike computing open in the prior

state and delaying it one state time

Page 2: Parallelism Pipelining - University of California, Berkeleycs150/sp07/Lectures/16-Retimingx6.pdfCS 150 - Spring 2007 Ð Lec #16 Ð Retiming - 13 Time Multiplexing x x x x + + + 0.2mt10.2mt20.2mt30.4proj

CS 150 - Spring 2007 – Lec #16 – Retiming - 7

Out calcPlus set-up

NOTE: overlaps withNext State calculation

State Machine Retiming

! Effect on timing of Open Signal (Moore Case)

ClkFF propdelay

State

Open

Out propdelay

RetimedOpen

OpenCalculation

CS 150 - Spring 2007 – Lec #16 – Retiming - 8

State Machine Retiming! Timing behavior is the same, but are the

implementations really identical?

FF input in synchronous Mealy

implementationFF input in retimed Moore

implementation

Only differencein don’t care caseof nickel and dimeat the same time

CS 150 - Spring 2007 – Lec #16 – Retiming - 9

Parallelism

! Example, Student final grade calculation:

read mt1, mt2, mt3, project;

grade = 0.2 ! mt1 + 0.2 ! mt2

+ 0.2 ! mt3 + 0.4 ! project;

write grade;

! High performance hardware implementation:

As many operations as possible are done in parallel

Doing more than one thing at a time: optimization in h/w often involves using parallelism to trade between cost and performance

xx xx

++

+

0.2 mt1 0.2 mt2 0.4 proj0.2 mt3

grade

CS 150 - Spring 2007 – Lec #16 – Retiming - 10

Parallelism

! Is there a lower cost hardware implementation?Different tree organization?

! Can factor out multiply by 0.2:

! How about sharing operators (multipliers and adders)?

x

+

+

0.2

mt1 mt2 0.4 proj

mt3

grade

x

+

CS 150 - Spring 2007 – Lec #16 – Retiming - 11

Time Multiplexing

! Reuse single ALU for alladds and multiplies" Lower hardware cost, longer latency

" BUT must add muxes/registers/control

! Consider the combinational hardware circuit diagramas an abstract computation-graph:

acc1 = mt1 + mt2;

acc1 = acc1 + mt3;

acc1 = 0.2 x acc1;

acc2 = 0.4 x proj;

grade = acc1 + acc2;

controller

ALU

mt1 mt1

mt3 proj

acc1

acc2

xx xx

++

+

0.2 mt1 0.2 mt2 0.4 proj0.2 mt3

grade

+

A B

Cx

Alternativebuilding blocks

xx

+

A B C D

CS 150 - Spring 2007 – Lec #16 – Retiming - 12

Time Multiplexing

xx xx

++

+

0.2 mt1 0.2 mt2 0.4 proj0.2 mt3

grade

x

+

0.2 mt1

x

+

0.4 Proj

0

x

+

0.2 mt3

x

+

0.2 mt2

x

+

0.20.4

mt1mt2mt3proj

0

Time-multiplexing “covers” the computation graph by performing the action of each node one at a time

Page 3: Parallelism Pipelining - University of California, Berkeleycs150/sp07/Lectures/16-Retimingx6.pdfCS 150 - Spring 2007 Ð Lec #16 Ð Retiming - 13 Time Multiplexing x x x x + + + 0.2mt10.2mt20.2mt30.4proj

CS 150 - Spring 2007 – Lec #16 – Retiming - 13

Time Multiplexing

xx xx

++

+

0.2 mt1 0.2 mt2 0.4 proj0.2 mt3

grade

x

0.2 mt3

x

+

0.4 Proj

x

0.2 mt1

x

+

0.2 mt2

x

1

x

+

1

x

0.21

mt3mt1

x

+

0.40.21

Projmt2

CS 150 - Spring 2007 – Lec #16 – Retiming - 14

Pipelining Principle! Pipelining review from CS61C:

Analog to washing clothes:

step 1: wash (20 minutes)

step 2: dry (20 minutes)

step 3: fold (20 minutes)

60 minutes x 4 loads $ 4 hours

wash load1 load2 load3 load4

dry load1 load2 load3 load4

fold load1 load2 load3 load4

20 min

overlapped $ 2 hours

CS 150 - Spring 2007 – Lec #16 – Retiming - 15

Pipeliningwash load1 load2 load3 load4

dry load1 load2 load3 load4

fold load1 load2 load3 load4

• Increase number of loads, average time per load approaches 20 minutes

• Latency (time from start to end) for one load = 60 min

• Throughput = 3 loads/hour

• Pipelined throughput # # of pipe stages x un-pipelined throughput

CS 150 - Spring 2007 – Lec #16 – Retiming - 16

Pipelining! General principle:

! Cut the CL block into pieces (stages) and separate with registers:

T’ = 4 ns + 1 ns + 4 ns +1 ns = 10 ns

F = 1/(4 ns +1 ns) = 200 MHz

! CL block produces a new result every 5 ns instead of every 9 ns

CL OUTIN

T

CL1 OUTIN

T'

CL2

T1 T2

Assume T = 8 nsTFF(setup +clk"q) = 1 nsF = 1/9 ns = 111 MHz

Assume T1 = T2 = 4 ns

CS 150 - Spring 2007 – Lec #16 – Retiming - 17

Limits on Pipelining! Without FF overhead, throughput improvement proportional to # of stages

• After many stages are added. FF overhead begins to dominate:

• Other limiters to effective pipelining:• Clock skew contributes to clock overhead

• Unequal stages

• FFs dominate cost

• Clock distribution power consumption

• feedback (dependencies between loop iterations)

1 2 3 4 5 6 7 8

500

# of stages

throughput

(1/T)

ideal

real

half the clock period

in FF overhead

FF “overhead”is the setup and clk to Q times.

CS 150 - Spring 2007 – Lec #16 – Retiming - 18

Pipelining Example

! F(x) = yi = a xi2 + b xi + c

! x and y are assumed to be“streams”

! Divide into 3 (nearly) equalstages.

! Insert pipeline registers atdashed lines.

! Can we pipeline basic operators?

! Computation graph:

F(x)x y

x

x

+

a

b

c

x

x

+

y

Page 4: Parallelism Pipelining - University of California, Berkeleycs150/sp07/Lectures/16-Retimingx6.pdfCS 150 - Spring 2007 Ð Lec #16 Ð Retiming - 13 Time Multiplexing x x x x + + + 0.2mt10.2mt20.2mt30.4proj

CS 150 - Spring 2007 – Lec #16 – Retiming - 19

Example: Pipelined Adder

FA

s3

a3b3

FA

s2

a2b2

FA

s1

a1b1

FA

s0

a0b0

c0

FA

s3

a3b3

FA

s2

a2b2

FA

s1

a1b1

FA

s0

a0b0

c0FF

reg reg

FF FF

! Possible, but usuallynot done …

(arithmetic units canoften be madesufficiently fast withoutinternal pipelining)

CS 150 - Spring 2007 – Lec #16 – Retiming - 20

State Machine Retiming Summary

! Retiming" Vending Machine Example

# Very simple output function in this particular case

" But if output takes a long time to compute vs. the next state computationtime -- can use retiming to “balance” these calculations and reduce thecycle time

! Parallelism" Tradeoffs in cost and performance

" Time reuse of hardware to reduce cost but sacrifice performance

! Pipelining" Introduce registers to split computation to reduce cycle time and allow

parallel computation

" Trade latency (number of stage delays) for cycle time reduction

CS 150 - Spring 2007 – Lec #16 – Retiming - 21

Announcements

! Midterm II -- NEXT Thursday, 22 March in CS 150 Laboratory,2:10 - 3:30+ (that is one week from today -- tell your friends!)" Closed book, open double sided crib sheet" TA review session next week" Five or so design-oriented questions covering:

# State machine word problems# Memory systems# Datapath design# Register transfer# Controller implementation

• Time state• Jump Counter• Branch Sequencer• Horizontal and Vertical Microprogramming

# Retiming, Parallelism, Pipelining# Labs 4, 5, Checkpoint 0, 1