• Aucun résultat trouvé

Optimisation par synthèse architecturale des méthodes de partitionnement temporel pour les circuits reconfigurables

N/A
N/A
Protected

Academic year: 2021

Partager "Optimisation par synthèse architecturale des méthodes de partitionnement temporel pour les circuits reconfigurables"

Copied!
169
0
0

Texte intégral

(1)

HAL Id: tel-01748325

https://hal.univ-lorraine.fr/tel-01748325

Submitted on 29 Mar 2018

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

de partitionnement temporel pour les circuits reconfigurables

Ting Liu

To cite this version:

Ting Liu. Optimisation par synthèse architecturale des méthodes de partitionnement temporel pour les circuits reconfigurables. Autre [cs.OH]. Université Henri Poincaré - Nancy 1, 2008. Français.

�NNT : 2008NAN10013�. �tel-01748325�

(2)

AVERTISSEMENT

Ce document est le fruit d'un long travail approuvé par le jury de soutenance et mis à disposition de l'ensemble de la communauté universitaire élargie.

Il est soumis à la propriété intellectuelle de l'auteur. Ceci implique une obligation de citation et de référencement lors de l’utilisation de ce document.

D'autre part, toute contrefaçon, plagiat, reproduction illicite encourt une poursuite pénale.

Contact : ddoc-theses-contact@univ-lorraine.fr

LIENS

Code de la Propriété Intellectuelle. articles L 122. 4

Code de la Propriété Intellectuelle. articles L 335.2- L 335.10 http://www.cfcopies.com/V2/leg/leg_droi.php

http://www.culture.gouv.fr/culture/infos-pratiques/droits/protection.htm

(3)

Ecole Doctorale Informatique Automatique Electronique Electrotechnique Math´ ematiques D´ epartement de formation Doctorale ´ Electronique ´ Electrotechnique

Optimisation par synth` ese architecturale des m´ ethodes de partitionnement temporel pour les circuits

reconfigurables

TH` ESE

pr´ esent´ ee et soutenue publiquement le 13 Mai 2008 pour l’obtention du

Doctorat de l’Universit´ e Henri Poincar´ e – Nancy 1

(sp´ ecialit´ e Instrumentation et Micro- ´ Electronique) par

Ting LIU

Composition du jury

Rapporteurs : M.Elbey Bourennane Professeur, Universit´ e de Bourgogne

M.Jean Philippe Diguet Charg´ e de Recherche CNRS (HDR), Lab-STICC, Universit´ e de Bretagne Sud

Examinateurs : M.Fabrice Monteiro Professeur, Universit´ e de Metz

M.Serge Weber Professeur, Universit´ e Henri Poincar´ e, Nancy I

M.Camel Tanougast Maˆıtre de Conf´ erences, Universit´ e Henri Poincar´ e, Nancy I

Laboratoire d’Instrumentation ´ Electronique de Nancy

(4)
(5)

J’adresse mes sinc` eres remerciements ` a Monsieur Elbey BOURENNANE, Professeur ` a l’Uni- versit´ e de Bourgogne ainsi qu’` a Monsieur Jean Philippe DIGUET, Charg´ e de recherche CNRS au Lab-STICC ` a l’Universit´ e de Bretagne Sud, qui m’ont fait l’honneur de juger cette th` ese en qualit´ e de rapporteurs.

J’adresse aussi mes remerciements ` a Monsieur Fabrice MONTEIRO, Professeur ` a l’Universit´ e de Metz d’avoir accept´ e d’examiner ce travail et de participer au jury.

Je tiens ` a remercier Monsieur Mustapha NADI, Professeur ` a l’Universit´ e Henri Poincar´ e de Nancy et ancien directeur du Laboratoire LIEN, de m’avoir accueilli au cours de sa direction au sein du Laboratoire LIEN.

Je tiens ` a remercier Monsieur Serge WEBER, Professeur ` a l’Universit´ e Henri Poincar´ e de Nancy, de m’avoir accueilli au sein de l’´ equipe “ Architecture ” qu’il dirige et d’avoir accept´ e d’ˆ etre mon directeur de th` ese.

Je souhaite remercier particuli` erement Monsieur Camel TANOUGAST de m’avoir encadr´ e durant cette th` ese sur un sujet tr` es int´ eressant, mais aussi pour ses qualit´ es scientifiques, sa disponibilit´ e et son soutien.

Toute ma sympathie et mes remerciements vont ´ egalement ` a l’ensemble des chercheurs et techniciens du laboratoire.

Ting LIU

F´ evrier 2008

(6)
(7)

Gaulle.

(8)
(9)

Table des mati` eres

R´ esum´ e 1

Table des figures 7

Glossaire 11

Chapitre 1 Introduction g´ en´ erale 13

1.1 Historique et contexte g´ en´ eral : “Le Calcul Reconfigurable” . . . . 13

1.2 Motivation . . . . 16

1.3 Probl´ ematique de l’´ etude . . . . 19

1.4 Contributions . . . . 19

1.5 Plan de m´ emoire . . . . 20

Chapitre 2 Approches M´ ethodologiques d’Impl´ ementation : ´ Etat de l’Art et Analyse Comparative 21 2.1 Introduction . . . . 21

2.2 Approches m´ ethodologiques d’impl´ ementation . . . . 21

2.2.1 Synth` ese Architecturale . . . . 21

2.2.1.1 Principe g´ en´ eral . . . . 21

2.2.1.2 Flot de conception par synth` ese architecturale . . . . 23

2.2.1.2.1 Analyse - Traduction en graphe flot de donn´ ees/contrˆ ole . . . . 23

2.2.1.2.2 Ordonnancement . . . . 27

2.2.1.2.3 Allocation - Assignation - Optimisation . . . . 28

2.2.1.3 Un Outil de Synth` ese architecturale : GAUT . . . . 29

(10)

2.2.2 Reconfiguration Dynamique par Partitionnement Temporel . . . . 34 2.2.2.1 Principe G´ en´ eral . . . . 34 2.2.2.2 Consid´ erations pour la mise en œuvre de la Reconfiguration Dy-

namique . . . . 34 2.2.2.3 Flot de conception pour l’exploitation de la RD par partitionne-

ment temporel . . . . 36 2.2.2.4 M´ ethodes de Partitionnement temporel pour syst` emes reconfigu-

rables . . . . 38 2.2.2.4.1 M´ ethodologie de partitionnement temporel par approche

it´ erative

. . . . 38 2.2.2.4.2 M´ ethodologie de partitionnement temporel par approche

constructive

. . . . 41 2.2.2.4.3 M´ ethodologie de partitionnement temporel constructive

par estimation et raffinement

. . . . 42 2.2.2.5 Outils de partitionnement et d’exploration : D.A.G.A.R.D . . . 45 2.3 Limitations . . . . 48 2.4 Analyse comparative : L’apport de la SA et de la RD . . . . 49 2.5 M´ ethodologies combinant le partitionnement temporel et la synth` ese architectu-

rale . . . . 51 2.6 Discussion . . . . 55 2.7 Conclusion . . . . 55 Chapitre 3 M´ ethodologie de Partitionnement temporel optimis´ ee par Synth` ese

architecturale 57

3.1 Introduction . . . . 57 3.2 Formulation g´ en´ erale . . . . 58 3.2.1 Partitionnement temporel et contraintes . . . . 58 3.2.2 Synth` ese architecturale bas´ ee sur unit´ es fonctionnelles partag´ ees et contraintes 68 3.2.3 Optimisation d’un partitionnement temporel par Synth` ese Inter-partition 71

3.2.3.1 Introduction . . . . 71

3.2.3.2 D´ efinitions . . . . 71

3.2.3.3 Formalisation : objectifs et conditions d’une synth` ese inter-partition 72

3.2.3.4 Consid´ erations de mise en œuvre d’une synth` ese inter-partition . 74

(11)

3.2.5 Algorithme d’identification et d’extraction d’unit´ es fonctionnelles factori-

sables . . . . 79

3.2.6 M´ ethodologie de partitionnement temporel optimis´ ee par synth` ese archi- tecturale inter-partition . . . . 89

3.2.6.1 Principe m´ ethodologique . . . . 89

3.2.6.2 Flot de conception d’un partitionnement temporel optimis´ e par IPS . . . . 93

3.3 Conclusion . . . 101

Chapitre 4 Application et Validation 103 4.1 Introduction . . . 103

4.2 Application I : D´ etection de contour d’images . . . 104

4.2.1 Pr´ esentation g´ en´ erale . . . 104

4.2.2 Partitionnement temporel initial . . . 106

4.2.2.1 Mod´ elisation et caract´ erisation technologique . . . 107

4.2.2.2 Caract´ erisation et annotation du GFD . . . 111

4.2.2.3 Estimation performances et ressources . . . 112

4.2.2.4 Partitionnement temporel initial . . . 112

4.2.3 Optimisation par synth` ese architecturale inter-partitions . . . 114

4.2.3.1 Taux de ressemblance mutuelle . . . 114

4.2.3.2 Optimisation par synth` ese architecturale inter-partition . . . 115

4.2.3.3 Discussion et analyse . . . 117

4.3 Application II : Algorithme de chiffrement de donn´ ee “ AES ” . . . 120

4.3.1 Pr´ esentation g´ en´ erale . . . 120

4.3.2 Partitionnement temporel initial . . . 126

4.3.2.1 Caract´ erisation et annotation du GFD . . . 126

4.3.2.2 Partitionnement initial du GFD . . . 128

4.3.3 Optimisation par synth` ese architecturale inter-partition . . . 132

4.3.3.1 Taux de ressemblance mutuelle . . . 132

4.3.3.2 Synth` ese architecturale Inter-partition . . . 134

4.3.4 Bilan et discussion . . . 138

4.4 Conclusion . . . 138

Chapitre 5 Conclusion G´ en´ erale et Perspectives 141

(12)

Bibliographie 147

(13)

R´ esum´ e

(14)

R´ esum´ e :

Les travaux de recherche pr´ esent´ es se situent dans le contexte des m´ ethodologies d’aide ` a l’impl´ ementation d’algorithmes graphe flot de donn´ ees sur architectures reconfigurables dyna- miquement de type RSoC (Reconfigurable System on Chip) ` a base de technologie FPGA.

La strat´ egie vis´ ee consiste ` a mettre en œuvre une approche de conception bas´ ee simultan´ e- ment sur la reconfiguration dynamique (RD) et la synth` ese architecturale (SA) en vue d’atteindre la meilleure Ad´ equation Algorithme Architecture (A

3

) pour l’impl´ ementation d’applications sous contraintes multiples.

La m´ ethodologie consiste ` a identifier et extraire les parties d’une application d´ ecrite sous forme d’un graphe flot de donn´ ees afin de les implanter soit par parties successivement reconfi- gur´ ees (partitionnement temporel), soit par la synth` ese architecturale (optimisation par unit´ es fonctionnelles partag´ ees) ou bien en combinant les deux m´ ethodes.

Le manuscrit est organis´ e de la mani` ere suivante :

− Apr` es avoir pr´ esent´ e et d´ etaill´ e les deux approches d’impl´ ementation que sont la RD et la SA ainsi que leurs outils associ´ es, nous montrons et nous expliquons la n´ ecessite d’une explora- tion architecturale optimale d´ edi´ ee au th` eme A3 par une approche reconfiguration dynamique - synth` ese architecturale. Ceci mettra en ´ evidence l’int´ erˆ et et les b´ en´ efices attendus par la mise en œuvre de la compl´ ementarit´ e dans une approche combin´ ee.

− Ensuite, nous proposons et d´ etaillons cette nouvelle approche m´ ethodologique combinant la reconfiguration dynamique et la synth` ese architecturale. Plus pr´ ecis´ ement, nous montrons comment optimiser par une approche synth` ese architecturale bas´ ee sur “ la r´ eutilisation d’unit´ es fonctionnelles ”, des m´ ethodologies de partitionnement temporel.

La formalisation de la m´ ethode propos´ ee ainsi que le crit` ere d’identification des sous-ensembles de l’application s’ex´ ecutant par partition ou par synth` ese architecturale sont d´ etaill´ es et expli- cit´ es ` a partir d’un algorithme d´ ecrit sous forme de graphe flot de donn´ ee lors de son impl´ emen- tation.

Le flot de conception de notre approche ainsi que les phases d’analyse sont d´ efinis et d´ etaill´ es.

Elles reposent sur plusieurs crit` eres importants tels que : le taux d’utilisation des ressources, l’´ evaluation des temps d’ex´ ecution et de reconfiguration pour une technologie consid´ er´ ee, la granularit´ e des op´ erateurs ainsi que leur degr´ e de factorisation.

L’originalit´ e de notre approche par rapport aux travaux existants, repose sur une estimation du degr´ e possible d’exploitation d’unit´ es fonctionnelles partag´ ees par synth` ese architecturale sur des partitions temporelles pr´ ealablement d´ etermin´ ees.

Pour d´ evelopper notre solution dans un but d’optimisation et de juste compromis entre les

deux approches RD et SA, nous avons d´ efini un param` etre permettant une ´ evaluation du degr´ e

inter-partition de mise en œuvre d’unit´ es fonctionnelles partag´ ees.

(15)

l’ensemble des unit´ es fonctionnelles contenues dans les partitions.

D’autre part, ` a partir des types d’op´ erations et du nombre d’op´ erateurs mettant en œuvre ces unit´ es fonctionnelles de traitement entre les partitions.

Le r´ esultat obtenu est une estimation du degr´ e de factorisation possible des unit´ es fonction- nelles contenues entre deux partitions successives. Ce param` etre calcul´ e, d´ efinissant le taux de “ Ressemblance Mutuel ” ou inversement d’“ Exclusion Mutuelle ”, permet la mise en œuvre d’une analyse d’optimisation par synth` ese architecturale inter-partition.

Nous obtenons alors une m´ ethode permettant de r´ eduire les inconv´ enients du partitionnement temporel par introduction d’une identification des parties s’ex´ ecutant par synth` ese architecturale en vue d’une minimisation des surcoˆ uts de la reconfiguration dynamique.

− En vue de valider la strat´ egie m´ ethodologique propos´ ee, nous pr´ esentons les r´ esultats de l’application de notre approche sur deux applications temps r´ eel : un algorithme de chiffrement AES et un algorithme de d´ etection de contours d’images. Une analyse comparative en terme de r´ esultats d’impl´ ementation illustre l’int´ erˆ et et la capacit´ e d’optimisation de notre m´ ethode pour l’impl´ ementation en reconfiguration dynamique d’applications complexes sur RSoC.

− Enfin, nous discutons et dressons le bilan de nos travaux en pr´ esentant les apports de la m´ ethode propos´ ee et en d´ egageant les perspectives de ce travail ainsi que les am´ eliorations ` a apporter.

Mots cl´ es : Synth` ese Architecturale, FPGA, Partitionnement Temporel, R´ eutilisation de

l’unit´ e fonctionnelle, AES, Sobel, M´ ethodologie de la conception num´ erique.

(16)

Abstract :

The research work presented in the context of methodologies is to assist the implementation of data flow graph algorithms on dynamically reconfigurable RSoC (Reconfigurable System on Chip)-based FPGA architectures.

The main strategy consists in implementing a design approach based on simultaneously both the dynamic reconfiguration (DR) and synthesis architecture (SA) in order to achieve a best Adequacy Algorithm Architecture (A

3

) for the implementation of applications under the multiple constraints.

The methodology consists in identifying and extracting the parts of an application which is described in form of data flow graph in order to implement either by successively partial reconfiguration (temporal partitioning), or by the architectural synthesis (shared on functional units) or by combining the two approaches.

The manuscript is organized as follows :

− After the presentation and detail of these two implementation approaches, that are, DR and AS together with their associated tools, we show and explain the necessity of an optimal architectural exploration dedicated to the theme A

3

by an approach of dynamic reconfiguration - architectural synthesis. This will highlight the value and benefits expected by the implementation of the complementarity in a combined approach.

− Secondly, we propose and describe this new approach that combines dynamic reconfigura- tion and architectural synthesis. More precisely, we show how to optimize through an architectu- ral synthesis approach based on reuse of functional units, temporal partitioning methodologies.

The formalization of the method proposed as a criterion for identification of the subsets of the

application by running partition or architectural synthesis are detailed and clarified from an

algorithm described in the form of data flow graph at its implementation. The design processes

of our approach as well as the analysis phases are defined and detailed. They are based on

several main criteria such as : the utilization rate of resources, the evaluation of the execution

time and the reconfiguration time for associated technology, the granularity of operators and

factorization level. The originality of our approach compared to the existing work, based on an

estimation of possible degree of exploitation of functional units shared by architectural synthesis

on partitions previously determined time. To develop our solution with a view of optimizing

and suitable compromise between the two approaches RD and SA, we propose a parameter in

order to evaluate the degree of the inter-partition implementation based on functional units sha-

red. This parameter is calculated through an algorithm which allows identifying all functional

units contained in the scores application. On the other hand, from the types of operations and

the number of operators implementing, how these functional units are treated between parti-

tions. The obtained result is a degree estimation of the functional units which are contained

(17)

Similarity” or vice versa “Mutual Exclusion”, allows implementing an optimization analysis by synthesis architectural with inter-partition. We propose this method to reduce the disadvantages of temporal partitioning through the introduction of an identification of the parties which run for architectural synthesis with a view of minimizing of incremental costs during the dynamic reconfiguration.

− In order to validate the proposed methodological strategy, we present the results of the implementation of our approach on two real-time applications : an encryption algorithm AES and the algorithm for detecting contours of images. A comparative analysis with the respecting of the implementation results illustrates the interest and the optimization ability of our method, which is also for dynamic reconfiguration implementation of the complex applications on RSoC.

− Finally, we discuss and assess our work through presenting the contributions of the propo-

sed methodology and identifying prospects of this work as well as opportunities for improvement.

(18)
(19)

Table des figures

1.1 Illustration de la structure architecturale d’un RSoC. . . . 14

1.2 Vue globale de l’architecture Xilinx VirtexII-Pro et Virtex 4. . . . . 15

1.3 L’organisation simplifi´ ee ATMEL FPSLIC 94K. . . . 15

1.4 Illustration du partitionnement en reconfiguration dynamique et de la synth` ese architecturale. . . . 18

2.1 Illustration d’un syst` eme con¸ cu par synth` ese architecturale. . . . 23

2.2 Flot de conception du processus de synth` ese architecturale. . . . 24

2.3 Illustration de l’´ etape Analyse-Traduction. . . . 26

2.4 Illustration de l’´ etape d’Ordonnancement. . . . 27

2.5 Illustration des ´ etapes interd´ ependantes d’Allocation-Assignation-Optimisation. 30 2.6 Flot de conception de l’environnement GAUT. . . . . 32

2.7 L’interface de l’environnement de GAUT. . . . 33

2.8 Illustration de la RD par partitionnement temporel [Tan01]. . . . 35

2.9 Flot de conception du processus de partitionnement temporel par RD. . . . 37

2.10 Illustration des ´ etapes interd´ ependantes du flot de conception par partitionnement temporel. . . . 39

2.11 Partitionnement temporel sous contrainte de temps par estimation et raffinement. 42 2.12 Vue g´ en´ erale de l’environnement de l’outil DAGARD [Bru04]. . . . . 46

2.13 Flot de conception de l’Outil DAGARD [Bru04]. . . . 47

2.14 Vue graphique des possibilit´ es de partitionnement [Bru04]. . . . 48

2.15 Evolution des ressources spatio-temporelles par la synth` ese architecturale. . . . . 49

2.16 Evolution des ressources spatio-temporelles en RD. . . . 50

2.17 Etapes classiques d’une m´ ethodologie optimisation bas´ ee RD - SA. . . . 51

2.18 Le flot de conception SA - RD propos´ ee dans [Car03]. . . . 52

2.19 Analyse des optimisations par r´ eutilisation d’unit´ e fonctionnelle [Car03]. . . . 53

2.20 Illustration d’une caract´ erisation de la m´ ethode propos´ ee dans [Car03]. . . . 53

2.21 Exemple d’un graphique de synth` ese [ZN00b]. . . . . 54

(20)

3.1 Estimation de latence ´ el´ ementaire totale de traitement. . . . 63

3.2 Estimation du temps de traitement ´ el´ ementaire d’un noeud v

i

. . . . . 64

3.3 Modules ` a instanciation multiple connect´ es en cascade. . . . 69

3.4 Illustration d’une logique d’unit´ es fonctionnelles partag´ ees par factorisation. . . . 70

3.5 Illustration g´ en´ erale de la synth` ese inter-partition. . . . 73

3.6 L’´ evaluation pour d´ ecrire la caract´ eristique similaire. . . . 76

3.7 R` egles prioritaires de formation des UFs. . . . . 78

3.8 Algorithme d’identification et d’extraction d’unit´ es fonctionnelles factorisables. . 82

3.9 Description de la fonction Create task(). . . . . 83

3.10 Description de la fonction T hread main(). . . . 84

3.11 Le chemin de donn´ ees d’exemple. . . . 86

3.12 Liste de sous ensemble de type de noeuds ou d’op´ erateurs. . . . 86

3.13 Le d´ etail du processus d’identification. . . . 88

3.14 Liste d´ etaill´ ee des ensembles finaux par type de tˆ ache. . . . 89

3.15 Illustration des UFs identifi´ ees dans le GFD. . . . . 90

3.16 Principe de l’approche m´ ethodologique propos´ ee. . . . 91

3.17 Flot de conception d´ etaill´ e du partitionnement temporel optimis´ e IPS. . . . 94

3.18 Pseudo code du processus principal de l’algorithme IPS. . . . 99

3.19 Pseudo-code de l’algorithme IPS. . . 100

3.20 Description de la fonction Checkcondition(). . . 100

3.21 Description de la fonction endof partition(). . . 100

4.1 Sch´ ema g´ en´ eral du chemin de donn´ ees d’un gradient images. . . 105

4.2 D´ etail de la fonction M´ edian (A, B, C). . . . 105

4.3 Op´ erateur horizontal et vertical de Sobel. . . 105

4.4 D´ etail de la fonction maximum de la valeur absolue. . . 106

4.5 La fenˆ etre de saisie GFDC de l’outil DAGARD [Bru04]. . . 108

4.6 (a) La cellule de Atmel (b) CLB Virtex compos´ e de 2-slice de Xilinx. . . 110

4.7 GFD annot´ e et caract´ eris´ e du chemin de donn´ ees du d´ etecteur de contours. . . . 113

4.8 Partitionnement temporel initial du d´ etecteur de contours. . . 115

4.9 Les unit´ es fonctionnelles du d´ etecteur de contours. . . 116

4.10 Partitionnement temporel optimis´ e du d´ etecteur de contours. . . 118

4.11 Sch´ ema de principe de l’algorithme de cryptage AES. . . 122

4.12 Architecture fonctionnelle de l’algorithme AES. . . 122

4.13 Structure par bloc du chemin de donn´ ees de l’algorithme AES. . . 123

4.14 Le Substitution Tableau - Sbox[xy] (en hexad´ ecimal). . . . 124

4.15 Chemin de donn´ ees du module de g´ en´ eration de cl´ e de tour. . . 125

(21)

4.17 Graphe flot de donn´ ees de l’algorithme AES. . . . 127

4.18 L´ egende du Graphe flot de donn´ ees de l’algorithme AES. . . 128

4.19 Partitionnement automatis´ e obtenu avec DAGARD de l’algorithme AES. . . . . 129

4.20 Flot de donn´ ees d´ etaill´ e et annot´ e de la macro de cryptage des donn´ ees. . . 130

4.21 Partition initiale 1 du graphe flot de donn´ ees de l’algorithme AES. . . 131

4.22 Partitions initiales 2, 3, 4, 5 du graphe flot de donn´ ees de l’algorithme AES. . . . 131

4.23 Architecture fonctionnelle optimis´ ee de la seconde partition r´ eduite de l’algo- rithme AES. . . 135

4.24 Illustration de la partition r´ eduite 2 de l’algorithme AES apr` es optimisation par synth` ese architecturale inter-partition. . . 136

*

(22)
(23)

Glossaire

A

3

Ad´ equation Algorithme Architecture AES Advanced Encryption Standard AG Algorithme G´ en´ etique

ALAP As Later As Possible ALU Arithmetic logic unit APL A Programming Language ASAP As Soon As Possible

ASIC Application Specific Integrated Circuit

BRAM Block RAM

CD Cellule d´ edi´ ee CL Cellule logique

CLB Configurable Logic Block CSoC Configurable System on Chip

DAGARD D´ ecoupage Automatique de GFD sur Architecture Reconfigurable Dynamiquement

DC Design Compiler

DSP Digital Signal Processor DR Dynamic Reconfiguration ECB Electronic code book FIFO First In First Out FPE Processeurs ´ el´ ementaires

FPGA Field Programmable Gate Array

GAUT G´ en´ erateur Automatique d’Unit´ e de Traitement GC Graphe de Contrˆ ole

GFC Graphe flot de contrˆ ole GFD Graphe flot de Donn´ ees

GFDC Graphe flot de donn´ ees/contrˆ ole

IP Intellectual Property

(24)

IPS Inter Partition Synth` ese

LASTI Laboratoire d’Analyse des Syst` emes de Traitement de l’Information LESTER Laboratoire d’Electronique des Syst` emes TEmps R´ eel

LIEN Laboratoire d’Instrumentation ´ Electronique de Nancy LIFO Last In First Out

LUT Look up Table NoC Net on Chip

PSLIC Field Programmable System Level Integrated Circuit PT Partition Temporel

RAM Random access memory RD Reconfiguration Dynamique RISC Reduced instruction set computer ROM Read-only memory

RSoC Reconfigurable System on Chip RTL Register transfer level

SA Synth` ese Architecturale

SFG Signal Flow Graph ou graphe flot de signaux SoC System on Chip

TDSI Traitement du Signal et de l’Image TEM Taux d’exlusion mutuelle

TP Temporal Partition

TRM Taux de Ressemblance Mutuel UCOM Unit´ e de Communication UCR Unit´ e de Calcul Reconfigurable UF Unit´ e Fonctionnelle

UM Unit´ e de m´ emorisation UT L’unit´ e de traitement

VHDL VHSIC Hardware Description Language

(25)

Introduction g´ en´ erale

1.1 Historique et contexte g´ en´ eral : “Le Calcul Reconfigurable”

En 1960, Geral Estrin, informaticien de l’Universit´ e de Californie ` a Los Angeles, propose une id´ ee concernant une “ architecture fixe et variable ” [ET63]. Cette derni` ere se composerait d’un processeur standard associ´ e ` a un tableau de mat´ eriel “ reconfigurable ” command´ e par le processeur. Ce mat´ eriel reconfigurable peut ˆ etre configur´ e pour ex´ ecuter rapidement une tˆ ache sp´ ecifique. Une fois cette tˆ ache effectu´ ee, le mat´ eriel peut ˆ etre fig´ e de nouveau pour ex´ ecuter une nouvelle tˆ ache. Cette nouvelle vision structurelle mat´ erielle aboutit sur un ordinateur hy- bride combinant la flexibilit´ e du logiciel avec les performances en terme de vitesse de calcul des technologies mat´ erielles rapides [Est00, Est02].

A cette ´ epoque, bien que cette approche fut valid´ ee, les technologies n’ont pas permis de mettre en œuvre l’id´ ee propos´ ee par G´ eral Estrin. Ce ne fut qu’en 1985, que cette approche a connu une renaissance grˆ ace au d´ eveloppement du premier circuit de matrice logique program- mable (circuit FPGA : Field Programmable Gate Array) par la soci´ et´ e Xilinx. Depuis, ce type de circuit n’a pas cess´ e d’´ evoluer en terme de complexit´ e, d’int´ egration et de performances pour devenir aujourd’hui des circuits logiques totalement ou partiellement reconfigurables [Tho04].

Plus pr´ ecis´ ement, ces circuits peuvent ˆ etre reprogramm´ es ` a volont´ e enti` erement ou bien par parties, tandis que les autres parties du circuit continuent de fonctionner.

Pour mettre en œuvre l’id´ ee de G´ eral Estrin, les premiers FPGA devaient ˆ etre coupl´ es ` a un

processeur. Cette association entraˆıne comme principal inconv´ enient l’augmentation de la com-

plexit´ e de programmation du syst` eme, ´ etant donn´ ees les structures mat´ erielles diff´ erentes des

deux composants (lecture d’instructions en m´ emoire pour le processeur, ´ ecriture de donn´ ees de

configuration pour le FPGA). Pour att´ enuer ce principal inconv´ enient, la tendance actuelle est

d’associer directement sur la mˆ eme puce ces deux structures en combinant les blocs de logique

FPGAs traditionnels avec les microprocesseurs tout en incorporant des p´ eriph´ eriques d’intercom-

(26)

Processors

FPGA

Configuration Memory ASIC

Memory

Fig. 1.1 – Illustration de la structure architecturale d’un RSoC.

munications (contrˆ oleur, NoC, etc.) afin de former un syst` eme de calcul “ complet ” fonctionnel.

On parle alors de Syst` emes sur Puce (re)configurable (CSoC ou RSoC : (Re)Configurable System On Chip) (Figure 1.1).

L’ association directe d’une structure micro-programm´ ee et d’une matrice logique configu- rable peut ˆ etre effectu´ ee de deux mani` eres :

– Soit par une r´ ealisation technologique int´ egrant physiquement ces deux composants. Comme exemples non exhaustifs de telles technologies hybrides, on trouve les dispositifs :

– Virtex-II PRO et Virtex-4 de Xilinx, qui incluent un ou plusieurs processeurs PowerPC incorpor´ es dans le tissu de la logique du FPGA [Xil07b, Xil07a]. La figure 1.2 pr´ esente la vue d’ensemble du Virtex II Pro. Le cœur de processeur IBM PowerPC 405 est un cœur de processeur RISC 32 Bits, PowerPC 405D5 en technologie 0,13 µm d´ eriv´ e du cœur de processeur IBM PowerPC 405D4. Il peut atteindre 300 MHz tout en maintenant une faible consommation. Le Virtex II Pro X peut accueillir jusqu’` a quatre de ces coeurs de processeur (XC2VP125).

– Le circuit Atmel 94K FPSLIC (Field Programmable System Level Integrated Circuit).

qui emploie un processeur AVR en combinaision avec l’architecture programmable de la logique d’Atmel (Figure 1.3) [Atm]. Ce circuit poss` ede sur la mˆ eme puce un micro- contrˆ oleur RISC avec une architecture Harvard (m´ emoire d’instruction et m´ emoire de donn´ ees s´ epar´ ees), d´ eveloppant une puissance de 30 MIPS ` a 12 MHz (nomm´ e AVR), une m´ emoire de 36 Ko et un FPGA de la famille AT40K [Atm98].

– Soit en important directement dans la matrice FPGA un ou plusieurs noyaux de proces-

seurs. On parle alors d’IP (Intellect Property) d´ edi´ e FPGA. Cette approche alternative

est la mise en application de noyaux de processeurs dans la logique de FPGA. Parmi eux,

on trouve les processeurs MicroBlaze et PicoBlaze de chez Xilinx [Xil]. En effet, la haute

densit´ e du FPGA Virtex II (jusqu’` a 8 millions de portes logiques ´ equivalentes et 1108

(27)

Fig. 1.2 – Vue globale de l’architecture Xilinx VirtexII-Pro et Virtex 4.

Fig. 1.3 – L’organisation simplifi´ ee ATMEL FPSLIC 94K.

(28)

ports d’entr´ ee/sortie) permet l’implantation du processeur MicroBlaze 32-bit@125 MHz..

Les processeurs Nios et de Nios II de chez Altera [Alt], les processeurs LatticeMico32 et LatticeMico8 de chez Lattice [Sem]. Cette derni` ere approche permet une plus grande flexibilit´ e de conception tout en ayant une meilleure gestion des ressources au cours du temps. Cependant, elle s’obtient au d´ etriment des performances de fonctionnement ´ etant donn´ e que les performances d’impl´ ementation sont tributaires des ressources de placement et de routage comme n’importe quelle fonction de traitement import´ ee.

Ces deux approches peuvent ˆ etre ´ egalement combin´ ees formant ainsi des structures com- plexes faisant intervenir des blocs sur puce et des IPs fonctionnelles sur la zone de la puce reprogrammable.

1.2 Motivation

Aujourd’hui, si l’int´ erˆ et de ces architectures reconfigurables sur puce (RSoC : Reconfigurable System on Chip) est reconnu (meilleure utilisation des ressources, adaptation par rapport ` a l’environnement, flexibilit´ e et r´ eutilisation) et a permis de r´ epondre aux crit` eres d’int´ egration et d’embarquabilit´ e, les outils qui leur sont associ´ es restent limit´ es et inadapt´ es [TCW00]. En effet, la principale difficult´ e r´ eside dans l’absence de m´ ethodes et d’outils efficaces pour les programmer

`

a un niveau syst` eme, dans la mesure o` u ils d´ ecoulent de la chaˆıne de d´ eveloppement classique de type ASIC. Or, il est ´ evident qu’aujourd’hui la maˆıtrise des architectures reconfigurables est strat´ egique dans la perspective des applications ` a venir. La puissance de calcul doit ˆ etre associ´ ee ` a une grande flexibilit´ e dans le but, par exemple, de faire coexister diff´ erents standards dans un mˆ eme syst` eme. Par cons´ equent, il est n´ ecessaire de mettre en œuvre des outils bas´ es sur de nouvelles approches de conception prenant en compte leurs sp´ ecificit´ es pour obtenir des d´ eveloppements optimis´ es. Il s’agit alors de d´ efinir des m´ ethodes d’impl´ ementations bas´ ees sur l’Ad´ equation Algorithme - Architecture.

D` es les d´ ebuts de la reconfiguration dynamique, le L.I.E.N

1

s’est impliqu´ e dans cette tech- nologie prometteuse [Gue97]. Les premiers travaux ont montr´ e d’une part que nous sommes tributaires de la technologie disponible et d’autre part qu’il n’existait peu ou pas d’outils d´ e- di´ es ` a l’exploitation de la reconfiguration dynamique. Une m´ ethodologie mettant en œuvre cette derni` ere faisait donc d´ efaut, malgr´ e plusieurs ´ etudes traitant des probl` emes de gestion de la reconfiguration dynamique. Or, cette probl´ ematique apparaissait comme une n´ ecessit´ e dans le but de g´ erer et d’automatiser le calcul reconfigurable. C’est ce qui nous a pouss´ e ` a r´ efl´ echir

`

a l’´ elaboration de m´ ethodes d’implantation en reconfiguration dynamique. Pour cela, plusieurs interrogations devaient ˆ etre consid´ er´ ees. Combien de partitions ? Comment choisir les partitions pour r´ ealiser la d´ ecomposition en reconfiguration dynamique des algorithmes ` a implanter ? Il

1

Laboratoire d’Instrumentation ´ Electronique de Nancy, Nancy, http ://www.lien.uhp-nancy.fr

(29)

s’agissait donc de d´ eterminer une m´ ethodologie de partitionnement en reconfiguration dyna- mique d’une application. Ces questions ont ´ et´ e le sujet de th` ese trait´ e par Mr. Camel Tanougast [Tan01]. Cette th` ese a permis de d´ evelopper une premi` ere m´ ethodologie de partitionnement res- treinte ` a certaines conditions particuli` eres (application sous contrainte de temps, permettant une minimisation de la surface logique n´ ecessaire ` a l’implantation d’algorithme en reconfiguration dynamique, applicable ` a une application d´ ecrite sous forme de graphe flot de donn´ ees). N´ ean- moins, apr` es une quantification de l’apport de la reconfiguration dynamique sur la r´ eduction de surface que l’on peut atteindre avec une application et une technologie donn´ ee, le partition- nement induit un certain nombre de modifications dans les caract´ eristiques de l’algorithme ` a implanter. Ces points et l’automatisation de la m´ ethodologie d´ evelopp´ ee ont ´ et´ e le sujet de th` ese trait´ e par Mr. Philippe Brunet [Bru04]. Cette th` ese a permis d’ajouter une prise en compte plus globale des contraintes apport´ ees par la reconfiguration dynamique et ´ etendre les possibilit´ es de sorte ` a int´ egrer des graphes flot de donn´ ees non-r´ eguliers en int´ egrant et en automatisant une

´

etude exploratoire de l’ensemble des solutions qu’apporte une solution par reconfiguration dyna- mique. L’ensemble des travaux men´ es au laboratoire LIEN a permis le d´ eveloppement de l’outil de partitionnement temporel intitul´ e D.A.G.A.R.D ( D´ ecoupage Automatique de GFD sur Ar- chitecture Reconfigurable Dynamiquement ) pour l’impl´ ementation d’algorithmes sur plateformes reconfigurables dynamiquement.

L’objectif de l’Ad´ equation Algorithme - Architecture (A

3

) est de trouver la meilleure “ cor- respondance ” entre un algorithme et une architecture pour r´ ealiser son impl´ ementation optimi- s´ ee, en satisfaisant diverses contraintes (temps r´ eel, surface, consommation, etc.). Actuellement, deux approches ayant pour objectif de trouver cette meilleure ad´ equation entre un algorithme et une architecture, permettent une optimisation des ressources d’impl´ ementation sur un SoC reconfigurable. Il s’agit du partitionnement temporel par reconfiguration dynamique (RD) et de la synth` ese architecturale (SA). La Figure 1.4 est un exemple illustrant les principes de ces deux approches m´ ethodologiques d’impl´ ementation sur technologies reconfigurables au cour d’une conception FPGA.

La reconfiguration dynamique consiste en l’ex´ ecution fractionn´ ee et successive d’un algo-

rithme par reconfiguration successive de la partie mat´ erielle configurable. Cette approche per-

met de minimiser la surface logique n´ ecessaire pour l’impl´ ementation d’un algorithme tout en

augmentant l’efficacit´ e silicium par traitement [Ta03, Ba03]. Ceci est tr` es important pour le

d´ eveloppement d’applications embarqu´ ees car elle permet d’´ eviter un surdimensionnement des

ressources n´ ecessaires pour une application et optimise donc son coˆ ut global. La mise en œuvre de

la reconfiguration dynamique consiste alors ` a identifier les diff´ erentes parties ` a ex´ ecuter s´ equen-

tiellement (partitions temporelles) selon un ordonnancement et des d´ ependances de donn´ ees. Des

travaux r´ ecents montrent ´ egalement son int´ erˆ et pour la r´ eduction de consommation d’´ energie

au cours de l’ex´ ecution d’une application dans la mesure o` u aux instants pr´ ecis de l’ex´ ecution

(30)

Graphe flot de données de l’algorithme

a) Synthèse Architecturale b) Partitionnement Temporel

Temps Partition 2 Partition 1

Partition n - +

Z-1

>0 x2 0 1

Z-1

Z-13

Z-2 X128

Quotien t0

Z-11 Quotien t1

Quotien t7

Z-1

x2 + Z-1 Contrôleur

Fig. 1.4 – Illustration du partitionnement en reconfiguration dynamique et de la synth` ese ar- chitecturale.

seules les ressources minimales n´ ecessaires ` a l’application sont exploit´ ees [KPB07].

La synth` ese architecturale est bas´ ee sur la r´ eutilisation d’op´ erateurs ` a diff´ erents instants pour ex´ ecuter l’ensemble de l’algorithme [Ta00, SJ93]. Cette r´ eutilisation est mise en œuvre par l’addition suppl´ ementaire de ressources de contrˆ ole et la mutualisation des op´ erations dans l’unit´ e de traitement. La synth` ese architecturale se compose de deux tˆ aches principales que sont l’ordonnancement et l’allocation. L’ordonnancement analyse les d´ ependances entre les op´ era- tions pour extraire leur parall´ elisme et affecter les op´ erations aux transitions. L’allocation fait correspondre les ´ el´ ements d’une description comportementale ` a des ressources mat´ erielles.

Selon les applications et les contraintes d’impl´ ementations vis´ ees, l’une ou l’autre de ces ap- proches paraˆıt la mieux adapt´ ee en permettant d’atteindre une meilleur A

3

vis ` a vis de l’autre.

C’est dans le but de prendre en compte les avantages simultan´ es des diff´ erentes approches de

conception que sont la synth` ese architecturale et la reconfiguration dynamique (le partition-

nement temporel), en y apportant des modifications avant mˆ eme l’implantation dans le but

d’aboutir ` a un outil d’automatisation, que ce travail de th` ese a ´ et´ e r´ ealis´ e.

(31)

1.3 Probl´ ematique de l’´ etude

Il existe plusieurs travaux qui se focalisent sur l’optimisation de l’impl´ ementation d’une application. Ces m´ ethodes d’exploration de conception SoC reposent soit sur le partitionnement temporel r´ ealis´ e ` a l’aide de la reconfiguration dynamique, soit sur la synth` ese architecturale bas´ ee aussi bien sur la synth` ese comportementale que sur la synth` ese au niveau transfert registre. Ces approches sont ´ etablies en fonction d’´ eventuelles contraintes et en prenant en compte la cible technologique reconfigurable [Wil97, KV98, Car03, ZN00a, Vem01, HZC02, La00]. Cependant, dans ce contexte, elles ciblent un ensemble r´ eduit d’architectures pour les mˆ emes performances.

Ces travaux vont se poursuivre dans la mesure o` u les applications sont de plus en plus complexes et n´ ecessitent une consommation en terme de ressources de plus en plus importante. Dans ce cadre, la recherche du meilleur compromis entre les performances et les ressources mat´ erielles exploit´ ees n´ ecessite l’´ elaboration de m´ ethodologies et d’outils associ´ es permettant d’identifier correctement ce compromis en vue de converger rapidement vers une solution auto-adaptable efficace entre la reconfiguration dynamique et la synth` ese architecturale pour une application d´ evelopp´ ee sur un RSoC. Dans ce cadre, la probl´ ematique pos´ ee pour ce travail de th` ese est la suivante :

“L’exploitation potentielle de la reconfiguration et de la synth` ese architecturale permet-elle de d´ efinir une nouvelle m´ ethodologie d’impl´ ementation efficace sur la partie FPGA d’un RSoC ?

Pour tenter de r´ epondre ` a cette probl´ ematique, nous apportons une r´ eponse sur l’insertion de la synth` ese architecturale dans une approche d’impl´ ementation sur des structures reconfigurables dynamiquement bas´ ee sur le partitionnement temporel.

1.4 Contributions

On entend par impl´ ementation efficace, l’ad´ equation algorithme - architecture permettant la

meilleure utilisation des ressources tout en maintenant un minimum de flexibilit´ e et adaptabi-

lit´ e par rapport ` a l’environnement pour l’implantation d’une application donn´ ee. Ce manuscrit

pr´ esente les travaux pour le d´ eveloppement d’une m´ ethodologie d’aide ` a la conception sur la

partie FPGA d’un RSoC bas´ ee simultan´ ement sur la reconfiguration dynamique et la synth` ese

architecturale en vue d’atteindre la meilleure ad´ equation architecture algorithme pour des ap-

plications donn´ ees tout en consid´ erant des contraintes de traitement et ou architecturales. Plus

pr´ ecis´ ement, la m´ ethodologie permet d’identifier et d’extraire les parties d’une application qui

s’ex´ ecutent par partitionnement temporel reconfigur´ e et/ou par synth` ese architecturale. L’ori-

ginalit´ e de notre approche est bas´ ee sur une estimation du degr´ e d’exploitation de la synth` ese

architecturale sur des partitions temporelles pr´ ealablement d´ etermin´ ees. Cette analyse repose

(32)

sur plusieurs autres crit` eres importants tels que : le taux d’utilisation des ressources, le temps d’ex´ ecution, l’´ evaluation de la reconfiguration et la latence ou propagation, la hi´ erarchie de l’architecture et la granularit´ e des op´ erateurs.

1.5 Plan de m´ emoire

Cette th` ese est structur´ ee de la mani` ere suivante. Le Chapitre 2 constitue un bref ´ etat de l’art de la reconfiguration dynamique et de la synth` ese architecturale. Ce chapitre d´ ebutera par une d´ efinition de la reconfiguration dynamique et pr´ ecisera la notion de synth` ese architecturale adopt´ ee. Nous passerons ensuite en revue les approches existantes ainsi que leurs outils associ´ es. L’approche m´ ethodologique adopt´ ee et pr´ esent´ ee dans le chapitre suivant

´

etant en continuit´ e directe avec les travaux pr´ ec´ edents d´ evelopp´ es au laboratoire LIEN, nous d´ etaillerons l’approche adopt´ ee pour le partitionnement temporel de graphe flot de donn´ ees r´ e- gulier r´ epondant ` a une contrainte de temps d’ex´ ecution de l’application [Tan01, Bru04]. Dans ce chapitre, nous expliquerons ´ egalement la n´ ecessite d’une exploiration architecturale optimale de ces deux approches d´ edi´ ees ` a l’Ad´ equation Algorithme-Architecture. Nous mettrons en ´ evidence la compl´ ementarit´ e de ces approches et l’int´ erˆ et de leur association en terme d’optimisation.

Le Chapitre 3 propose et d´ etaillera une approche m´ ethodologique combinant synth` ese ar- chitecturale et partitionnement temporel. Plus pr´ ecis´ ement, nous pr´ esenterons une m´ ethodologie optimis´ ee de partitionnement temporel ` a base de synth` ese architecturale bas´ ee sur des unit´ es fonctionnelles partag´ ees. Le chapitre pr´ esentera la mod´ elisation que nous faisons de l’application

`

a implanter ainsi que le crit` ere d’identification des sous-ensembles d’une application s’ex´ ecutant par partitions et pouvant ˆ etre optimis´ es par synth` ese architecturale inter-partition lors d’une im- pl´ ementation. Le flot conception de notre approche ainsi que les phases d’analyse seront d´ efinies et d´ etaill´ ees.

En vue de valider l’approche propos´ ee, Le chapitre 4 pr´ esentera les r´ esultats de l’appli- cation de notre approche pour des applications temps r´ eels (D´ etection de Contours d’images, Algorithmes de cryptage AES). Une analyse comparative en terme de r´ esultats d’impl´ ementa- tion illustrera l’int´ erˆ et et la capacit´ e d’optimisation de notre m´ ethode pour l’impl´ ementation d’applications complexes sur RSoC.

Enfin, Le chapitre 5 tiendra lieu de conclusion finale de ce manuscrit. Nous discuterons

et dresserons le bilan de nos ´ etudes en pr´ esentant les apports de la m´ ethode propos´ ee et en

d´ egageant les perspectives de ce travail ainsi que les am´ eliorations ` a apporter.

(33)

Approches M´ ethodologiques

d’Impl´ ementation : ´ Etat de l’Art et Analyse Comparative

2.1 Introduction

Ce chapitre est consacr´ e ` a la probl´ ematique g´ en´ erale de l’exploration architecturale d´ edi´ ee ` a la conception ` a base de technologie reconfigurable tel que les RSoC. Nous passerons en revue les diff´ erentes approches d’impl´ ementation (synth` ese architecturale et reconfiguration dynamique par partitionnement temporel) ainsi que leurs outils associ´ es (outils GAUT et DAGARD) tout en d´ etaillant les diff´ erentes ´ etapes de leurs flots de conception dans le cas d’une approche Ad´ equation Algorithme Architecture. Ensuite, une analyse comparative des approches pr´ esent´ ees sera alors discut´ ee. Enfin, une pr´ esentation de m´ ethodologies mixtes bas´ ees sur une approche simultan´ ee Synth` ese architecturale - Reconfiguration dynamique clˆ otura ce chapitre.

2.2 Approches m´ ethodologiques d’impl´ ementation

2.2.1 Synth` ese Architecturale

2.2.1.1 Principe g´ en´ eral

L’objectif de la synth` ese architecturale est de transformer une description comportementale

en description structurelle. Il s’agit de g´ en´ erer de mani` ere automatique une description structu-

relle au niveau transfert de registre (RTL) ` a partir d’une description comportementale au niveau

algorithme. La description comportementale d´ ecrit la fonctionnalit´ e qui doit ˆ etre r´ ealis´ ee par le

syst` eme synth´ etis´ e. La description du niveau de transfert de registre (RTL) caract´ erise souvent

(34)

la d´ efinition du syst` eme en termes de registres, multiplexeurs, op´ erateurs, etc. Le r´ esultat est typiquement une description de chemin de donn´ ees et d’op´ erateurs au niveau RTL associ´ e ` a un contrˆ oleur tout en satisfaisant un certain nombre de contraintes [Kuc98, DGL92a, Gov00, Sil94, Ell00, Aic94, Sug00, Din96, Lin97a, TF69, Zim79, APM86, SN91].

De fa¸ con concr` ete, la synth` ese architecturale ´ egalement appel´ ee la synth` ese comportemen- tale correspond ` a un ensemble de tˆ aches de raffinement ou de transformation pour impl´ ementer une sp´ ecification comportementale avec des contraintes d’impl´ ementation tout en optimisant les fonctions d´ ecrivant l’application. En g´ en´ eral, les entr´ ees d’une synth` ese architecturale corres- pondent :

– ` a une sp´ ecification comportementale d’un syst` eme ` a mettre en œuvre,

– aux contraintes de conception (souvent d´ efinies en termes d’ordre de coˆ ut, de temps d’ex´ e- cution ou de performance, de d´ elai, de limitation de consommation de puissance ou de ressources en terme de surface, de m´ emoire, etc.) qui d´ ependent du type de l’application

`

a synth´ etiser, d’une fonction optimisation et d’une biblioth` eque de modules (repr´ esentant des composants disponibles sous forme de niveau de transfert de registre) permettant de mettre en œuvre les op´ erations de la description selon une solution r´ epondant aux objectifs respectant les contraintes sp´ ecifi´ ees.

Une sortie du processus de synth` ese architecturale est une description structurelle d’impl´ e- mentation au niveau du transfert de registre (Netlist) associ´ ee ` a un contrˆ oleur [Kis96, Hei96].

Le r´ esultat de la synth` ese architecturale est alors compos´ e d’un chemin de donn´ ees repr´ esentant la partie op´ erative du syst` eme et constitu´ ee d’unit´ es fonctionnelles (additionneurs, multiplieurs, ALUs et unit´ es logiques), d’unit´ es de m´ emorisation (RAMs, ROMs, Registres ou Flip-flop, etc.) et d’unit´ es de communication interconnect´ ees (bus et multiplexeurs, etc.). Ce chemin de donn´ ees d´ ecrit les d´ ependances des ´ el´ ements constituant la partie op´ erative. Le contrˆ oleur, correspondant

`

a la partie commande du syst` eme, est une machine d’´ etats finis qui d´ eterminent ` a chaque cycle horloge syst` eme, les op´ erations de la partie op´ erative qui doivent ˆ etre ex´ ecut´ ees ` a partir des ses unit´ es fonctionnelles. Physiquement, dans la matrice reconfigurable, tous les ´ el´ ements sont repr´ esent´ es par un ensemble de composants r´ eels mise en œuvre par les ressources de la matrice.

La figure 2.1. illustre le r´ esultat final d’une conception par synth` ese architecturale.

Ce processus de synth` ese est l’application de techniques de conception. Au sein d’un flot

de synth` ese correspondant ` a une s´ equence d’´ etapes, le processus cr´ ee le syst` eme en faisant

correspondre les variables et les op´ erations d’une description comportementale du syst` eme ` a des

unit´ es fonctionnelles, de m´ emorisation et de communication d´ ecrit au niveau RTL.

(35)

Unités Fonctionnelles

Unités de mémorisation

- Stockage

Unités d’intercommunication

Partie Opérative

Contrôleur

Partie Commande

Horloge Système

Fig. 2.1 – Illustration d’un syst` eme con¸ cu par synth` ese architecturale.

2.2.1.2 Flot de conception par synth` ese architecturale

De fa¸ con concr` ete, la synth` ese architecturale consiste ` a convertir une sp´ ecification abstraite en une sp´ ecification structurelle. Traditionnellement, cette derni` ere est divis´ ee en une synth` ese de chemin de donn´ ees mis en œuvre par des unit´ es fonctionnelles et/ou de stockage et d’un che- min de contrˆ ole mis en œuvre par une unit´ e de commande coordonnant et organisant la gestion des donn´ ees entre les ´ el´ ements constituant le chemin de donn´ ees. Pour aboutir ` a une description structurelle optimale en fonction de contraintes, le processus typique de la synth` ese architec- turale est compos´ e principalement de trois ´ etapes pouvant ˆ etre interd´ ependantes : l’Analyse- Traduction, l’Ordonnancement et l’Allocation-Assignation-Optimisation. La figure 2.2 illustre le flot de conception traditionnel du processus de synth` ese architecturale.

2.2.1.2.1 Analyse - Traduction en graphe flot de donn´ ees/contrˆ ole

La sous-´ etape Analyse-Traduction consiste, ` a partir d’une sp´ ecification comportementale d’un syst` eme, ` a concevoir en utilisant un langage proc´ edural (tel que le langage C) ou fonctionnel (APL [Ive62], Erlang [Arm03, Arm07], Haskell [CF02], Lisp [Vei98], ML [RMH90], etc.) ou bien un langage de description mat´ eriel (e.g. VHDL [MT93], Verilog [CDR96], AHDL, SystemC, etc.), une succession d’analyses et de transformation de la description abstraite dans le but d’aboutir

`

a une description sous forme de graphe de flot de donn´ ees (GFD) et de graphe de flot de contrˆ ole

(GFC) de la sp´ ecification initiale. La structure des graphes repr´ esente les entr´ ees, les op´ erations

(36)

Entré Spécification comportemental

Graphe flot de donnée (*)')

Ordonnancement

Allocation - Assignation

&

Optimisation

PROCEDURE Test;

VAR A,B,C,D,E,F,G: Integer;

BEGIN Read(A,B,C,D,E);

F := E*(A+B);

G := (A+B)*(C+D);

...

END;

*

* + B + A

C D

E

F G

… .

! "

!#$"

%&'()* #)&'+

!

Analyse - Traduction

Fig. 2.2 – Flot de conception du processus de synth` ese architecturale.

et les transferts de donn´ ees de la sp´ ecification comportementale du syst` eme ` a travers ses noeuds, ses bords et sommets et ses arcs [Ste97].

Les principales sous-´ etapes de l’Analyse-Traduction, qui reposent ´ egalement sur les sp´ e- cifications de condition en termes de temps d’ex´ ecution, de consommation d’´ energie, de surface occup´ ee, etc., sont les suivantes : l’´ elimination de construction abstraite et de code mort, la d´ etection de Sub-expression commun, l’extraction du parall´ elisme permettant une r´ e- organisation des tˆ aches et la transformation du programme telle que le d´ eroulement de boucle et la traduction.

– L’´ elimination de construction abstraite consiste ` a supprimer certaines structures de des- cription. En effet, une description abstraite int` egre typiquement des structures de haut niveaux de langage facilitant la programmation mais qui ne peuvent ˆ etre interpr´ et´ ees ou traduites sous forme de structure d’impl´ ementation au niveau transfert de registre pour une technologie mat´ erielle tel que le FPGA. L’´ elimination du code mort consiste ` a suppri- mer dans la description les fonctions et les variables qui ne sont jamais utilis´ ees et dont les op´ erations qui les produisent peuvent ˆ etre supprim´ ees [IRI01].

– la d´ etection de Sub-expression commune consiste en une optimisation simple par sup-

pression de sous-expressions communes de la description comportementale [Ste97, Coc70,

BP97]. L’objectif est de rechercher et d’analyser des expressions identiques pouvant ˆ etre

(37)

remplac´ ees par une variable simple de calcul afin d’aboutir ` a une optimisation en terme de vitesse ou de ressources dans la description finale structurelle du syst` eme. Si l’on consid` ere, par exemple, les expressions suivantes contenant une sous-expression commune :

a = b ∗ c + g;

d = b ∗ c ∗ d;

Il est int´ eressant de traduire le code de la mani` ere suivante ` a travers une variable inter- m´ ediaire tmp :

tmp = b ∗ c;

a = tmp + g;

d = tmp ∗ d;

Cette simple transformation de code introduisant un calcul interm´ ediaire permet d’aboutir, dans la description structurelle, soit ` a une ex´ ecution plus rapide de la description initiale, soit ` a une optimisation en terme de ressources si on ´ evalue le coˆ ut de mise en œuvre par un ´ el´ ement de m´ emorisation de la temporisation symbolis´ e par la variable tmp inf´ erieur au coˆ ut d’un multiplieur.

– L’Extraction de parall´ elisme consiste ` a identifier les op´ erations pouvant s’ex´ ecuter en parall` ele ou simultan´ ement tout en veillant ` a leur synchronisation ` a partir d’une des- cription s´ equentielle d’un syst` eme [PBAS97, BP06]. Ce parall´ elisme est important pour une mise en œuvre optimis´ ee de la sp´ ecification sur des syst` emes parall` eles ou distribu´ es.

Plusieurs approches ont ´ et´ e propos´ ees pour extraire le parall´ elisme depuis un programme s´ equentiel [AK01, Bel04, Fea92a, Fea92b, Fea94, WL94, WL97]. D’une mani` ere g´ en´ erale, cette extraction s’effectue souvent pour un compromis entre la performance, la flexibilit´ e et les contraintes de temps et de ressources.

– La Transformation consiste, tout en conservant la s´ emantique initiale de description,

`

a apporter des modifications permettant une interpr´ etation physique par des unit´ es fonc- tionnelles dans la description structurelle. Parmi ces transformations, on trouve le d´ e- roulement de boucle [SGN02b, SGN03]. Ce dernier est un proc´ ed´ e qui d´ eroule les it´ era- tions d’une boucle de traitement dans le but de faciliter une optimisation globale du code [Muc97, SGN02a].

– La Traduction est la transformation de la description abstraite modifi´ ee et optimis´ ee par les sous-´ etapes pr´ ec´ edantes sous la forme de graphes flot de donn´ ees et de contrˆ ole.

La figure 2.3. suivante illustre un exemple simple de l’´ etape d’Analyse-Traduction du flot

de conception par synth` ese architecturale.

(38)

PROCEDURE Test (E, S);

VAR

A[5], x[5] : Integer;

BEGIN Read(E);

A[0] := E;

x[0] := E;

for(i=1; i<5; i++) x[i] := x[i-1];

A[i] := A[i-1] + 2*x[i+1];

retune A[i];

S:=A[i]

END;

Description Abstraite

PROCEDURE Test (E, S);

VAR

A, B, C, D, E, x[4] : Integer;

BEGIN Read(E);

A := E;

B := A;

C := B;

D := C;

E := D;

x[1] := A + 2*B;

x[2] := x[1] + 2*C;

x[3] := x[2] + 2*D;

x[4] := x[3] + 2*E;

S := x[4];

END;

Analyse - transformation

x

0

x

1

x

2

x

3

x

4

2

2

2

2

Traduction en DFG/DFC

Fig. 2.3 – Illustration de l’´ etape Analyse-Traduction.

(39)

x

0

x

1

x

2

x

3

x

4

2

2

2

2

temps t3

t1 t2

t0

Fig. 2.4 – Illustration de l’´ etape d’Ordonnancement.

2.2.1.2.2 Ordonnancement

L’´ etape d’Ordonnancement s’effectue sur le graphe interne de donn´ ees et de contrˆ ole issue de l’´ etape pr´ ec´ edente [PK87, MMC90, CW91, LIN97b, Fis90, KASO90]. Son rˆ ole est de d´ efinir les instants d’ex´ ecution de chaque op´ eration du graphe en respectant les d´ ependances de donn´ ees entre les noeuds du graphe, et en s’assurant la possibilit´ e d’allouer les ressources n´ ecessaires pour ex´ ecuter toutes les op´ erations ordonn´ ees ` a chaque instant (figure 2.4). Il ordonne ainsi les instants de d´ epart de chaque op´ eration tout en int´ egrant les ´ etapes de contrˆ ole n´ ecessaires.

En pratique, ces cycles de contrˆ ole correspondront aux ´ etats d’une machine d’´ etat effectuant la gestion et l’organisation des op´ erations pouvant s’ex´ ecutant en parall` ele.

Dans le domaine de la synth` ese architecturale, les algorithmes d’ordonnancement peuvent ˆ

etre class´ es en deux cat´ egories : les algorithmes d’ordonnancement de flot de donn´ ees et les algo-

rithmes d’ordonnancement de flot de contrˆ ole [Nar98, Sug00, Gov95]. Ces algorithmes prennent

compte des boucles conditionnelles, des branchements ind´ ependants, des d´ ependances de donn´ ees

et des contraintes sur les ressources mat´ erielles, sur les temps d’ex´ ecution, sur la consommation,

etc. Cependant, d’une mani` ere g´ en´ erale, l’Ordonnancement s’effectue en compromis entre

une vitesse maximale d’ex´ ecution et une surface minimale de silicium. Un ordonnancement sous

contraintes de ressources cherche ` a minimiser la dur´ ee d’ex´ ecution tout en fixant la quantit´ e

de ressources mat´ erielles. Un ordonnancement sous contrainte de temps cherche ` a minimiser les

ressources tout en bornant la dur´ ee d’ex´ ecution. Lorsque l’Ordonnancement des tˆ aches est

r´ ealis´ e, l’´ etape d’Allocation-Assignation optimis´ ee des op´ erations aux ressources disponibles

(telles que l’additionneur, les registres, les multiplicateurs, etc.) peut ˆ etre r´ ealis´ ee.

(40)

2.2.1.2.3 Allocation - Assignation - Optimisation

L’allocation, l’assignation et optimisation des ressources selon des contraintes sont des ´ etapes importantes de la synth` ese architecturale, une fois que l’ordonnancement affecte les tˆ aches et d´ etermine le nombre d’op´ erateurs au cours du temps. L’´ etape d’ordonnancement ayant r´ eparti les op´ erations de la description comportementale en ´ etapes de contrˆ ole et de calcul, la description finale du circuit au niveau RTL est compos´ ee d’une partie contrˆ ole et d’une partie op´ erative.

Le contrˆ oleur correspond ` a une machine d’´ etats finis ou ` a une table de transition qui d´ efinit le s´ equencement des op´ erations. La structure de la partie op´ erative ou du chemin de donn´ ees est d´ efinie par les ´ etapes d’allocation, d’assignation et d’optimisation.

– L’allocation et l’assignation des ressources fait correspondre des op´ erateurs physiques aux op´ erations, des registres aux variables et des connexions aux transferts de donn´ ees de la description initiale. L’´ etape d’allocation d´ etermine le nombre et le type des ressources n´ ecessaires pour l’ex´ ecution de la description comportementale [Ell00, Ber97, Sug00, DGL92b, Kis96]. Cette ´ etape fixe le nombre et les types d’unit´ es fonctionnelles (addi- tionneurs, multiplieurs, ALUs, etc.), les unit´ es de stockage (registres, bancs de registres, m´ emoires) et les unit´ es d’interconnexion (multiplexeurs, bus, etc.) ` a partir d’une biblio- th` eque de composants RTL. Cette derni` ere peut contenir plusieurs types d’unit´ es fonc- tionnelles, chacune avec des caract´ eristiques diff´ erentes (fonctionnalit´ e, taille, possibilit´ e de pipeline) permettant de fournir plusieurs solutions pouvant assurer l’ex´ ecution de la description comportementale tout en satisfaisant les contraintes de conception existantes.

L’´ etape d’assignation des ressources affecte ou assigne respectivement les op´ erations, va- riables, et les transferts de donn´ ees dans le graphe de flot, aux unit´ es fonctionnelles, de stockage, et d’interconnexion. D’une mani` ere g´ en´ erale l’Allocation- Assignation consiste en 3 ´ etapes interd´ ependantes :

– L’allocation/assignation d’unit´ es fonctionnelles : ` a partir de la biblioth` eque pr´ ed´ efinie d’UFs disponibles avec leurs caract´ eristiques, cette tˆ ache d´ etermine quels sont les op´ era- teurs ou modules fonctionnels n´ ecessaires et fait correspondre les op´ erations ` a l’ensemble des unit´ es fonctionnelles (UFs) s´ electionn´ ees pour l’ex´ ecution de l’algorithme initial [Kis96]. Les unit´ es fonctionnelles peuvent ex´ ecuter aussi bien des op´ erations standard (op´ erations arithm´ etiques ou bool´ eennes) que des op´ erations complexes d´ efinies par le concepteur par l’interm´ ediaire de proc´ edures et de fonctions.

– L’allocation/assignation des unit´ es de stockage : cette tˆ ache fait correspondre les va-

leurs de la description comportementale (constantes, variables, structures de donn´ ees de

type tableaux, etc.) ` a des ´ el´ ements de stockage ou de m´ emoire (ROMs, RAMs, registres,

bancs de registres, etc. ).

(41)

– L’allocation/assignation des unit´ es d’interconnexion : cette tˆ ache fait correspondre les transferts de donn´ ees ` a un ensemble d’unit´ es d’interconnexion. Elle d´ etermine les res- sources (multiplexeurs, bus, etc.) n´ ecessaires pour la communication entre les unit´ es (unit´ es de stockage et unit´ es fonctionnelles) du chemin de donn´ ees. Le but ici est ´ egale- ment de d´ efinir le r´ eseau d’interconnexion de fa¸ con ` a minimiser la surface du circuit, et ceci en utilisant un nombre minimal de connexions (multiplexeurs et bus). Ce nombre influe non seulement sur la taille du chemin de donn´ ees mais ´ egalement sur la taille du contrˆ oleur.

– L’´ etape d’Optimisation consiste principalement, tout en respectant les contraintes de conception et en ´ etant interd´ ependante de l’Allocation et de l’Assignation, ` a minimiser les ressources en partageant les unit´ es fonctionnelles mettant en œuvre des op´ erations par des m´ ethodes de mutualisation ou de factorisation. Il s’agit d’une ´ etape de mise en œuvre d’unit´ es fonctionnelles partag´ ees.

La figure 2.5. illustre sur un exemple, les ´ etapes d’Allocation-Assignement et Optimi- sation par mise en œuvre d’unit´ es fonctionnelles partag´ ees. Dans cet exemple, deux solutions possibles des ´ etapes Allocation-Optimisation et d’Assignation sont pr´ esent´ ees.

2.2.1.3 Un Outil de Synth` ese architecturale : GAUT

GAUT (G´ en´ erateur Automatique d’Unit´ e de Traitement) est un environnement de synth` ese d’architecture mat´ erielle, d´ edi´ e aux algorithmes de Traitement du Signal et de l’Image (TDSI) sous contrainte de cadence d’´ echantillonnage. Gaut est aussi un outil universitaire qui r´ esulte de travaux de recherche commenc´ es au LASTI dans les ann´ ees 1990 et poursuivis au LESTER depuis 1994 ( [EM93] et [JPM95]). Le d´ eveloppement informatique repr´ esente actuellement un volume de l’ordre de 200000 lignes de code C et JAVA. ` A partir de la sp´ ecification d’un algorithme de TDSI en VHDL (sp´ ecifi´ e en niveau comportementale), il synth´ etise une description structurelle VHDL de niveau RTL optimis´ ee en surface et destin´ ee aux outils de synth` ese logique du march´ e tels que ISE (Intergrated Software Environment) Foundation de Xilinx (Profil FPGA), Quartus d’Altera (Profil FPGA) ou DC (Design Compiler) de Synopsys (Profil ASIC) [Syn07].

Le mod` ele cible des architectures synth´ etis´ ees par GAUT est un coeur g´ en´ erique de proces-

seur d´ edi´ e au traitement du signal DSP. Ce mod` ele est compos´ e de trois unit´ es fonctionnelles

travaillant en parall` ele : unit´ e de traitement (UT), unit´ e de m´ emorisation (UM), et unit´ e de

communication (UCOM). Une horloge commune assure le fonctionnement synchrone entre les

diff´ erentes unit´ es qui fonctionnent en mode pipeline et qui s’´ echangent les donn´ ees au travers

(42)

x0 x1 x2 x3 x4

2

2

2

2

temps t3

t1 t2

t0

Ordonnancement

Reg R2

Adder 8

Reg R3

Contrôleur

Adder 8

Mov Mov

Reg R1

Reg R1 Reg R2

Reg R3 Contrôleur

Assignation

x0

Z-1 2

2

2

2

Z-1 Z-1 Z-1

S

M : Mémoire S : Sélection

Allocation –Optimisation

x2

+ M

Z-1 M

S x0

Z-1 x2 + S

S x0

S

Fig. 2.5 – Illustration des ´ etapes interd´ ependantes d’Allocation-Assignation-Optimisation.

Références

Documents relatifs

Théorème : U ensemble E n , ordonné par Vinclusion des parties connexes d'un n-graphe est un treillis si et seulement si les p éléments de tout cycle de longueur p forment un

[r]

Par cons´ equent, toutes ces suites ont mˆ eme suite

Cependant, on n’aura pas le droit d’utiliser simultan´ ement ces deux arˆ etes lors de la recherche d’un sous-graphe d’ordre maximal?. Ce sont des arˆ etes mutuellement

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Nous nous proposons d´ esormais, de nouveau pour l’´ ecoulement de cisaillement uniforme (cf Figure 2), de calculer la viscosit´ e non-lin´ eaire η(a), que nous d´

Using TC and its Token Bucket (TB) module to mimic the different available transport channels, and its NETEM module to emulate the packet loss over the UMTS air interface, we can

In the two examples described above, the key point was to use a wavelet transform mapping the L 2 space of the considered space (IR or IR 2 ) into the L 2 space of the