Méthodologie de conception State-of-the-art SoC...

14
Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués Olivier Sentieys, ENSSAT-IRISA 1 Synthèse architecturale de systèmes intégrés pour le traitement du signal Méthodologie de conception des systèmes intégrés Olivier Sentieys IRISA ENSSAT - Université de Rennes 1 EII3/M2R - 2 [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at HDTV Set Top Box Domain-specific SoC Functionality is inside Various applications and standards inside MPEG2, H264 Satellite, Wifi/LAN Hard disk, … 65nm, 150 MTr 1 B$ mask set 60 weeks design 6-18 months lifetime Heterogeneity 16 processors, 38 IPs 5-6000 MIPS 140 memory blocks 5 Gbytes/s on-chip interconnection network HW: 5M RTL code lines SW: 60M code lines o OS, Middleware, HAL, Firmware ® EII3/M2R - 3 Hardware / Software Partitionning Programmable Processors Software Compilation DSP Algorithm i C code Software Hardware Hardware Accelerators Hardware Synthesis Library IP Algorithm j VHDL/C code RTL/HLS C/C++, Matlab, ... Specifications Constraints Time Cost Power Test Reliability Verification Performance estimation Hardware/Software Codesign EII3/M2R - 4 - DCT Q Entropy Coding Q -1 DCT -1 + Image Memory Motion Estimation DSP Processor ASIC 1 ASIC 2 RAM ARM Processor HW/SW codesign: video coder Algorithmic complexity DCT: 40 MOPS Motion Estimation: 500 MOPS

Transcript of Méthodologie de conception State-of-the-art SoC...

Page 1: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 1

Synthèse architecturale de systèmes intégrés pour le traitement du signal

Méthodologie de conception des systèmes intégrés

Olivier Sentieys IRISA

ENSSAT - Université de Rennes 1

EII3/M2R - 2

[L. Ducousso, ST, GDR SoC]

State-of-the-art SoC at   HDTV Set Top Box

•  Domain-specific SoC   Functionality is inside

•  Various applications and standards inside

•  MPEG2, H264 •  Satellite, Wifi/LAN •  Hard disk, …

  65nm, 150 MTr •  1 B$ mask set •  60 weeks design •  6-18 months lifetime

  Heterogeneity •  16 processors, 38 IPs •  5-6000 MIPS •  140 memory blocks •  5 Gbytes/s on-chip

interconnection network

•  HW: 5M RTL code lines •  SW: 60M code lines

o  OS, Middleware, HAL, Firmware

®

EII3/M2R - 3

Hardware / Software Partitionning

Programmable Processors

Software Compilation

DSP

Algorithm i C code

Software Hardware

Hardware Accelerators

Hardware Synthesis

Library

IP

Algorithm j VHDL/C code

RTL/HLS

C/C++, Matlab, ... Specifications Constraints

Time Cost

Power Test

Reliability

Verification Perform

ance estimation

Hardware/Software Codesign

EII3/M2R - 4

- DCT Q Entropy Coding

Q-1

DCT-1

+ Image

Memory

Motion Estimation

DSP Processor

ASIC 1

ASIC 2 RAM

ARM Processor

HW/SW codesign: video coder

  Algorithmic complexity •  DCT: 40 MOPS •  Motion Estimation: 500 MOPS

Page 2: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 2

EII3/M2R - 5

ENTITY fir IS!!PORT (xn:IN INTEGER; yn:OUT INTEGER);!

END fir;!

ARCHITECTURE behavioral OF fir IS!BEGIN!!PROCESS!! !VARIABLE H,x: !vector;!! !VARIABLE tmp: !INTEGER;!!BEGIN!! !tmp := xn * H(0);!! !FOR i IN 1 TO N-1 LOOP!! ! !tmp := tmp + x(i) * H(i);!! !END LOOP;!! !yn <= tmp;!! !FOR i IN N-1 DOWNTO 2 LOOP!! ! !x(i) := x(i-1);!! !END LOOP;!! !x(1) := xn;!

! !WAIT FOR throughput;!!END PROCESS;!

END behavioral;!

2 1

4 3

5

Hardware Synthesis

EII3/M2R - 6

sadmin = MAXINT; mvx=0; mvy=0;!for (u=-p; u<=p; u++)! for (v=-p; v<=p; v++) {! sad = 0;! for (i=0; i<N; i++) {! for (j=0; j<N; j++) {! sad += ABS(BR(i,j)-FR(i+u,j+v))! if (sad>=sadmin) break;! }! }! if (sad<sadmin) {! sadmin = sad; mvx = u; mvy = v;! }!}!

Software Compilation & Optimization

Functional Unit

.L1

Functional Unit

.S1

Functional Unit

.M1

Functional Unit

.D1

Functional Unit

.D2

Functional Unit

.M2

Functional Unit

.S2

Functional Unit

.L2

Register File A Register File B Data Memory Controller

Internal Memory

Fetch

Dispatch Unit

EII3/M2R - 7

A la fin du cours vous …

  saurez modéliser un algorithme (signal) par un graphe •  métriques, transformations et optimisation

  saurez concevoir un composant ou un processeur spécialisé depuis l'algorithme (notion de synthèse d’architecture)

  saurez concevoir et optimiser du code sur une architecture spécialisée (e.g. DSP conventionnel, DSP VLIW) •  cf. cours Daniel Ménard

PLAN

1.  Optimisations algorithmiques

1.  Modèles pour la spécification algorithmique

2.  Transformations algorithmiques

2. Synthèse architecturale

Page 3: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 3

1.1. Spécifications algorithmiques

Quelles applications ?

Quels modèles et langages pour spécifier au niveau

algorithmique ?

Quelles métriques ?

EII3/M2R - 10

Exemples d’applications

  Téléphonie cellulaire   Communications sans-fil   Contrôle de moteur   Modems   Photo et caméra

numériques   Voix sur IP, réseau   Audio grand public   Navigation   Vidéoconférence   Jouets, consoles vidéo   Synthèse musicale, effets

  Communications satellite   Analyse sismique   Sécurité   Médical   Reconnaissance vocale   Sonar, radar   Débruitage, écho   Anticollision   …   et pleins d’autres à venir

•  Performances •  Faible coût •  Faible énergie

EII3/M2R - 11

Tâches élémentaires

  Compression de signal (parole, audio, vidéo)   Filtrage   Modulation et démodulation   Détection et correction d’erreurs   Contrôle   Traitements audio (e.g. réduction bruit, égalisation,

annulation d’écho, conversion de fréquence)   Reconnaissance vocale   Synthèse de signaux

Quelles applications ?

EII3/M2R - 12

Algorithmes de TdSI1

  Signaux numériques o  Temps et amplitude discrets o  Flot de données o  Scalaires, vectorielles, matricielles, …

  Traitement temps réel o  Temps d'exécution Tex guidé par flots de données o  Période d'échantillonnage T période des sorties Tf > Tex

e(t) T

s(t) Algorithme

Tf

ex. s(n) = max(moy(e), s(n-1))

1Traitement du signal et de l’image

Quelles applications ?

Page 4: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 4

EII3/M2R - 13

Diversités

  Complexité des algorithmes de TdSI

  Format des données

Application Taille des données

PWM, mesures, contrôle convertisseurs sigma -delta

1 à 4 - 18 à 22 bits

radio HF/VHF, radar 6 - 14 bits

sonar 10 - 12 bits

parole 8 - 14 bits

audio 16 - 20 bits

imagerie / vidéo 8 - 36 bits (par pixel)

analyseurs de s ang 16 - 18 bits

< 5 MOPS 10-30 MOPS > 100-1000 MOPS Faible Elevé

mesure/contrôle Compression parole modems Imagerie

médicale

Compression audio Compression

vidéo ADSL

GSM UMTS

Quelles applications ?

EII3/M2R - 14

Fonctions typiques de TdSI

  Convolution, filtrage (RIF, RII), corrélation, DCT o  y = y + x.h : MAC (multiplication-accumulation)

  Adaptation (LMS) o  yn = yn-1 + x.h : MAD (multiplication-addition)

  FFT, multiplication complexe o  xr=xr.wr-xi.wi; xi=xr.wi+xi.wr

  Viterbi o  a1 = x1 + x2; a2 = y1 + y2; o  y = (a1>a2) ? a1 : a2 : ACS (addition-comparaison-sélection)

  Estimation de mouvement o  sad += |xi,j - yi+u,j+v| : SAD (sum-of-absolute-difference)

Quelles applications ?

EII3/M2R - 15

x

+

x

+

x

+

x

+

x

x(n)

y(n)

h(0) h(1) h(2) h(3) h(4)

z-1 z-1 z-1 z-1

Exemple Fil Rouge

  Filtre Numérique RIF sur N points

Graphe flot de signal (SFG pour Signal Flow Graph)

T

D ou

Quelles applications ?

EII3/M2R - 16

Fonctions typiques de TdSI

  Filtre Numérique RIF symétrique sur N points

y(n)

h(0) h(1) h(2) x

+ +

x x

+ + +

Quelles applications ?

Page 5: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 5

EII3/M2R - 17

Fonctions typiques de TdSI

  FFT Fast Fourier Transform •  Butterfly (DIF)

X

Y

X’ = X + W.Y

Y’ = X - W.Y W

- x x

+ x x

+

+ -

-

Quelles applications ?

EII3/M2R - 18

Fonctions typiques de TdSI

  Filtrage adaptatif LMS

  DLMS

x xn(i-1)

en

+ hn(i)

x xn(i)

+ y

hn-1(i) y

Quelles applications ?

EII3/M2R - 19

Fonctions typiques de TdSI

  Estimation de mouvement •  Codage vidéo MPEGx, H26x

Motion Vector (u,v)

Reference Block NxN

Matched Block NxN

N+2p

Search Window

p

sadmin = MAXINT; mvx=0; mvy=0; for (u=-p; u<=p; u++) for (v=-p; v<=p; v++) { sad = 0; for (i=0; i<N; i++) { for (j=0; j<N; j++) { sad = sad + ABS[BR(i,j)-FR(i+u,j+v)] /* if (sad>=sadmin) break; */ } } if (sad<sadmin) { sadmin = sad; mvx = u; mvy = v; } }

Quelles applications ?

EII3/M2R - 20

Caractéristiques algorithmiques

  Charge de calcul importante o  Nids de boucles o  Multiplications-accumulations (convolution) o  Multiplications-additions (FFT, DCT, adaptation, distances, ...)

  Précision des calculs o  Virgule fixe ou flottante o  Compromis coût – précision des calculs

  Bande passante mémoire   Calculs d'adressage complexes

o  Gestion signal, accès image, bit-reverse (FFT), ...

  Boucles de traitement courtes

Quelles applications ?

Page 6: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 6

EII3/M2R - 21

Système

Flots de Données (DSP)

Algorithme répétitif

Dominé par le Contrôle

(FSM)

Signal

Evénement

VHDL, Silage, SystemC, Lustre, Signal…

VHDL, Esterel, SDL, SystemC StateCharts, SyncCharts...

Orienté calcul ou contrôle Quels langages ?

EII3/M2R - 22

Behavioral VHDL

ENTITY fir IS!!PORT (xn:IN INTEGER; yn:OUT INTEGER);!

END fir;!

ARCHITECTURE behavioral OF fir IS!!...!

BEGIN!!PROCESS!! !VARIABLE H,x: !vector;!! !VARIABLE tmp: !INTEGER;!!BEGIN!! !tmp := xn * H(0);!! !FOR i IN 1 TO N-1 LOOP!! ! !tmp := tmp + x(i) * H(i);!! !END LOOP;!! !yn <= tmp;!! !FOR i IN N-1 DOWNTO 2 LOOP!! ! !x(i) := x(i-1);!! !END LOOP;!! !x(1) := xn;!

! !WAIT FOR throughput;!!END PROCESS;!

END behavioral;!

Quels langages ?

EII3/M2R - 23

#define WORD fix<20,0> #define N 5

func main (in : WORD) out : WORD = begin sum[0] = 0; (i:0 .. N):: begin sum[i+1] = sum[i] + WORD(h[i]@1 * in@i) ; end; out = sum[N+1];

end;

Silage

•  Type Signal = flot infini de tableau de nombres réels •  Algorithme = ensemble de fonctions concurrentes •  Assignation unique •  c@1 = ct-1 au sens signal

Quels langages ?

EII3/M2R - 24

System C

  C++ class libraries •  www.systemc.org

#include <systemc.h> #include "fir.h"

void fir::entry() {

sc_int<8> sample_tmp; sc_int<17> pro; sc_int<19> acc; sc_int<8> shift[16];

// reset watching /* this would be an unrolled loop */ for (int i=0; i<=15; i++) shift[i] = 0; result.write(0); output_data_ready.write(false); wait();

// main functionality while(1) { output_data_ready.write(false); wait_until(input_valid.delayed()==true); sample_tmp = sample.read(); acc = sample_tmp*coefs[0];

for(int i=14; i>=0; i--) { /* this would be an unrolled loop */ pro = shift[i]*coefs[i+1]; acc += pro; };

for(int i=14; i>=0; i--) { /* this would be an unrolled loop */ shift[i+1] = shift[i]; };

shift[0] = sample_tmp; // write output values result.write((int)acc); output_data_ready.write(true); wait(); }; }

Quels langages ?

Page 7: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 7

EII3/M2R - 25

A121

A122

A12

A11 A21

A22

Etat initial au RESET

Activation parallèle

arrêtA0

reset

Machine d’états hiérarchiques

  Extension hiérarchique, modulaire et parallèle des machines d’états finies (FSM) •  Etat = AND ou OR d’états (parallèle ou séquentiel) •  Etat feuille = process | empty

  Génération de code •  VHDL, C

  Plusieurs variantes •  StateCharts, SyncCharts (Esterel) •  SDL, Petri

Quels langages ?

EII3/M2R - 26

x

x

x

x

+ + + n1 n5 n6

n2

n3

n4

n7

Graphe Flot de Données (DFG)   DFG : graphe acyclique G(N,A)

•  N : ensemble de nœuds ni, i=1..Nn •  A : ensemble d’arcs ai, i=1..Na

  ni de N, représente une opération Oi   aij de A, représente un arc de ni vers nj si l’opération Oi est

un prédecesseur de Oj dans les DFG

O = (O1, O2, ... , ONo) Vecteur du type d’opérations

e.g. O = (x, +) F = (F1, F2, ... , FNo) Nombre d’opérations par type

e.g. F = (4, 3)

acc = xn*h[0]; for(i=1; i<4; i++) acc += x[i]*h[i];

acc = xn*h[0]; acc += x[1]*h[1]; acc += x[2]*h[2]; acc += x[3]*h[3];

Loop unrolling

Quels modèles ?

EII3/M2R - 27

Graphe Flot de Signal (SFG)

  SFG : graphe cyclique G(N,A,D) •  N : ensemble de nœuds ni, A : ensemble d’arcs ai •  D : ensemble de délais entre itérations successives

  Le délai associé à un arc est généralement représenté par un retard (z-i ou i.T ou i.D)

  Certaines représentations utilisent i.D comme valeur de l’arc plutôt que d’insérer un nouveau nœud

Quels modèles ?

EII3/M2R - 28

Graphe Flot de Signal (SFG)

  Filtre RIF

x

+

x

+

x

+

x

+

x

x(n)

y(n)

h(0) h(1) h(2) h(3) h(4)

z-1 z-1 z-1 z-1

Quels modèles ?

Page 8: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 8

EII3/M2R - 29

Graphe Flot de Signal (SFG)

  Exemple : filtre numérique RII du 2ème ordre (forme directe)

x(n) y(n)

x +

x

+ z-1

z-1

x

x +

x

+ z-1

z-1

b0

b1

b2

a1

a2

Quels modèles ?

EII3/M2R - 30

Graphe flot de données multi-fréquences (MRDFG)   MRDFG : graphe acyclique G(N,A)

•  N : ensemble de nœuds ni •  A : ensemble d’arcs ai valués par quantité de données en entrée/sortie

Quels modèles ?

EII3/M2R - 31

Métriques : définitions

  Vitesse d’itération (iteration rate) : nombre d’itérations exécutées par seconde

  Période d’échantillonnage (sample rate) : nombre d’échantillons traités par le système par seconde (également cadence ou throughput)

  Latence (latency) ou temps de retard entrée-sortie : délai entre le temps d’arrivée d’une entrée et le temps où la sortie correspondante est produite

Quelles métriques ?

EII3/M2R - 32

Métriques : définitions   Architecture sans partage de ressources

•  Un opérateur par opération, un registre par délai Z-1 "•  Temps dʼexécution des opérateurs arithmétiques (dj)"

  Chemin critique (critical path) d’un SFG : chemin du SFG ne passant pas par un délai Z-1 possédant le plus long temps •  Critical path est la borne minimale de la période d’horloge

(peut être réduite par pipelining)   Boucle critique (critical loop) d’un SFG : boucle du

SFG possédant le plus long temps •  Iteration bound est la borne maximale de la vitesse

d’itération (ne peut pas être réduite par pipelining)

Quelles métriques ?

Page 9: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 9

EII3/M2R - 33

Métriques

  Tbc : temps de la (ou des) boucle critique d’un SFG

•  Tbc =

•  B est un ensemble de boucles b, nb est le nombre de délais dans la boucle b, dj est le temps d’exécution de l’opération Oj du noeud j

•  Tbc représente la cadence que l’on peut atteindre. C’est donc la borne minimum du temps d’exécution.

B bn

dMax

b

bj j∈

⎥⎥⎥

⎢⎢⎢

⎡∑ ∈

Quelles métriques ?

EII3/M2R - 34

Métriques

  Tcc : Temps du chemin critique d’un SFG

•  Tcc =

•  P est un ensemble de chemin p, np est le nombre de délais dans le chemin p, dj est le temps d’exécution de l’opération Oj du nœud j

•  Td, temps de retard E/S d’un SFG, représente le retard minimum entre l’entrée et la sortie d’une même itération

•  Td = (ensemble des chemins entre E/S)

⎡ ⎤ P p.TbcndMax ppj j ∈−∑ ∈

⎡ ⎤ E/Sppj j P p.TbcndMax ∈−∑ ∈

4 chemins possibles: (1) input node → delay element (2) delay element’s output → output node (3) input node → output node (4) delay element → delay element

Quelles métriques ?

EII3/M2R - 35

x(n) y(n)

x +

x

+ z-1

z-1

x

x +

x

+ z-1

z-1

b0

b1

b2

a1

a2

=> Fe max ?

Exemple 1

  Exemple : filtre numérique RII du 2ème ordre (forme directe)

  Multiplications : 10ns   Additions : 5ns

Quelles métriques ?

EII3/M2R - 36

Exemple 2

x

+

x

+

x

+

x

x(n)

y(n)

a(0) a(1) a(2) a(3)

D D D

x x

+

x

+

b(1) b(2) b(3)

D D D

+

RII 4° Ordre

Quelles métriques ?

Page 10: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 10

EII3/M2R - 37

Cas des MRDFG

  Nécessité de dérouler sur une itération commune

Quelles métriques ?

PLAN

1.  Optimisations algorithmiques

1.  Modèles pour la spécification algorithmique

2.  Transformations algorithmiques

2. Synthèse architecturale

3. Synthèse logicielle, optimisation de code

1.2. Transformations algorithmiques

Commutativité/Associativité

Pipeline/Parallèle

Retiming Unfolding/Folding

Unrolling

EII3/M2R - 40

Transformations algorithmiques

  Efforts sur les transformations avant la synthèse de haut niveau ou la compilation impliquent des améliorations importantes

  Gain en •  surface •  consommation •  cadence des traitements •  latence des traitements

  Quelles transformations faut-il appliquer ?   Comment les formaliser ?

Page 11: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 11

EII3/M2R - 41

Commutativité, Associativité

b

c

d

+

+

+

+

e

f f = (((a + b) + c) + d) + e; f = (a + b) + (d + e) + c;

+

a d

+

+

b e

+

c

f

a

+

x

y = a.x y = a.x z = x.b z = b.x

x a

b x

b a

+ Intérêt :

Intérêt :

Inconvénients :

EII3/M2R - 42

Pipelining

EII3/M2R - 43

Parallel Processing

EII3/M2R - 44

Retiming ••• Le premier à avoir émis l'idée d'optimiser l'ordonnancement d'un graphe en modifiant les délais, a été Leiserson. Le "retiming" consiste à modifier l'emplacement des délais dans l'algorithme en conservant ses caractéristiques, de manière à mieux répartir les opérations dans le temps. Ce type de transformations utilisées par Leiserson pour minimiser le nombre de registres et réduire le chemin critique possède également un fort potentiel d'optimisation dans l'utilisation des ressources.

Z-1 Z-1

Op Z-1

Op

forward →!← reversed!

Y = Op(a.z-1, b.z-1) Y = Op(a, b).z-1

Page 12: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 12

EII3/M2R - 45

Remarque : un SFG est systolique si D(e) > 0 pour tout e dans E

v

u 3D e

3D

3D

v

u 2D+r(v) e

2D

2D Retiming

D D

••• Retiming •••   Soit un SFG initial Gi = (N,A,Di)

•  Di : ensemble de délais du graphe initial On réorganise les délais en Df de telle façon que Gf = (N,A,Df) soit fonctionnellement équivalent à Gi, avec éventuellement un changement dans les vitesses des signaux d’entrée/sortie.

  Transfert de nœuds (Node Transfer) •  Pour chaque noeud u, r(u) délais peuvent être enlevés de chaque

entrée et ajoutés à chaque sortie •  Nombre de délais de l’arc e : Dfinal(e) = Dinit(e) + r(v) - r(u)

EII3/M2R - 46

••• Retiming •••

  Définition Une « coupe » consiste en un ensemble de segments partitionnant le SFG en deux sous graphes

  Transfert de délais (Delay Transfer) •  k (ou -k) délais peuvent être enlevés des arcs entrants et k (ou -k)

ajoutés aux arcs sortants de la coupe, sans changer le fonctionnement du SFG.

•  Si tous les arcs croisent la coupe dans le même sens, alors k (ou -k) délais peuvent être ajoutés à chaque arc.

•  Plusieurs coupes peuvent être utilisées successivement pour « retimer »

  Mise à l’échelle temporelle (Time Scaling) •  Les délais peuvent être multipliés par un facteur s > 0 sans changer le

fonctionnement du SFG. Les vitesses d’Entrée/Sortie d’échantillonnage doivent être modifiées de la même manière de telle sorte que s-1 périodes d’horloge séparent les échantillons d’E/S successifs.

EII3/M2R - 47

••• Retiming

x

+

x

+

x

+

x

+

x

x(n)

y(n)

h(0) h(1) h(2) h(3) h(4)

D D D D

  Exemple 1

EII3/M2R - 48

••• Retiming

x

+

x

+

x

+

x

+

x

x(n)

y(n)

h(0) h(1) h(2) h(3) h(4)

D D D D

Coupes

  Exemple 1

Page 13: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 13

EII3/M2R - 49

••• Retiming   Exemple 1

x

+

x

+

x

+

x

+

x

x(n)

y(n)

h(0) h(1) h(2) h(3) h(4)

D D D D

Transferts de délais

EII3/M2R - 50

x

+

x

+

x

+

x

+

x

x(n)

y(n)

h(0) h(1) h(2) h(3) h(4)

2D 2D 2D 2D

Time Scaling

x

+

x

+

x

+

x

+

x

x(n)

y(n)

h(0) h(1) h(2) h(3) h(4) Delay Transfer

D D D D

D D D D

••• Retiming   Autre solution systolique

EII3/M2R - 51

x +

x

x(n)

x +

x

+ y(n) D

D

+

x +

x

x(n)

x +

x

+ y(n)

D

+

D D

D

D

x +

x

x(n)

x +

x

+ y(n)

D

+

D D

D

D

D

Retiming 1 Retiming 2

••• Retiming   Exemple 2 (cf.TD)

EII3/M2R - 52

Unfolding

  Déroulage des récurrences ou des boucles •  Réduction de la période d’échantillonnage •  Augmentation du parallélisme

x(n) y(n)

a

+

x D

Page 14: Méthodologie de conception State-of-the-art SoC atpeople.rennes.inria.fr/Olivier.Sentieys/teach/HLS_chap1_transfo.pdf · [L. Ducousso, ST, GDR SoC] State-of-the-art SoC at •HDTV

Synthèse d’architecture et optimisation de code ENSSAT EII/MASTER SISEA - systèmes embarqués

Olivier Sentieys, ENSSAT-IRISA 14

EII3/M2R - 53

Unfolding

x(n)

y(n)

a2

+

x

D

D D

+

a

x

x(n)

y(n) +

x D

+

aN-1

x N.D

D(n,N)

+

aN-2

x

D D

+

a2

x

D

+

a

x

•••

•••

••• aN

EII3/M2R - 54

Folding

  Inverse du “Unfolding”   Réutilisation des ressources

•  Registres •  Opérateurs arithmétiques

  Ordonnancement des calculs   Synthèse architecture

•  cf. chapitre suivant

EII3/M2R - 55

Avant : Pour i depuis 1 à 100 faire a(i) := a(i) + b(i) i := i + 1 fait

Après : Pour i depuis 1 à 100 faire a(i) := a(i) + b(i) a(i+1) := a(i+1) + b(i+1) i:=i+2 fait

S'il y a 2 additionneurs dans l'unité de traitement, le temps d'exécution est divisé par 2.

Unrolling

  Déroulage de boucles (loop unrolling) •  Permet d’augmenter le parallélisme dans la boucle •  Déroulage total (implicite) dans la plupart des cas •  Déroulage partiel :

EII3/M2R - 56

tmp := xn * h(3);!

for i in 1 to N-1 loop!

!tmp := tmp + x(i) * h(N-i);!

end loop;!

yn <= tmp;!

tmp := xn * h(3);!

tmp001 := tmp + x(1) * h(3-1);!

tmp002 := tmp001 + x(2) * h(3-2);!

tmp003 := tmp002 + x(3) * h(3-3);!

yn <= tmp003;!

Code C vers SFG/DFG

  Déroulage des boucles   Résolution du contrôle (e.g. conditions)

Unroll