Une chaine de CAO générique pour le reconfigurable
Transcription
Une chaine de CAO générique pour le reconfigurable
MADEO Une chaine de CAO générique pour le reconfigurable Loïc LAGADEC Équipe Architectures&Systèmes UBO – France http://as.univ-brest.fr Présentation rapide • Madeo est une chaine de cao pour les architectures reconfigurables • Objectifs: Favoriser la réutilisation d'outils, d'applications (portabilité), dimensionnement d'architectures pour un jeu d'applications, choix ouvert d'arithmétiques • Moyens: Approche modulaire; disjonction outils/architectures et applications/plages de données • Durée: Début des travaux en 95/96 Plan de l'exposé • Introduction – Rap p el su r les A rchitectu res Recon fig u rab les – Rap p el su r le cod ag e V H D L • MADEO – C ou che hau te – C ou che b asse • Conclusion Usages des technologies reconfigurables Deux usages principaux pour les architectures reconfigurables Rem placem ent d’ ASICs • – Prototypage – « Petit es » séries – Support m ultitâche • Besoins évolutifs – cadre em barqué – Accélérat eur m atériel Rapidit é, faible coût De m oins en m oins pet it es Reconfigurat ion Exécution reconfigurable Données configuration Architecture reconfigurable Circuit Performances Flexibilité Résultat Perspectives Les évolutions matérielles sont rapides – N ou v elles caractéristiq u es (cap teu rs, SOC , ...) – N ou v elles fon ction n alités (con fig u ration d y n am iq u e) – N ou v el u sag e (In tég ration sy stèm e, p artag e, ...) – N ou v elles m étriq u es (b asse con so,...) – Séries exp érim en tales, ... – N ou v elles techn olog ies – Qu an tité d e siliciu m et cou ts d e réalisation au g m en ten t Les limitations D'une part les ressources augmentent mais sont mal hierarchisées (problème d'architectures) D'autre part la programmation s'effectue en aveugle par rapport à l'architecture (problème d'outils, structuration en couches) Enfin l'expression des traitements à implanter est héritée du VLSI (problème de niveau conceptuel en entrée) Avons nous compris la richesse de ces architectures? VHDL vs Programmation symbolique • contexte) H au t n iveau d' abstraction Préserver la sémantique de haut niveau (indépendante du • Auto adaptation au contexte (valeurs + cible) algorith m e M appin g H igh level specification O O with ou t types VH DL im plem en tation hard implementation Bas n iveau ASIC FP GA P rocessor FP G A m ix ed arch . Flot M adeo Global Flot de conception 10 Le code • Le code est symbolique – Fon ction n el – N on ty pé • Le code est situé dans une classe – Les op ération s p ortan t su r des ob jets u tilisen t u n e év alu ation classiq ue – C ert ain es op ération s son t stru ctu ran tes (ap p els fon ctionn els) • Le typage est extérieur • Le résultat est contextuel Compilation du code de haut niveau • La compilation respecte l'écriture du code puis des optimisations sont réalisées – C haq u e op ération p rod u it u n n oeu d – Les n oeu d s p eu v en t etre hiérarchiq u es (év alu ation paresseu se) • La hiérarchie peut etre manipulée – Su iv an t d es ann otat ion s – A la m ain – En fon ction d u con texte Optimisations • Les optimisations sont classiques – Factorisation – Su pp ression d e cod e m ort – Prop ag at ion d e con stant es – ... • On ajoute essentiellement l'inférence de type 13 Inférence de types • L'inférence de type propage les types – d 'en trée – calcu lés en sortie des op érateurs d'opérations en opérations • Un type est une énumération de valeurs possibles • Seuls sont considérés les n-uplets possibles de sorte que la logique produite est minimale • Un autre bénéfice est de différer la considération de la sémantique des opérateurs exemple: changer l'arithmétique 14 Synthèse logique O O LU T • Chaque noeud connait sa “table de vérité ” • Les valeurs peuvent etre encodées • On obtient un PLA à minimiser (expresso) • La synthèse logique repose sur SIS (UC Berkeley) Bin ary LU T P LA RT L (Blif) Back en d Exemple: M ultiplication flottante • Chaque nombre est représenté par trois valeurs – sign (0,1) – e xponent (from -x t o +y usin g log 2( x+y +1) b its) – significa nd (from 1 to 2 - ε u sin g ab s (log (ε)) b its) 2 • sign = signA + signB modulo 2 • significand = trunc (significandA * significandB) • exponent = exponentA + exponentB + shift Exemple: M ultiplication flottante | sign exp significand normalize | sign := self computeSignFor: signA and: signB. significand := self computeSignificandFor: significandA and: significandB. exp := self computeExponentFor: exponentA and: exponentB. normalize := self normalizeSignificand: significand. ^Array with: sign Appels fon ction n els with: (normalize at: 1) Resu ltat tabu lé with: exp + (normalize at: 2) Compilation / optimisation Layout (Floorplanning + placement routage) Ra pp e l • L' objectif est de perm ettre une portabilité transparente • Pour cela les outils de bas niveaux doivent – Etre à m em e d'im plém enter les circuits optim isés – Fournir un retour d'inform ation aux outils précédents – Offrir une API stable • Les outils disponibles perm ettent ils cela? NON • appels à des librairies d'opérateurs • com portem ent im prévisible • évolution incontrolable ALORS • créer des outils de bas niveau adaptés Contraintes sur les outils de back end • Il faut: – Production rapide d’ outils – Disponibilité d’ outils pour la prospection – Les m êm es outils pour toute architecture Besoins Propriétés – Outils adaptables (ex: nanotechnologies) – Pleine exploitation du m atériel par les outils – Support pour intégration systèm e Fonctionnalités Solu t ion pr op osé e • Transposer une solution qui a fait ses preuves • Suivre les recom m andations de la m éthodologie objet – Abstraction des trait em ents – Modélisation du support • Disjonction entre les traitem ents à réaliser et le support m anipulé Madeo-Bet M a d e o-b e t • Définir une représentation unifiée des différentes architectures possibles • Définir un ensem ble d' outils agissant sur cette représentation • Il faut garantir – Que toute architecture est représentable de la sorte (possibilité d'extension) – Que la description de l'architecture reste un procédé léger et rapide (com pilation) – Que les outils sont efficaces (algorithm es reconnus) et répondent aux besoins pré-cités (tolérance aux pannes, ...) – Que les outils sont facilem ent com m andables, inter-opérables, et le cas échéant, rem placables Flot M adeo-Bet Le langage • Un langage de description de la cible – D écrit les d ifféren ts élém en ts d e l'architectu re – D écrit la rep résen tation d e l'architectu re • Les éléments sont de deux types: – Stru ctu ration hiérarchiq u e • Pavage • Composite – Elém en t atom iq u e • Fonction • Canaux • Multiplexeurs ... + Référence à des objets déjà décrits Les outils • Les outils sont définis de manière génériques – V isu alisation / C om man d e – P& R (L ee, PathFin d er) – Floorp lan n in g / T racé rég u lier – D iv erses m étriq u es – In terfaçag e M atériel – Sim u lation à d ifféren ts n iv eau x – Prosp ection architectu rale • Les outils se spécialisent en fonction du modèle d'architecture • Les outils constituent un cadre ouvert Simulation des circuits Interface avec des outils tiers Virtex 1 / Jbits / Celoxica Board JBits H a r d w a re • Sous réserve de disponibilité d'une l'API, des outils tiers peuvent etre exploités • Exemple, programmation de Virtex en appui sur JBits Architecture hétérogène datapath m em ory FP GA • Architecture hétérogène • FPGA + reconfigurable datapath • Nouvelle description dans le langage • Nouvelle analyse de code (extraction du controle) • Nouveaux algorithmes de placement (synthèse d'architecture,…) Specialisation des ou tils Prospection architecturale • Il est possible de faire varier les architectures – D e façon p rog ram m ée – Par an n ot ation d an s le p rogram m e • On déclenche des P&R et on collecte les résultats Conclusion Madeo garantit : – Fort deg ré d e réu tilisation d es ou tils – T em p s et cou ts d e d év elop pem en t réd u its – U n e p ortab ilité d u cod e sou rce des ap plication s (y com p ris en capsulan t u n e sém ant iqu e m étier) – U n e op timisation au tomatiq u e d es circu its – La p rise en charg e d 'architectu res n ou v elles / d e techn olog ies ém erg en tes (molécu laires, QC A , ...) – La d éfinition d 'arithm étiq u es arbitraires (RA ID / reedsolomon G F16, T u rb o C od e en G F128) Madeo est un cadre de développement ouvert Merci de v ot re at t ent ion ht t p://as.univ-brest .fr