Synthèse portable pour micro-architectures à grain fin Application aux turbo décodeurs et nano-fabriques



Documents pareils
Évaluation et implémentation des langages

ASR1 TD7 : Un microprocesseur RISC 16 bits

Transmission d informations sur le réseau électrique

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Représentation des Nombres

Logiciel Libre Cours 3 Fondements: Génie Logiciel

IFT1215 Introduction aux systèmes informatiques

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ISO/CEI NORME INTERNATIONALE

Extrait des Exploitations Pédagogiques

Rappels sur les suites - Algorithme

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

VIII- Circuits séquentiels. Mémoires

Modélisation de la Reconfiguration Dynamique appliquée à un décodeur LDPC Non Binaire

Représentation d un entier en base b

Chapitre 1 : Introduction aux bases de données

EXCEL TUTORIEL 2012/2013

Théorie et codage de l information

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Cours 1 : La compilation

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

GUIDE Excel (version débutante) Version 2013

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

IV- Comment fonctionne un ordinateur?

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre VI- La validation de la composition.

Parallélisme et Répartition

Cours n 12. Technologies WAN 2nd partie

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Métriques de performance pour les algorithmes et programmes parallèles

IFT2255 : Génie logiciel

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Sanity Check. bgcolor mgcolor fgcolor

V- Manipulations de nombres en binaire

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Continuité et dérivabilité d une fonction

ELP 304 : Électronique Numérique. Cours 1 Introduction

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

LES TYPES DE DONNÉES DU LANGAGE PASCAL

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Traduction des Langages : Le Compilateur Micro Java

Introduction à l étude des Corps Finis

Fonctions de plusieurs variables

Figure 1 : représentation des différents écarts

Compilation (INF 564)

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Architecture des ordinateurs

Méthodologie de conceptualisation BI

Programmation parallèle et distribuée

Conception des systèmes répartis

Introduction à MATLAB R

Quantification Scalaire et Prédictive

NOTIONS DE RESEAUX INFORMATIQUES

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Limitations of the Playstation 3 for High Performance Cluster Computing

Cours Bases de données

Les diagrammes de modélisation

Big Data et Graphes : Quelques pistes de recherche

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Algorithme. Table des matières

Cours 1 : Qu est-ce que la programmation?

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0

UML (Diagramme de classes) Unified Modeling Language

Infolettre #18 : Les graphiques avec Excel 2010

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Programmes des classes préparatoires aux Grandes Ecoles

Direction des Études et Synthèses Économiques Département des Comptes Nationaux Division des Comptes Trimestriels

Présentation du langage et premières fonctions

nom : Collège Ste Clotilde

Modélisation et Simulation

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Chapitre 2 : Systèmes radio mobiles et concepts cellulaires

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Codage d information. Codage d information : -Définition-

Les structures de données. Rajae El Ouazzani

Université de Bangui. Modélisons en UML

Processus d Informatisation

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Conception de circuits numériques et architecture des ordinateurs

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Les algorithmes de base du graphisme

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Cours de Génie Logiciel

chapitre 4 Nombres de Catalan

Programmer en JAVA. par Tama

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Chapitre 2 : communications numériques.

Créer le schéma relationnel d une base de données ACCESS

Thème 3 Conception et vérification d architectures de systèmes sur puce

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Transcription:

Synthèse portable pour micro-architectures à grain fin Application aux turbo décodeurs et nano-fabriques Catherine Dezan, Erwan Fabiani, Christophe Gouyen, Loïc Lagadec, Bernard Pottier, Caaliph Andriamisaina et Alix Poungou Architectures & Systèmes, LESTER, FRE 2734 Département informatique UFR Sciences et Techniques Université de Bretagne Occidentale BP 809, 20 av Le Gorgeu 29285 Brest Cedex nom.prenom@univ-brest.fr RÉSUMÉ. Toutes les architectures reconfigurables se ressemblent. Pour faciliter leur intégration logicielle, l atelier Madeo les représente dans un modèle commun utilisé par des outils de CAO génériques. L implantation d outils et langages de haut niveau s appuie sur une couche de synthèse comportementale et structurelle ouverte capable de produire des opérateurs hautement optimisés. La flexibilité est illustrée par les investigations précoces qui peuvent aussi être menées sur des nano-fabriques. L efficacité de la synthèse est quant à elle montrée sur des éléments de circuits stratégiques dans les communications : les turbo décodeurs en blocs. ABSTRACT. Reconfigurable architectures are similar. To ease their sofware integration, the Madeo framework proposes a common model used by generic CAD tools. The development of high level tools can rely on an open synthesis layer with behavioural and structural aspects. The capability for fast integration of technologies is shown of the case of early investigations on nano-fabrics, while the efficiency of the synthesis is demonstrated on parts of a turbo decoder known to be critical in communications. MOTS-CLÉS : Architectures reconfigurable, synthèse, portabilité, turbo codes, nanotechnologies KEYWORDS: Reconfigurable architectures, synthesis, portability, turbo codes, nanotechnologies Technique et science informatiques 7/2006. SYMPA

2 Technique et science informatiques 7/2006. SYMPA 1. Introduction Les architectures reconfigurables ont vocation à être programmables au même titre que les processeurs. Programmable veut dire qu un ou plusieurs langages permettent d exprimer ce que la machine doit faire, que l on décrive un comportement souhaité ou que l on décrive des actions matérielles à exécuter. Dans la première catégorie, le langage est généralement lié à un modèle de calcul : algorithmes structurés, modulaires, programmation logique et déclarative, objets, programmation concurrente, flots de données... L implantation de ces langages requiert un effort qui peut être important, mais qui est en général unique ou peu fréquent : réalisation d une machine virtuelle ou d un compilateur. La seconde catégorie décrit explicitement des opérations à réaliser sur une architecture ou des outils de synthèse. L exemple le plus évident est celui du langage C créé en conformité avec une machine à registres (1974) pour combler une lacune dans la programmation des systèmes d exploitation. Un autre exemple non moins évident est celui des langages de description matérielle créés pour manoeuvrer les librairies technologiques, les opérateurs et la synthèse avec la plus grande flexibilité et sûreté. Les argumentations en faveur des langages comportementaux pointent du doigt les conséquences de l usage de langages de description, qui supportent effectivement bien l exécution, mais handicapent la stratégie d optimisation des algorithmes. Dans la conception matérielle, cet écart de besoins se remarque par exemple dans le domaine du traitement du signal et de l image, où la conception algorithmique est fréquemment traitée par calcul formel, alors que les implémentations logicielles et matérielles impliquent des choix souvent dépourvus de support (dimensionnement des opérandes, optimisation des expressions). L histoire des circuits reconfigurables a maintenant une vingtaine d années. Le logiciel pour ces circuits est une longue succession de mutations dans lesquelles on a trouvé des outils de synthèse logique de niveau booléen, des outils de synthèse ou de dessin de haut niveau, des langages de description matérielle évoluant progressivement vers plus d abstraction, et la prise en charge par des outils de programmation conventionnels plus ou moins amendés. En ce qui concerne les architectures reconfigurables, la dimension comportementale a été soulignée par plusieurs projets. Un exemple extrême est SCORE (Caspi et al., 2000), qui se focalise sur le comportement général du programme en ignorant, ou minimisant, les détails de la mise en œuvre. Le projet Madeo prend en charge la synthèse et l usage du matériel en relation étroite avec la programmation objet. Ce projet a démarré en 1995 en s appuyant sur un environnement de développement Smalltalk-80 (Goldberg et al., 1983), dont la maturité promettait de faciliter des mises en œuvre a priori lourdes en restreignant au maximum la dépendance technologique. Le choix de ce langage en tant que langage cible s imposait pour une seconde raison qui est sa capacité à s auto-décrire, capacité qu il était tentant d étendre au champ des architectures reconfigurables. La vision était de permettre la description et l intégration dans le langage de ressources de calcul nou-

Synthèse portable avec MADEO 3 velles, à la fois flexibles et efficaces : opérateurs arithmétiques spécifiques, opérateurs graphiques, manœuvre de capteurs, circuits de calcul intensif... Cet article présente d abord l ossature du projet dans la section 2. Deux points forts en sont le niveau symbolique et objet des spécifications et le haut niveau de portabilité permettant la prise en charge rapide de technologies nouvelles, qui sont respectivement détaillés dans les sections 3 et 4. Le premier point est illustré en section 5 par la synthèse d éléments de circuits de turbo décodeurs en blocs, et le second en section 6 par la prise en charge d un modèle technologique intermédiaire associant micro et nano architectures. Les turbo codes sont une solution permettant de minimiser le taux d erreur lors des communications. Ils ont une importance critique pour les débits de transmission haute vitesse ou sans fil. Les algorithmes de décodeurs en blocs tirent parti des propriétés des corps de Galois. Nous montrons que le support arithmétique nécessaire s implante naturellement dans le langage hôte, que la programmation des algorithmes élémentaires s effectue de manière simple et que la synthèse des circuits reconfigurables peut être complètement automatique et produire des implémentations FPGA plus efficaces que celles obtenues avec des approches traditionnelles. La ressource physique abstraite ciblée par Madeo est une micro-architecture qu il s agit de caractériser pour une architecture d application, puis d exploiter en liaison ou non avec l environnement hôte. Les ressources physiques sont typiquement des plateformes reconfigurables de grain varié : FPGA ou chemins de données. Ici nous montrons la capacité évolutive des outils en présentant la prise en charge de nanofabriques (Moritz et al., 2004). Il s agit de technologies considérées comme plausibles à moyen terme, mais pour lesquelles les indicateurs de performance n existent pas. Dans ce cas Madeo permet d effectuer la synthèse physique de tâches de grain moyen en récoltant des informations sur la densité effective de l intégration, les fréquences de fonctionnement, ou la résistance aux fautes. 2. Structure de la plateforme Madeo 2.1. Environnement de développement Smalltalk est un langage objet non typé, symbolique, et principalement applicatif. Toute entité du système a un statut d objet, compilateur, éditeur, noyau d exécution inclus. Si la première version de Smalltalk-80 s exécutait en code natif (bytecodes micro-programmés), il est actuellement diffusé sous forme de machine virtuelle portable. Le seul mécanisme d exécution que le programmeur perçoit est l expédition de message. Un message est un symbole associé à une sémantique. La réception d un message par un objet provoque une recherche dans la chaine d héritage des classes, et l exécution d une méthode (fonction), dont le résultat est rendu en réponse.

4 Technique et science informatiques 7/2006. SYMPA Les opérations numériques reflétant ordinairement les capacités matérielles du processeur ont également le statut de message, permettant des extensions arithmétiques aux classes numériques de base. Au delà d une syntaxe un peu particulière qui permet de casser les noms des procédures, le langage utilise un mécanisme d édition dynamique des liens qui le différencie des langages impératifs ou objet les plus usités. Alors que l édition statique consiste à calculer le saut à effectuer pour appeler une procédure lors de la compilation, Smalltalk retarde cette opération jusqu au moment de l exécution. Pour fixer les idées : représente une méthode agissant sur un paramètre. Le code incrémente le paramètre, le passe au carré, et retourne cette valeur. L exemple montre qu aucune contrainte n est posée sur le paramètre. On demande seulement à celui-ci de savoir réagir correctement au message +, puis cette somme étant effectuée, qu elle sache exécuter un message squared (notation unaire de type postfixe). Cette contrainte est satisfaite pour toutes les classes numériques (héritant de Number) : entiers, flottants, rationnels, nombre à virgule fixe, complexes,... mais pourra aussi être respectée par de nouvelles classes créées pour une application particulière, sans qu il soit besoin de recompiler la méthode décrite. On disjoint ainsi complètement les données et le code en laissant le couplage s effectuer au moment de l exécution sur la seule base des symboles utilisés par le programme. Le résultat est une très forte réutilisabilité du code et une grande latitude à faire évoluer les données en jouant sur les classes, existantes ou nouvelles, et sur le polymorphisme, c est à dire la capacité à traiter uniformément des objets de classes différentes (voir section 3). Pour Madeo, cela amène la première possibilité d opérer des transformations de synthèse logique et physique vers des architectures différentes, à grain fin, mais aussi hétérogènes ou radicalement nouvelles comme cela est montré pour les nanofabriques en section 6. Cela permet aussi au programmeur de faire évoluer les classes des données face à un algorithme fixe, afin de régler un circuit en termes de coût matériel ou de performances. Le cas des turbo codes en est une bonne illustration puisque les classes supportant les corps de Galois sont générées par calcul et que des algorithmes tels que le calcul de syndrome sont réutilisables avec une grande latitude sur ces classes, en y incluant des tests sur des opérandes entiers. 2.2. Synthèse logique et synthèse physique portables Le flot Madeo est basé sur deux couches (présentées figure 1) : 1) la modélisation de la micro-architecture, associée aux fonctions de synthèse physique : placement, routage, floor-planning, édition, et dessin structuré.

Synthèse portable avec MADEO 5 Programmation de haut niveau Générateurs de code Description de circuits structurés Interface (API) programmable: dessin et synthèse Couches 3 Programmation de fonctions, FSM, Ensemble de définition Synthèse logique hiérarchique 2 base de données Description de l architecture concrète Modèle architectural et outils physiques 1 Production des configurations 0 Figure 1. Flot final de la chaîne Madeo, avec en bas la production des bitstream permettant la programmation effective du circuit cible, à droite les mécanismes de stockage de composants en base de données, en haut les interfaces possibles avec des langages de haut niveau. La chaîne est totalement ouverte. Le rôle de la modélisation est de permettre la description de l organisation d un circuit cible en termes de primitives matérielles et de fonctions de routage. Cette description repose sur un modèle abstrait permettant la représentation de réplications et de hiérarchies que l on trouve dans les circuits reconfigurables. Le modèle abstrait est ouvert, et permet de prendre en charge des ressources matérielles nouvelles : opérateurs ou fonctions d acquisitions, par exemple. Les algorithmes de synthèse physique opèrent sur l architecture concrète qu ils découvrent en utilisant le modèle abstrait. Il s agit d une sorte d interprétation dont l intérêt est de produire une prise en charge portable, en y incluant des cibles hétérogènes. 2) le second étage dispose donc des fonctions d implantation et du modèle physique. Son rôle est d effectuer la synthèse logique, dans le cas d architectures à grain fin, et la synthèse numérique dans le cas d architecture à gros grain. La synthèse logique est actuellement menée à partir de méthodes Smalltalk-80, bien que les principes suivis puissent s appliquer à quantité d autres modes d expression. Elle repose sur la prise en charge simultanée de la définition des données à traiter, et de l algorithme à développer sur le matériel. Les données sont des ensembles d objets que l on peut désigner par le terme de contexte de compilation, qui remplace les directives de typage traditionnelles. Le typage est produit par inférence automatique dans le graphe d appel qui est traduit en systèmes de tables pré-calculées.

6 Technique et science informatiques 7/2006. SYMPA Les contextes de compilation peuvent se calculer par du code Smalltalk. La méthode décrite (2.1) pourrait ainsi être synthétisée en association au contexte suivant : Les fonctions implantées dans cette couche permettent la production de réseaux de composants combinatoires ou séquentiels pour la couche sous-jacente. Les couches 1+2 fournissent donc un interface permettant la production d objets empilant la spécification logicielle (code et contextes), les réseaux de tables, les représentations logiques et physiques dépendantes d une architecture. Ces composants sont archivés dans une base de données multi-architectures. 2.3. Dessin structuré et intégration aux compilateurs Les primitives générées ne suffisent en général pas pour une application. Il faut pouvoir les assembler en formant des architectures (couche 3, figure 1). Ce résultat peut être obtenu par des programmes qui effectuent des arrangements physiques des composants élémentaires, puis construisent les chemins de données entre ces composants. La programmation utilise du code Smalltalk traditionnel manipulant les interfaces des deux couches basses pour synthétiser, extraire les caractéristiques géométriques, répliquer et router les signaux. Le second cadre d usage consiste à laisser un compilateur produire ou utiliser les composants élémentaires et les relier. Madeo supporte ces deux types d opérations avec des niveaux de maturité variables, en préservant la caractéristique de portabilité (Fabiani et al., 2003). La programmation de générateurs physiques est couramment pratiquée pour les opérateurs arithmétiques et les réseaux de calcul. L intégration dans des compilateurs (bloc supérieur de la figure 1) est une nouveauté abordée de manière coopérative (voir section 3.5). 2.4. Reconfigurabilité et couplage langage/architecture La production de logique combinatoire à haut niveau est indispensable pour tirer complètement parti de la flexibilité du reconfigurable. Le choix de Smalltalk a ainsi été motivé par la capacité à produire des mécanismes d exécution matérielle qui reflètent la capacité d expression du langage. A contrario, les langages typés, liés à des ensembles d opérateurs fixes peuvent difficilement intégrer des fonctions nouvelles au rang des opérateurs standards. La section 3 décrit la structure originale du synthétiseur logique de Madeo, dont il existe une description plus approfondie dans (Lagadec et al., 2003). Sa lecture n est pas indispensable à la compréhension générale de l article. La section 4 décrit comment on peut abstraire l organisation du circuit en regard des fonctions de manipulation physique.

Synthèse portable avec MADEO 7 3. Flot de compilation Le compilateur Smalltalk produit un arbre syntaxique dont les nœuds sont des objets représentant des messages, des affectations, des blocs, des séquences. Cet arbre est analysé pour construire un graphe acyclique sans variable temporaire (DAG). Des optimisations de compilation conventionnelles sont menées sur le DAG : suppression de code mort, factorisations, propagations de constantes et évaluations statiques. Le contexte de compilation est défini comme étant une spécification de type complète pour chacun des paramètres de la méthode et le receveur. Cette spécification est progressivement propagée dans le DAG. Chaque nœud disposant d une spécification complète de typage est compilé récursivement et hiérarchiquement, sauf si sa complexité apparaît assez simple pour les outils logiques. Dans ce cas on construit une table en appliquant le message qu il représente à tous les n-uplets de son contexte. Le résultat de cette passe est un graphe hiérarchique portant des tables représentant exactement tous les comportements possibles de la méthode sur son contexte courant. Plusieurs optimisations sont alors menées pour simplifier les tâches d optimisation logique, par exemple : 1) fusion des tables sur les chemins unaires, suppression du code constant. 2) suppression des valeurs produites et inutilisées, et backtracking. Dans le cas des branchements conditionnels les conditions vraies ou fausses sont répercutées sur les blocs conditionnés pour réduire leur logique. Le résultat est un graphe de tables réduit, qui reste exécutable par simple parcours, qui peut être implanté dans des mémoires centralisées ou distribuées, et dont on peut dériver des programmes de simulation à haut niveau de parallélisme potentiel. Lorsqu il s agit de produire des circuits sur FPGA, on construit des PLAs équivalents aux tables que l on passe à des outils d optimisation logique. Ces aspects sont décrits en section 3.4. Mais il est d abord nécessaire d expliquer l effet attendu par cette chasse aux valeurs inutiles. 3.1. Convergence et applicabilité de la méthode La section 5.2 montre que des circuits de taille significative peuvent être synthétisés de manière très efficace. Il y a cependant une condition d utilisation forte qui restreint le grain des calculs à des amplitudes allant de 2 6 à 2 8 valeurs par paramètre. Au delà de ce seuil, l optimisation logique ne peut plus être menée efficacement. Le processus de synthèse converge. En effet, chaque nœud du graphe réalise au pire une bijection de son contexte vers l ensemble de ses résultats. De manière générale la quantité de valeurs manipulées décroît à chaque nœud, car une fonction combinatoire ne peut pas produire plus de résultats qu elle ne dispose de n-uplets dans son entrée. La stratégie algorithmique gagnante consiste alors à faire apparaître le plus tôt possible

8 Technique et science informatiques 7/2006. SYMPA des tables synthétisables dans le DAG, en surface, ou en profondeur dans les méthodes appelées. La maîtrise de la structuration hiérarchique du graphe de calcul est une clé de la qualité de la solution produite. Trois cas sont à considérer : blocage de l examen hiérarchique : cas où le programmeur souhaite en verrouiller des noeuds en vue d une synthèse monolithique. Pour cela, les méthodes placées dans une catégorie de méthodes dédiée sont traitées de façon atomique. contrôle en profondeur : blocage paramétrique de la profondeur maximale lors de la descente hiérarchique. Un intérêt direct est d assurer une terminaison contrôlée d un traitement récursif (par exemple une recherche dichotomique), ou de calibrer à priori la complexité des nœuds. par sélection manuelle : une fois le DAG produit, et avant qu il ne subisse une quelconque modification, le programmeur étiquète interactivement chaque nœud pour forcer ou non sa tabulation. Les tables de calcul comportent des intervalles de valeurs contiguës, des ensembles creux ou polymorphes. Le taux de remplissage des contextes peut être associé à la notion de valeurs prises effectivement sur un chemin de données. Ce taux varie selon les applications, et la complexité des expressions mises en œuvre. Pour en donner un exemple, deux opérandes x et y d une multiplication z = x y, définis dans un intervalle I = [0, 2 n ] vont générer des valeurs dans J = [0, 2 2n ] Pour une valeur prise par les opérandes au delà de I, l encodage binaire classique de cette dernière entraine l extension de l intervalle I et donc aussi de J à considérer ([0, 2 2n+1 ] et [0, 2 2n+2 ]). L intervalle J a alors une amplitude 4 fois supérieure dont 3/4 des valeurs possibles sont pratiquement inutilisés. 3.2. Aspects spécifiques de la synthèse logique pour les FPGAs Les FPGAs permettent de construire des circuits très spécialisés et de profiter des creux générés lors de l optimisation logique par deux techniques : la synthèse et la resynthèse. Ces opérations sont actuellement menées par des logiciels externes à Madeo 1. La synthèse consiste à produire un code booléen unique pour chaque n-uplet d un contexte, avec une signature booléenne pour le résultat. La construction d un PLA (Programmable Logic Array) à partir de cette table binaire va fournir une implantation logique après minimisation et partitionnement. Les résultats expérimentaux montrent que la suppression de valeurs peut complexifier l expression logique, et causer des sérieux désagréments pour les temps de synthèse (figure 2 (a)). 1. On citera SIS (Sentovich et al., 1992) et ses évolutions telles que MVSIS (Gao et al., 2001), ou une adaptation tirant parti de partitionnements intermédiaires PPart (Lemarchand, 1999).

Synthèse portable avec MADEO 9 150 150 nombre de cellules 100 50 nombre de cellules 100 50 0 50 100 150 200 250 nombre d entrees manquantes 0 50 100 150 200 250 nombre de DC Figure 2. A gauche, nombre de cellules logiques produites par synthèse (a) et à droite, par resynthèse (b) pour un même problème de multiplication 2 4 2 4 avec un nombre de jeu d opérandes aléatoires croissant. Une autre solution est d observer que si on dispose d une expression logique simple pour des intervalles pleins, on peut demander à l optimisation logique de partir de cette solution existante en effectuant le retrait des n-uplets sous forme de don t care (Lin et al., 1991). On procède alors à une resynthèse. Les résultats expérimentaux présentés en (b) figure 2 montrent une décroissance systématique de la logique générée avec cette technique. La lecture de la table 1 montre d autre part un second avantage qui est la maîtrise des temps de calcul bien plus courts et bien plus prédictibles. moyenne gain maximum gain temps de synthèse (s) 286 9485 nombre de noeuds (LUT-4) synthèse 132,323 154 temps de resynthèse (s) 10 27 198 47 nombre de noeuds (LUT-4) resynthèse 76,4077 1.73 88 1.75 Tableau 1. Comparatif des temps d exécution et de la qualité des résultats pour une série de synthèses, puis des resynthèses équivalentes sur des contextes de plus en plus petits. La synthèse initiale complète précédant les resynthèses a duré 10.7s en produisant 90 cellules LUT-4 (mvsis, puis sis). En conclusion, lorsque cela est possible il y a toujours avantage à procéder par retraits sur une solution existante, le contrôle des flux de valeurs étant garanti par le strict usage des tables dans le circuit synthétisé. La comparaison avec des outils classiques est difficile à mener car ceux-ci s appuient sur des règles sémantiques restreintes à des opérateurs classiques, alors que Madeo peut profiter de constats menés à la compila-

10 Technique et science informatiques 7/2006. SYMPA tion, en s affranchissant de l usage de macros ou d opérateurs. La section 5 montre l efficacité de ce positionnement par rapport à une approche purement architecturale. 3.3. Synthèse de machines d états Les machines d états sont produites en utilisant la même technique que les circuits combinatoires. On peut assimiler ces machines à une méthode opérant sur des variables externes qu elles lisent et écrivent. En plus du contexte de compilation il est nécessaire de disposer de la valeur initiale de l état. Le logiciel de synthèse observe l évolution de l état. Si celui-ci évolue vers une nouvelle valeur, on accumule cette valeur dans un ensemble. Le produit cartésien des états par le contexte de compilation des stimuli forme le contexte de compilation de l automate. La sortie est le produit des états suivants et de la production de la machine (Llopis et al., 1996). Après synthèse les registres nécessaires à la conservation de l état sont insérés entre l état suivant et l état courant qui forment une boucle. 3.4. Représentations numériques, codage La représentation numérique des objets n est pas un choix neutre en regard de l efficacité cherchée. Pour ne citer que quelques possibilités, en voici trois : encodage ordinal : chaque objet d une collection apparaissant sur un arc est représenté par son numéro d ordre, ce qui garantit à la fois l unicité et la minimalité du chemin de données, avec l obligation d une implantation de couches interfaces assurant l échange entre objet et index en entrée et en sortie. Si l ordre d indexation est quelconque, la complexité des circuits générés peut l être également, entrainant des résultats décevants. encodage par typage : lorsqu un type est associé à un arc du graphe, ce type peut se voir attribuer des fonctions d encodage et de décodage programmables. Cette technique donne le contrôle de la représentation numérique et permet de borner la complexité des opérateurs, peut-être au détriment de la dimension des chemins de données. Elle est utilisée pour les corps de Galois pour obtenir une représentation numérique que l on sait bonne (voir section 5.2). encodage par valeur : il utilise la classe de l objet pour décider de la représentation numérique, par exemple représentation en base deux des entiers naturels. On rappelle que le conditionnement technologique d un PLA s effectue en utilisant des outils externes à la plateforme (SIS, MVSIS, PPart) en ciblant une technologie logique LUT-n.

Synthèse portable avec MADEO 11 3.5. Intégration dans les langages et définition de la séquentialité La construction de chaînes de synthèse de haut niveau, portables sur le reconfigurable, est facilitée par l archivage de composants en base de données et par des formats d échange standards. Plusieurs expérimentations ont été menées dans cette direction : BSS, outil de synthèse d architecture orienté vers les traitements intensifs en signal et image : interface XML spécifiant des réseaux flots de données associés à un automate de contrôle (Diguet et al., 2000). PIPs, outil de transformation de programme investigué en vue de la production d accélérateurs vectoriels : production d un automate associé à un cœur de boucles, décrit en Smalltalk-80 à partir du compilateur source (Ancourt et al., 1996). RT-Builder, outil méthodologique appuyé sur le langage synchrone Signal(Le Guernic et al., 1991) : partitionnement du graphe flot en segments combinatoires synthétisés par Madeo, et reconstruction par insertion des retards, puis synthèse physique. un modèle de programmation concurrente s appuyant sur des processus Smalltalk communiquant par canaux bloquant. Madeo ne décide pas de l emplacement des registres dans le circuit ou de les déplacer. Cette gestion des registres peut être faite en amont de la spécification haut-niveau, et en aval sous forme de retiming du circuit obtenu. La prise en compte des registres définit l organisation des calculs, éventuellement en liaison avec un modèle de programmation particulier. Elle peut assurer un parallélisme de flot entre différentes zones du circuit et limiter les chemins critiques, par exemple pour un pipeline ou un circuit systolique. Elle permet, d autre part, de mémoriser des variables d état. 4. La synthèse physique 4.1. Modèle micro-architectural abstrait et modèles concrets Les micro-architectures des circuits reconfigurables sont décrites sur un modèle objet, que l on qualifie d abstrait, et qui autorise la description de niveaux hiérarchiques, de réplications de motifs et de capacité à router des signaux, ou des bus. Les éléments de calcul logiques ou numériques sont implantés dans ce modèle et on leur associe une sémantique (logique, numérique, mémoire,... ). Cette description est le modèle concret d un composant reconfigurable, qui sera développé pour permettre les opérations de synthèse physique. La première étape de la prise en charge d une nouvelle architecture consiste à rechercher ses primitives architecturales significatives : nœuds de calculs, mémoires, registres, canaux de communication, points de connexion programmables, aiguillages. Ces composants sont caractérisés sur la base de classes paramétriques disponibles.

12 Technique et science informatiques 7/2006. SYMPA En second lieu, les mécanismes de structuration sont utilisés pour bâtir le modèle concret. Les pavages permettent de décrire des matrices régulières d éléments, les agglomérats permettent de regrouper logiquement des éléments au sein d un même conteneur (par exemple un CLB, constitué de plusieurs LUTs). Chacune des entités est nommée pour autoriser des référencements ultérieurs, directs ou accompagnés d un adressage géométrique. Ces deux mécanismes, couplés au lien systématique contenu contenant, permettent de définir des adressages relatifs (la cellule à ma gauche), semi relatif (la cellule le plus à gauche sur ma ligne) ou absolu (la cellule 1@5). Le routage s appuie sur ces mécanismes. La description des architectures peut être menée interactivement ou réalisée via un langage parenthésé, dont les mots clés permettent de décrire les primitives, les objets composés, et les connexions entre ressources. Ce langage supporte la notion de variable, pour pouvoir décrire des familles d architecture paramétriques où la largeur des canaux de routage, la taille de la matrice, peuvent être modifiées en prospection architecturale. Cette caractéristique est très intéressante car en utilisant la généricité des outils de bas niveau, il est possible d observer le comportement conjoint architecture-algorithme face à un benchmark en faisant évoluer l un ou l autre pour chercher une solution optimale. Les micro-architectures ne sont donc pas nécessairement un constat, mais peuvent être calculées. 4.2. Outils et algorithmes pour la synthèse physique La couche de synthèse physique doit construire une allocation de ressources de calcul et de routage à partir d un réseau de composants conformes à l architecture. Cette allocation (un circuit) peut participer à un système avec un statut de processus, présente des caractéristiques géométriques et physiques que l on loge dans le composant, et présente l intérêt pratique de permettre la construction d une configuration, généralement appelée bitstream. Alternativement à la construction complète d un composant, il est bien sûr possible d extraire une configuration physique ou semiphysique de la base de données existante pour obtenir la fonction cherchée. Les algorithmes pour la synthèse physique implantés dans Madeo sont majoritairement empruntés à la littérature sur les FPGAs (Betz et al., 1999), le problème traité ici étant la construction d outils ayant un niveau d abstraction supérieur, opérant sur les architectures concrètes au travers de son modèle abstrait. Le placement-routage Le placeur routeur prend en entrée une liste de portes logiques LUT-n et applique une stratégie de type PATHFINDER (McMurchie et al., 1995) en arbitrant entre les différents signaux à router lors d un conflit sur une ressource. Le routage point à point d un signal repose sur l algorithme de routage en labyrinthe proposé par Lee (Lee, 1961). Lors de la phase de description d architecture (section 2.3), il est possible de paramétrer le coût d allocation des différentes ressources pour en optimiser l utilisation.

Synthèse portable avec MADEO 13 La fonction générique calculant le coût de placement fournit un estimateur variable en fonction de la longueur des connexions vers les cellules environnantes. Ce coût est calculé à chaque phase du recuit simulé et est utilisé par le placeur. L éditeur de circuit L éditeur régulier permet la réplication programmée d éléments de circuit. Ces programmes sont des entrelacements de synthèses physiques élémentaires, d extractions de caractéristiques géométriques, de commandes de réplications et de routages de canaux. Ici encore les programmes sont portables, avec les contraintes de l espace disponible sur un FPGA. Les opérateurs et les circuits réguliers sont construits de cette manière. La figure 3 montre la disposition de l algorithme de tri linéaire pour le calcul de fiabilité d un turbo décodeur, conditionné en serpentin sur une surface carrée par un petit programme Smalltalk d environ une page. Le floorplanning Cet outil est basé sur l algorithme TCG (Lin et al., 2001) qui représente les dispositions géométriques comme un assemblage de rectangles et une liste de contraintes sur leur position relative. Quatre opérations de base peuvent être appliquées sur un composant : la rotation, l échange de position entre deux modules, l inversion de la relation entre deux modules, et la translation. Ces différentes opérations sont utilisées dans un recuit simulé dont la fonction de coût intègre la boite englobante globale de l agencement, le dépassement d une boite englobante fixée comme contrainte et le coût d interconnexion entre les modules. La pénalité appliquée sur la boite englobante augmente avec la décroissance de la température. La boite englobante par défaut (contrainte initiale) est celle de l agencement par défaut avant optimisation, mise à l échelle selon un facteur de 0.8. L algorithme n étant pas déterministe, le résultat obtenu n est pas forcément optimal. Les composants manipulables pouvant être hiérarchiques, le floorplanner traite les composants de niveau le plus bas en premier lieu. Ceci implique de recalculer la boite englobante de chaque module à tous les niveaux du floorplan. Production des configurations et environnement matériel Après construction d un circuit, il devient possible d extraire l état des points de configuration que l on ordonnera dans un bitstream. En se basant sur les informations de nommage des différentes ressources introduites au moment de la description d architecture (section 4.1), il est possible d extraire une forme textuelle intermédiaire qui doit être reconditionnée en fonction du protocole de chargement du circuit. Plusieurs FPGA ont été modélisés partiellement ou complètement. Dans le cas du xc6200 et du FPGA basse consommation de G. Varghese(Varghese et al., 1999) la production complète des bitstreams était possible. Le banc de test actuel est un Virtex 1000 dont la configuration n est pas publique, et qui est programmé en recopiant la description des circuits vers un outil d interfaçage nommé JBit (Guccione et al., 1998) qui permet de générer des configurations qui sont ensuite téléchargées vers une carte PCI sur laquelle les tests sont effectués.

14 Technique et science informatiques 7/2006. SYMPA Figure 3. Calcul de la recherche du symbole le moins fiable d un turbo décodeur BCH(128,120,4) placé-routé sur un modèle Virtex 1 (version cascadée de la section 5.1). L entrée est en haut à gauche, la sortie au centre, à droite. 5. Synthèse logique : étude de circuits turbo décodeurs Cette section concerne une étude de cas sur le turbo décodeur qui a été déjà développé à l ENSTBr en utilisant des méthodes classiques de conception (approche utilisant SystemC de CoCEntric (Piriou et al., 2004)). Deux parties de l algorithme du turbo décodeur sont ici reprises en utilisant la plateforme Madeo (Andriamisaina et al., 2005) : la recherche des symboles les moins fiables et le calcul des syndromes. Après avoir donné les conditions de l étude menée, nous dressons un bilan comparatif afin de mieux quantifier l apport de la plateforme de synthèse Madeo pour ce type d application. Les codes correcteurs d erreurs (codage de canal) sont des solutions permettant d améliorer la qualité des communications numériques. Le principe du codage canal est d introduire de la redondance dans la séquence d informations binaires dans le but de corriger les erreurs de transmissions à la réception. Les turbo codes sont une famille de codes correcteurs d erreurs construits par concaténation de codes élémentaires (Berrou et al., 1993). Ils sont le résultat de deux innovations majeures : la concaténation de deux codes pour le codage et le décodage itératif. Le processus itératif proposé par R. Pyndiah en 1994 (Pyndiah et al., 1994) consiste à effectuer un décodage des lignes suivi d un décodage des colonnes à l aide d un décodeur élémentaire EPSP (Entrées Pondérées et Sorties Pondérées) (voir figures 4 et 5). Le décodage itératif fournit de bonnes performances avec un faible niveau de complexité. Actuel-

Synthèse portable avec MADEO 15 lement, ces codes sont considérés comme étant les plus efficaces pour le codage avec des gains de 2 à 4 db par rapport aux codes correcteurs d erreurs classiques. Matrice reçue Décodage des colonnes (demi itération) Reconstruction de la matrice Décodage des lignes (demi itération) Reconstruction de la matrice Décodage des colonnes (demi itération) Figure 4. Processus itératif de décodage. α R F k + W k + k * + R + Décodage d une ligne(ou d une colonne) k de la matrice D k R k Délai Figure 5. Décodeur élémentaire avec R k information reçue du canal, R k information venant de la demi-itération précédente, W k information extrinsèque, R + k information envoyée à la demi-itération suivante, D k le mot décidé, α paramètre de pondération du décodeur propre à chaque demi-itération. A chaque demi-itération, le décodeur exploite le décodage de l itération précédente et il délivre en sortie l apport du décodage courant. Chaque demi-itération se déroule comme l indique la figure 5. Ce décodeur dispose de deux entrées et de deux sorties. La première entrée reçoit le mot d information R k du décodage précédent. Lors de la première demi-itération, cette information est égale au mot reçu du canal. Le décodeur effectue le décodage EPSP des lignes ou des colonnes du mot et délivre en sortie le nouveau mot R + k tandis que la deuxième sortie délivre une copie du mot R k. Lors de la dernière demi-itération, c est la décision sur le mot D k qui est retenue. L algorithme de décodage du code élémentaire BCH (128,120,4) suit les premières étapes suivantes : 1) Réception du mot R k 2) Recherche des 5 symboles les moins fiables pour les 128 symboles du mot reçu, à partir des fiabilités de chaque symbole. 3) Construction des vecteurs de test 4) Calcul du syndrome du 1 er vecteur de test : S 1 = r (α) = 127 j=0 r j αj où r j représente un bit du vecteur de test et α j est un élément du corps de Galois GF(128). Le syndrome permet de détecter une erreur éventuelle dans le vecteur de test considéré. Il est de valeur nulle si et seulement si le mot reçu est un mot de code. Par conséquent, un syndrome non nul indique une erreur de transmission. 5) Calcul des syndromes pour les 15 autres vecteurs de test : S i = S 1 j pos

16 Technique et science informatiques 7/2006. SYMPA MF(j) où pos-mf(j) est la position du ou des bits inversés dans chaque vecteur de test. Les étapes suivantes de l algorithme sont : la correction des 16 vecteurs de test, le calcul des métriques, la sélection du mot décidé et des mots concurrents, le calcul de la nouvelle fiabilité pour chaque symbole du mot décidé, le calcul de l information extrinsèque et l addition avec le mot reçu du canal. 5.1. Programmation d éléments de turbo décodage Dans le cadre de l étude du turbo décodeur, on s intéresse à la recherche des 5 symboles les moins fiables (étape 2) et au calcul des syndromes (étapes 4 et 5). Pour la modélisation des différents calculs, on travaille directement au niveau des équations de l algorithme de décodage en manipulant les données de manière abstraite. Cela implique la définition d une arithmétique spécifique notamment pour le calcul du syndrome. Modélisation de la recherche des 5 symboles les moins fiables Cet algorithme correspond à la recherche des 5 symboles qui ont les plus petites fiabilités parmi les 128 symboles que l on reçoit en entrées. On récupère les valeurs ainsi que les positions des fiabilités dans le vecteur des 128 symboles. La recherche du minimum se base sur un découpage hiérarchique effectuant la comparaison élémentaire de deux fiabilités en précisant leur position. Chaque fiabilité correspond à 4 des 5 bits d un symbole. La position de la fiabilité minimale pouvant varier de la place 0 à 127. fiabililité 0 1 2 3 127 fiabililité 0 1 2 3 127 position... position... comparaison élémentaire (a) comparaison élémentaire (b) Figure 6. Recherche des symboles les moins fiables et de leurs positions dans la version en cascade (a) et la version en arbre (b). On propose dans ce paragraphe deux organisations hiérarchiques basées sur ces comparaisons élémentaires : organisation en arbre ou en cascade illustrées en figure 6. Ces deux versions diffèrent essentiellement sur deux aspects : la dynamique des données et la latence du circuit. Dans l organisation en arbre tous les noeuds connectés directement aux entrées ont la même dynamique de valeurs notamment pour les positions des valeurs (cette position pouvant être codée sur 1 bit en sortie du bloc

Synthèse portable avec MADEO 17 0... n 1 n... 2n 1 0... n 1 n... 2n 1 motrecu motrecu motrecu motrecu... motrecu motrecu motrecu motrecu motrecu... motrecu + + + + + +... + + (a) + (b) Figure 7. Modélisation en cascade(a) ou en arbre du calcul du syndrome(b). élémentaire de comparaison) alors que dans la version en cascade le codage de cette valeur de sortie varie au fil de la progression dans la cascade. La latence du circuit alors atteinte dans le cas de la cascade est proportionnelle au nombre de comparaisons élémentaires alors que dans la version en arbre elle varie en fonction de sa hauteur. Pour trouver les 5 éléments les moins fiables, on réplique 5 instances des circuits précédents. La première instance calcule le premier élément le moins fiable avec sa position. La seconde prend en entrée à la position du moins fiable trouvé précédemment la valeur maximale, ce qui permet de trouver le deuxième élément le moins fiable ainsi de suite pour trouver le troisième, quatrième et cinquième élément le moins fiable. Une version synchrone séquentielle de la recherche du ou des moins fiables peut aussi être envisagée. En effet, la cellule de comparaison élémentaire peut être utilisée en version synchrone avec un rebouclage sur une des entrées pour effectuer le calcul du moins fiable au fur et à mesure que les symboles arrivent de manière séquentielle. Pour calculer 5 moins fiables, le mieux est de redéfinir une cellule de base pouvant définir les 5 dernières fiabilités minimales à partir des minimaux des itérations précédentes et de la fiabilité du symbole courant. Modélisation du calcul des syndromes Le calcul des syndromes utilise des éléments du corps de Galois pouvant être directement modélisés avec Madeo en utilisant un typage spécifique. Le calcul se fait sur une trame de 128 bits représentés par les éléments r j, combinés aux éléments du corps de Galois représentés par α j par l équation ci-dessous. Cette équation correspond donc à l addition d éléments du corps GF(128). La valeur de r j définit un filtre permettant de considérer ou non l élément de GF(128) qui lui est associé dans la somme. 127 n 1 S 1 = r j 2n 1 αj = r j αj + r j αj + + j=0 j=0 j=n 127 j=128 n r j αj

18 Technique et science informatiques 7/2006. SYMPA Cette équation a été découpée en utilisant des éléments de base de taille variable pouvant prendre en compte l addition de 2(n = 2), 4(n = 4) ou 8(n = 8) éléments du corps de Galois. Le calcul global du syndrome peut être effectué comme pour celui de la recherche des moins fiables en considérant une organisation en cascade d éléments de type motrecu ou une organisation en arbre (les additions se faisant dans le corps de Galois). Ces deux organisations utilisant n éléments sont illustrées dans la figure 7. Le circuit permet de calculer non seulement le premier syndrome mais aussi tous les autres syndromes, car ceux-ci s obtiennent par permutation des bits de signe représentés par r j. Arithmétique dans le corps de Galois Le calcul du syndrome utilise une arithmétique dans le corps de Galois GF(128) (l opérateur + de la figure 7 ). Cette nouvelle arithmétique mise en place dans Madeo, a été construite de manière générique pour tous les corps de type GF(2 n ). Il existe cependant d autres propositions d implémentation (Paar et al., 1997). Dans les corps finis du type GF(2 n ), les éléments peuvent être représentés par des polynômes de degré n 1 dont les coefficients appartiennent au corps GF(2) (réprésentant l ensemble des entiers naturels modulo 2). On peut associer à ces éléments des valeurs binaires correspondant aux coefficients du polynôme associé. Ceci correspond à l encodage par typage pour Madeo mais tout autre encodage pourrait être utilisé. On montre dans la section 5.2 l influence du choix du codage sur la synthèse. Pour ces corps, on définit : l opération + comme un ou-exclusif des valeurs du codage binaire associées aux éléments du corps. l opération dans le corps de Galois s effectue en réalisant la division euclidienne par un polynôme générateur, cependant il est classique d effectuer ces opérations en utilisant des tables de logarithmes. La modélisation adoptée utilise des tables de logarithmes construites automatiquement en fonction du polynome générateur considéré pour le corps. 5.2. Synthèse et résultats avec Madeo Pour la synthèse de la recherche du symbole le moins fiable et celle du calcul du syndrome, les critères retenus ont été la granularité de la cellule de base à synthétiser par SIS, l organisation algorithmique du problème et l encodage des valeurs notamment pour des valeurs non entières comme dans le cas du syndrome. L impact de ces métriques est évalué en donnant la complexité du circuit en nombre de LUTs. Les résultats obtenus dans cette étude sont donnés pour une architecture cible constante dont l élément de base est une LUT à 4 entrées(lut-4). Les optimisations de haut niveau sur le graphe initial de calcul ont été systématiquement appliquées avant

Synthèse portable avec MADEO 19 d effectuer la synthèse. La recherche du moins fiable Une seule cellule de base a été retenue pour cette étude, basée sur une décomposition hiérarchique comprenant un comparateur de fiabilité rendant le minimum de deux fiabilités et un multiplexeur récupérant la position du minimum. La cellule de base a une complexité maximale de 38 LUTs se répartissant en 31 LUTs pour la comparaison de deux fiabilités, 7 pour le multiplexeur. En utilisant les techniques de re-synthèse de la section 3.2, cette complexité peut être légèrement diminuée à 31 LUTs pour les cellules ayant une dynamique minimale pour le codage de la position (premier étage de la version en arbre ou première cellule de la version cascadée). Ce qui donne la complexité suivante pour les deux versions : pour une organisation en cascade, on a 31 + 126 38 = 4819 LUTs pour une organisation en arbre, on a 31 64 + 38 63 = 4378 LUTs Ces résultats montrent que le gain est limité en utilisant la dynamique de données. La complexité des éléments associés aux éléments de base varie relativement peu, le seul élément fluctuant dans ce cas est le multiplexeur dont la complexité varie de 1 à 7 LUTs. Pour la décomposition en arbre, l utilisation dégradée de ces multiplexeurs peut réduire sensiblement l occupation de la surface à savoir 31 pour le premier étage, 33 pour le deuxième, puis 34, 35, 36 et 37 (soit globalement 31 64 + 33 32 + 34 16 + 35 8 + 36 4 + 37 = 4045). Pour la version en cascade, la dynamique des données étant plus irrégulière, les dégradations progressives et prédictibles en complexité du multiplexeur ne sont pas observées. Synthèse du syndrome Dans le cas du syndrome, la granularité de la cellule de base motrecu est prise en compte (variation du paramètre n de la figure 6). Le tableau 2 donne l impact de la granularité sur la complexité finale du circuit. La complexité en nombre de LUTs du tableau 2 correspond à une organisation algorithmique cascadée. La complexité minimale est trouvée pour une granularité de l élément de base égale à 4 bits ce qui peut s expliquer par la granularité choisie pour le FPGA cible (LUT-4). Granularité de la 2 bits 4 bits 8 bits 16 bits cellule de base nb LUTs 424 217 502 725 Tableau 2. Résultats des différents découpages en fonction du grain des éléments de base motrecu,pour une organisaton en cascade. Le tableau 3 montre l impact de l encodage des éléments du corps de Galois et de l organisation algorithmique. Si l on change l encodage de ces éléments, encodage

20 Technique et science informatiques 7/2006. SYMPA Organisation encodage indexation algorithmique par typage (encodage ordinal) en cascade 217 217 en arbre 393 1876 Tableau 3. Impact de l encodage des valeurs sur la complexité du circuit en LUT(cas cellule de base 4 bits). ordinal au lieu de l encodage par typage correspondant à celui de la section 5.1, on obtient des solutions plus coûteuses en surface. L organisation en cascade donne un résultat plus intéressant en surface car tous les opérateurs + profitent des simplifications effectuées au niveau de la cellule motrecu, ce qui n est pas le cas dans la version en arbre. Comparaison avec les résultats de SystemC Les résultats obtenus ont été comparés avec les résultats issus de la modélisation faite en SystemC à l ENSTBr (Piriou et al., 2004). L approche SystemC repose sur une description RTL de l algorithme de décodage. Par exemple, pour le calcul du syndrome sont utilisés une mémoire de coefficients correspondant aux éléments du corps de Galois et des additionneurs à base de ou-exclusifs. La synthèse est ensuite effectuée avec SystemC Compiler de Synopsys (SYNOPSYS 2002) ciblant des FPGAs de même granularité que Madeo. Madeo effectue une synthèse à partir des équations abstraites proposant des variations architecturales (variations sur l organisation hiérarchique). Les expressions utilisant des constantes entières ou non comme celles du corps de Galois sont simplifiées avant d être synthétisées. Madeo SystemC Syndrome 217LUTs 580LUTs Recherche 4045LUTs 5 127 comparaisons(4 bits) du moins (version 4 127 décalages de 2 registres fiable combinatoire) composés de 5 7 et 5 4 bascules Tableau 4. Comparaison des complexités des circuits obtenus par Madeo et SystemC. Pour le calcul de syndrome un traitement parallèle des mots reçus a été effectué avec Madeo et SystemeC permettant ainsi leur comparaison. Cependant, pour la recherche des 5 symboles les moins fiables, la version SystemC utilise un traitement complètement séquentiel alors que l approche Madeo reste combinatoire. Une solution séquentielle avec Madeo reste à étudier afin de raffiner la comparaison. Un circuit placé-routé avec les outils physiques de Madeo (version combinatoire et cascadée de la recherche des moins fiables) est donné dans la figure 3.