synthesis - Creating Web Pages in your...

35

Transcript of synthesis - Creating Web Pages in your...

Page 1: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

PIPELINE DESIGN

DATA PATH AND

CONTROL SYNTHESIS

c Giovanni De Micheli

Stanford University

Page 2: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Outline

c GDM

� Synthesis of pipelined circuits:

{ Scheduling.

{ Binding.

� Data-path synthesis.

� Control-unit synthesis.

Page 3: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

High-level synthesis

of pipelined circuits

c GDM

� Pipeline circuits:

{ Concurrent execution of operations

on di�erent data sets.

{ Increase throughput:

� I/O data rate.

{ Preserve latency.

� Applicable to:

{ General purpose processors.

{ Digital signal processors.

Page 4: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example

c GDM

* * * * +

<+**

1 2

3

4

5

6

7

8

9

10

11

TIME 1

TIME 2

TIME 2

TIME 1

ST

AG

E 1

ST

AG

E 2

Page 5: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Synthesis of pipelined circuits

c GDM

� DSP applications:

{ Mainly data-path pipelining.

{ Few exceptions/interrupts.

{ Mature area.

� Microprocessors:

{ Advanced features:

� Stalls, ush, bypass, hazard avoidance.

{ Synthesis tools not ready yet.

Page 6: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Issues in synthesis of pipelined circuits

c GDM

� Partitioning:

{ Pipe-stage formation.

� Scheduling:

{ Source vertex of the sequencing graph

�red at constant rate.

� Sharing:

{ More concurrency.

{ Binding and scheduling are a�ected.

Page 7: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Scheduling of pipelined circuits

c GDM

� Scheduling of non-pipelined circuit

using pipelined resources.

� Scheduling of pipelined circuit

using non-pipelined resources.

{ Functional pipelining.

� Both problems can be modeled by ILP.

Page 8: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Scheduling for functional pipelining

c GDM

� Choose:

{ cycle-time.

{ data-introduction interval �0.

� Determine (area,latency) spectrum.

� Key fact:

{ Simultaneous operations at steps:

� l+ p�0

{ Reduced sharing.

Page 9: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Scheduling for functional pipelining

ILP model

c GDM

d�=�0e�1X

p=0

X

i:T (vi)=k

l+p�0X

m=l�di+1+p�0

xim � ak 8k;8l

� Used in conjunction with other constraints.

� Use regular ILP solvers.

Page 10: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Scheduling for functional pipelining

Heuristic algorithms

c GDM

� List scheduling:

{ Compute resource usage at each step.

{ Determine candidates.

� Force-directed scheduling.

{ Operation-type distribution:

� Account for overlapping.

Page 11: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example

c GDM

* * * * +

<+**

1 2

3

4

5

6

7

8

9

10

11

TIME 1

TIME 2

TIME 2

TIME 1

ST

AG

E 1

ST

AG

E 2

12

0 1 2 3

12

0 1 2 3

� Distribution graphs for multiplier and ALU.

Page 12: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Loop folding

c GDM

� Reduce execution delay of a loop.

� Pipeline operations inside a loop.

{ Overlap execution of operations.

{ Need a prologue and epilogue.

� Use pipeline scheduling for loop graph model.

Page 13: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example

c GDM

1 2

3

4

5

NOP

NOP

1 2

3

NOP

NOP

4

5

NOP

NOP

(a) (b)

TIME 1

TIME 2

TIME 3

TIME 4

Page 14: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Resource sharing

for pipelined circuits

c GDM

� Scheduled graphs:

{ Determine compatibility (or con ict) graphs.

� The lower the �0 (the higher the throughput):

{ The lower the compatibility.

Page 15: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example: �0 = 2

c GDM

* * * +

<**

1 2

3

4

5

6

7 8*

+9

10

11

TIME 1

TIME 2

TIME 2

TIME 1

ST

AG

E 1

ST

AG

E 2

1

2

3 4

5 6 7

8

9

11

10

Page 16: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Resource sharing

for pipelined circuits

c GDM

� Branching constructs:

{ Special care to avoid deadlocks.

� Twisted pairs:

{ Two mutually compatible operation pairs

with twisted dependencies.

� Sharing operations in twisted pairs

must be avoided.

Page 17: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example

c GDM

* +

*

1 2

3 4

+

Page 18: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Data path synthesis

c GDM

� Resource binding.

� Connectivity synthesis:

{ Connection of resources to:

multiplexers busses and registers.

{ Control unit interface.

{ I/O ports.

� Physical data-path synthesis.

Page 19: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example

c GDM

* ALU

REGISTERS

xyu

a3

dxenable

mux control

ALU control (+,−,<)

c

DATA−PATH CONTROL−UNIT

r1r2

Page 20: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Control synthesis

c GDM

� Synthesis of the control unit.

� Logic model:

{ Synchronous FSM.

� Physical implementation:

{ Microcode (ROM,PLA).

{ Hard-wired FSM.

{ Distributed FSM.

Page 21: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Control synthesis

c GDM

� Synthesize circuit that:

{ Executes scheduled operations.

{ Provides synchronization.

{ Supports:

� Iteration.

� Branching.

� Hierarchy.

� Interfaces.

� Assumption:

{ Synchronous implementation.

{ Control unit is a FSM (or connection of

FSMs).

Page 22: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Controlling scheduled operations

c GDM

� Simple model:

{ No branching, iteration, hierarchy.

{ No data-dependent delays.

� Implementation:

{ FSM-oriented design:

� Hardware: PLAs, gates, registers.

� One FSM state per schedule level.

{ Microcode-oriented design:

� Hardware: ROM, PLA, counter.

Page 23: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

FSM-based implementation

c GDM

� Simple model:

{ next-state function: unconditional.

{ output function: activate operations.

� Extended model:

{ Branching and iteration:

� Conditional next-state function.

{ Hierarchy:

� Hierarchical FSM connection.

Page 24: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example

c GDM

* * * * +

<+**

1 2

3

4

5

6

7

8

9

10

11

0NOP

NOP

TIME 1

TIME 2

TIME 3

TIME 4

n

s s

ss

1 2

4 3

1,2,6,8,103,7,9,11

45

reset

reset

reset

reset’

reset’

reset’

Page 25: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Microcode implementation

c GDM

� Horizontal microcode:

{ One bit per activation signal.

{ One microcode word per schedule level.

{ Maximum performance.

{ Wide words.

� Vertical microcode:

{ Encode each resource activation signal.

{ Shorter words.

{ One (or more) words per schedule level.

Page 26: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example of horizontal microcode

c GDM

* * * * +

<+**

1 2

3

4

5

6

7

8

9

10

11

0NOP

NOP

TIME 1

TIME 2

TIME 3

TIME 4

n

1 1 0 0 0 1 0 1 0 1 00 0 1 0 0 0 1 0 1 0 10 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

0 00 11 01 1

Counter Activation signals

Address Microwords

Reset

Page 27: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example of vertical microcode

c GDM

Activation signals

Microwords

0 0 0 10 0 1 00 1 1 0 1 0 0 01 0 1 0

0 0 1 10 1 1 11 0 0 11 0 1 1

0 1 0 0

0 1 0 1

Decoder

Page 28: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Microcode compaction problem

c GDM

� Partition ROM word into �elds.

� Encode signals in each �eld.

� Allow for a code for NOP.

� Activation signals in each �eld must not be

concurrent.

� Problems:

{ Minimize number of �elds.

{ Minimize total ROM width.

Page 29: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Microcode optimization

c GDM

� Con ict graph:

{ Concurrent operations.

{ Optimum vertex coloring

yields minimum number of �elds.

� Compatibility graph:

{ Non-concurrent operations.

{ Optimum clique partitioning

yields minimum number of �elds.

{ Minimum weighted clique partitioning

yields minimum number of bits.

Page 30: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example

c GDM

�eld op code

A 1 01

A 3 10

A 4 11

B 2 1

C 6 01

C 7 10

C 5 11

D 8 01

D 9 10

E 10 01

E 11 10

Page 31: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example

c GDM

Activation signals

Microwords

A B C D E

Microword format

1 1 0 0 0 0 0 0 00 0 0 1 1 0 0 0 0

0 1 1 0 1 0 1 0 11 0 0 1 0 1 0 1 0

D1 D2 D3 D4

1,3,4 2 6,7,5 8,9 10,11

Page 32: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Hierarchical control

c GDM

� Exploit the hierarchical structure of sequencing

graphs.

� One controller per entity.

� Interconnected �nite state machines.

� Handshake:

{ activate signals.

{ condition signals.

{ reset signals.

Page 33: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Example

c GDM

CONTROL

CONTROL

actact

act

act

reset

reset

CONTROL−UNIT

BLOCK

BLOCK

DATA−PATH

act

reset

act

reset

act

reset

act

BLOCK

BLOCK

BLOCK

CONTROL

CONTROL

CONTROL

CONTOL−UNIT DATA−PATH

condition

Page 34: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Control synthesis for

unbounded-latency sequencing graphs

c GDM

� Data-dependent delay operations.

{ activate signals.

{ completion signals.

� Synchronization problem:

{ Wait on completion signals.

{ Wait on external synchronization.

� Several strategies.

{ Clustering.

{ Adaptive Control.

{ Relative Scheduling.

Page 35: synthesis - Creating Web Pages in your Accountweb.cecs.pdx.edu/~mperkows/temp/pipelined-Micheli.pdf · Binding. Data-path synthesis. Control-unit synthesis. High-level synthesis of

Summary

Control synthesis

c GDM

� Di�erent approaches.

� Implementations:

{ FSM, connection of FSMs or ROM.

� Techniques:

{ Bounded delays only:

� FSM { microcode.

{ Unbounded delays:

� Di�erent methods to provide synchronization.