K-periodically routed graphs Julien Boucaron Anthony Coadou EPI - - PowerPoint PPT Presentation

k periodically routed graphs
SMART_READER_LITE
LIVE PREVIEW

K-periodically routed graphs Julien Boucaron Anthony Coadou EPI - - PowerPoint PPT Presentation

K-periodically routed graphs Julien Boucaron Anthony Coadou EPI Aoste Basics Motivation Introducing control in data-flow process networks while ensuring strong desirable properties such as determinism , decidable safety and liveness .


slide-1
SLIDE 1

K-periodically routed graphs

Julien Boucaron Anthony Coadou EPI Aoste

slide-2
SLIDE 2

Basics

slide-3
SLIDE 3

Motivation

  • Introducing control in data-flow process networks

while ensuring strong desirable properties such as determinism, decidable safety and liveness.

  • Such control is mandatory for modeling and reusing

components for synthesis on ASIC, FPGA and recent NoCs architectures.

  • However, it comes at the cost of having “static”

control otherwise safety and liveness cannot be decided (in general).

slide-4
SLIDE 4

Background

Marked Graph, Latency Insensitive Design and Synchronous Data Flow: + safety decidable + liveness decidable (at least one token in each cycle/bounded execution firing)

  • only point-to-point

communication (no sharing)

Sync MG LID CSDF SDF BDF

slide-5
SLIDE 5

Background

Cyclo-Static Data Flow:

+ safety and liveness decidable

  • “no explicit” communication,

embedded in node

Boolean-controlled Data Flow:

+ explicit communication with Switch/Select nodes

  • data dependant control

⇒ safety undecidable Sync MG LID CSDF SDF BDF

slide-6
SLIDE 6

So, what is it about?

K-periodically Routed Graphs

  • Low-level (akin. assembly) model for both High-

Level Synthesis/Compilation.

  • Concurrent, deterministic, confluent (execution

differs only by timing, compatible partial orders).

  • Safety, liveness are decidable.
  • Distributed memories.
  • Explicit communications sharing through Select

and Merge nodes annotated with offline computed “routing patterns”.

slide-7
SLIDE 7

So, what does it look like?

+

0 1 0 1

c[i] b[i] a[i]

0 1 copy

Merge

(communication)

Select

(communication)

Routing conditions Copy transition

(multiplicity)

Places

(buffering)

Transitions

(computation)

1110

1110

1110

slide-8
SLIDE 8

Definition

A KRG is a collection of:

  • Computation nodes (transitions): consume and

produce one token when fired, need at least one token on each input.

  • Select and Merge nodes: consume and produce
  • ne token on associated input/output, with respect

to a routing condition.

  • Places (edges): exactly one input and one output,

key property for both confluence and determinism.

slide-9
SLIDE 9

Routing conditions

  • Specific binary sequence associated to each

Select/Merge node where: 0 (resp. 1) means “take 0 (resp. 1) branch”

  • Binary sequences of the form:

where u is the initialization part, and v the periodic part (repeated infinitely).

  • Those conditions are computed off-line, safety is

thus decidable. u.v

slide-10
SLIDE 10

Decidability of safety

  • How?

– As done in CSDF, abstraction reduction from

KRG to SDF.

  • Construction:

– Places, computation nodes and initial marking

unchanged.

– For each Select/Merge, create a new SDF node

associating the global number of production/ consumption associated for the periodic part of the switching condition.

slide-11
SLIDE 11

Decidability of safety

1 1 1 1

Liveness checked with bounded-length execution 1 3 1 4 4 3

1110

1110

slide-12
SLIDE 12

KRG Transformations

slide-13
SLIDE 13

What's new w/ CSDF?

  • Both KRG and CSDF use sequence of booleans/

integers to describe the static control.

  • The advantage of KRG is the axiomatization we

have built using on operator (borrowed from N- Synchronous theory) and the when operator (different from the synchronous one).

  • Let us build correct by construction transformations.
slide-14
SLIDE 14

On and when operators

(0.u) on v = 0.(u on v) (1.u) on x.v = x.(u on v) (x.u) when (0.v) = u when v (x.u) when (1.v) = x.(u when v)

slide-15
SLIDE 15

Select/Merge permutations

1 1 1 1

v

1 1 1

v when v onu v onu u

slide-16
SLIDE 16

Splitting shared links

1 1 0 1 0 1

v

0 1 0 1 1 1

u when v v whenu u when v u v whenu

slide-17
SLIDE 17

“Shannon-like” expansion

On/when computation

⇒ dead-code elimination

slide-18
SLIDE 18

KRG in a nutshell

  • Low-level model for compilation and HLS.
  • Determinism, concurrent, confluent.
  • Communications

Select/Merge + k-periodic condi- → tions computed off-line.

  • Multiplicity

Copy transition. →

  • Safety and liveness decidable.
  • On/When operators

transformations on KRG → preserving “behavior”.

  • “Shannon-like”

expansion process dead-code → elimination using On/When ops.

slide-19
SLIDE 19

Link with nested loops (Sobel filter)

int sumX = 0; int sumY = 0; /* Fusion of both loop on left and split loop on * sumX and sumY */ for(int I=-1; I<=1; I++) { //Domain size 3 for(int J=-1; J<=1; J++) { //Domain size 3 sumX += originalImage[X+I][Y+J] * GX[I+1][J+1]; sumY += originalImage[X+I][Y+J] * GY[I+1][J+1]; } } int SUM = abs(sumX) + abs(sumY); /* To 8 bits grey levels data dependent control * abstracted as dataflow (if-conversion) */ if(SUM>255) { SUM=255; } edgeImage[X][Y] = 255 - SUM;

slide-20
SLIDE 20

Demo using KPASSA v.2

slide-21
SLIDE 21

Further works on KRGs

slide-22
SLIDE 22

What do bring Select/Merge prop. ?

  • Schedules and memories sizes can be computed.
  • Equivalence (or not) after routing transformations can

be proved.

  • Order relations on token flows can be defined and

permutations can be characterized.

  • Conversely, one can model a design where actors do

not consume tokens in the same order as they are produced, using permutation blocks with a minimal number of paths.

  • Traffic balancing.
slide-23
SLIDE 23

What do bring Select/Merge prop. ?

  • Select/Merge permutation equivalent to tree rotation.
  • Enable to reuse well-known results on AVL trees to

reduce routing tree depth and/or to balance traffic.

1 2 3 4

1 1 1 1

1 2 3 4

1 1 1 1

Root Pivot Right rotation

slide-24
SLIDE 24

Ongoing work: improving control

  • Static periodic behaviors are too

limited:

for (int i = 0 ; i < N ; ++i) for (int j = 0 ; j < i ; ++j) S += ...

  • Loops bounds can be parame-

terized and/or depend on other indices.

  • Need of control FSMs generating

binary sequences.

  • Extend current model in a CDDF/

SPDF-like way.

+

1.0

N−1 

0

N−1.1 

? ?

slide-25
SLIDE 25

Ongoing work: improving control

  • Example of Cyclo-Dynamic Dataflow design [Wauters

et al., 1996]:

  • Executions are periodic, but their length depend on

special tokens values (between [ ]) or symbolical variables.

  • Consistency can be proved, unlike with general BDF.
  • Memories can be bounded as long as parameters

intervals are known.

1

N N−1,1[N ]

1

X

1[ X],0

X−1

slide-26
SLIDE 26

Ongoing work: improving control

  • Example of Synchronous Piggybacked Dataflow design

[Park et al., 2002]:

  • Behaviors of the different computation nodes may

depend on global settings.

  • GST entries sizes can be statically computed.

Global state table

State convert Piggy- backing (data port) (state port) (state update requests)

slide-27
SLIDE 27

Ongoing work: improving control

  • Both kind of control are commonly used in real-life

designs.

– CDDF: parameters forwarded from node to node as

tokens.

– SPDF: parameters stored in a global memory ; each

node update its behavior when needed.

– E.g. video decoder: global parameters set while

retrieving data in memory, and parameters between each pipeline stage encoded in the stream.

slide-28
SLIDE 28

Ongoing work: improving control

  • Link KRG—SPDF maybe more natural :

– In our case, schedules are a consequence of initial

marking and routing conditions, while in CDDF, it is the behavior of computation nodes which is parameterized.

– SPDF present a “trick” to associate both control and

data flow. Control can be led by a syncChart as well.

slide-29
SLIDE 29

Ongoing work: hierarchy

  • Hierarchy is useful for the reusability of a design.
  • Does there exist a nice way to express hierarchy?

– Hard to handle fine-grain hierarchy (e.g. how to

abstract schedules?)

– Even coarse-grain hierarchy is useful for GALS

designs.

slide-30
SLIDE 30

Ongoing work: hierarchy

  • Links with HCFSM [Girault

et al., 1997] and DFCharts [Radojevic et al., 2006]:

– Basically, layered

abstraction where a FSM is abstracted as an SDF node and conversely.

– Extended in DFCharts,

where FSMs and SDFs may communicate through asynchronous ports.