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