Vous êtes sur la page 1sur 28

Du micro-processeur au circuit FPGA

une analyse sous langle de la reconguration


Raphal David* Dominique Lavenier** Sbastien Pillement*
* LASTI - ENSSAT / INRIA - R2D2

6, rue de Krampont F-22300 Lanion Raphael.David@enssat.fr, Sebastien.Pillement@enssat.fr


** IRISA - CNRS

Campus de Beaulieu F-35042 Rennes Dominique.Lavenier@irisa.fr


RSUM. ABSTRACT. MOTS-CLS : micro-processeur, architectures recongurables, circuit FPGA, reconguration, recongurable computing, systme recongurable KEYWORDS: microprocessor, recongurable architectures, FPGA, reconguration, recongurable computing, recongurable systems

2e soumission Technique et science informatiques, le 15 juillet 2003.

2e soumission Technique et science informatiques.

1. Introduction Les micro-processeurs et les circuits FPGA partagent la facult de sadapter, par programmation, un traitement numrique particulier. La manire de les programmer est certes diffrente, mais ils ont en commun de possder un support (une mmoire) leur permettant de stocker temporairement la spcication de la tche accomplir. Du contenu de cette mmoire dpend la nature du traitement. Les micro-processeurs modernes, issus du modle Von Neuman, sont plus enclins lexcution squentielle dun traitement, mme sils intgrent une batterie dunits fonctionnelles et de longs pipelines pour extraire au mieux le paralllisme prsent au niveau des instructions. A loppos, les circuits FPGA prsentent un modle dexcution spatial rpartissant le traitement sur un assemblage dunits fonctionnelles spcique ce traitement. Dans le premier cas, chaque cycle machine spcie quelles sont les units fonctionnelles actives, quels types doprations doivent tre effectus, et comment les donnes transitent des espaces de stockages aux units fonctionnelles. Dans le second cas, pour un traitement donn, larchitecture est ge : les donnes sont traites suivant un schma pr-tabli et transitent via un rseau dtermin doprateurs. Entre ces deux extrmes, est apparue, peu aprs la mise sur le march des composants FPGA par la socit Xilinx en 1985, une classe darchitectures baptise plus ou moins consensuellement architecture recongurable. Au dpart fortement li la technologie FPGA, le concept a volu vers un statut autonome, la fois motiv par une recherche intense et par les progrs prodigieux des technologies dintgration. On parle aujourdhui de calcul recongurable (ou recongurable computing) pour faire rfrence ces architectures et aux modles dexcution associs. Largumentaire classique est que le concept darchitecture recongurable allie la fois les avantages des circuits FPGA, voire des circuits VLSI, (rapidit obtenue par une spcication spatiale des algorithmes) et des processeurs (exibilit de la mise en oeuvre par programmation des ressources). On reconnat nanmoins une difcult de programmation vidente par rapport aux processeurs. Cette dichotomie grossire fait cependant abstraction de toutes les richesses et des potentialits propres au calcul recongurable : du fameux bitstream des circuits FPGA jusquaux jeux dinstructions RISC des micro-processeurs, il existe une multitude dalternatives architecturales pour programmer sur silicium un traitement numrique. Les avantages, tout comme les inconvnients, sont multiples et ne svaluent pas par rapport un critre unique ; ils se mesurent plutt par rapport une varit de caractristiques telles que la exibilit, le cot, la consommation, les performances, les domaines dapplications, les outils de programmation, etc. Dans cette article nous analysons les circuits programmables sous langle de leur exibilit. Celle-ci est mesure par le potentiel de leur reconguration, cest dire leur capacit adapter leurs ressources en fonction dun traitement. Il convient donc, ds lors, de prciser ce que nous entendons par reconguration. Une architecture matrielle est gnralement constitue dune collection dlments de calcul et de sto-

Du micro-processeur au circuit FPGA

ckage, dun dispositif dchange dinformation entre ces lments et, ventuellement, dun contrleur pour grer lensemble. Une conguration prcise la fois la fonctionnalit des lments et les chemins de donnes entre ces lments, voire le contrle. Le terme reconguration apporte, quant lui, une notion supplmentaire de dynamicit. Il exprime le fait quune conguration nest pas xe dnitivement (comme pour les circuits ASIC), mais quil existe un mcanisme qui, au cours du temps, puisse modier la fois la fonctionnalit des lments de calcul et leur interconnexion. Ainsi, un micro-processeur possde une capacit de reconguration dicte par une liste pr-dnie et borne doprations arithmtiques et logiques, et par un choix restreint de transferts de donnes entre oprateurs, registres et mmoires. Une conguration tant rduite, elle peut alors tre code de manire concise et mise en oeuvre extrmement rapidement, e.g. chaque cycle machine. Typiquement, elle tient sur 32 bits et reprsente le jeu dinstructions dun processeur. lautre extrmit, un circuit FPGA offre une libert totale sur le choix des oprateurs, leur nombre, et leur interconnexion. Mais le prix est dans la description de cette organisation puisquil faut, pour simplier, tout spcier partir dquations boolennes. La taille des bitstream des derniers composants FPGA peut atteindre plusieurs millions de bits, ce qui, de fait, interdit une reconguration frquente du composant. Les architectures recongurables, quant elles, essaient de trouver un juste milieu pour autoriser plus de exibilit tout en limitant les pnalits dues la reconguration. Les recherches dans ce domaine visent essentiellement dterminer cet quilibre en explorant ce vaste espace de conception. Lobjectif de cet article est de balayer cet espace avec, comme critre principal, la reconguration. Ce critre sert de point de repre et, dans une certaine mesure, de critre de classication pour comparer la mallabilit des architectures et leur capacit rsoudre efcacement un traitement donn. Cette efcacit est principalement value dans cette tude sous langle des performances et de la consommation nergtique. La suite de larticle est structure de la manire suivante : la section 2 analyse la exibilit des circuits programmables en fonction de leur potentiel de reconguration et de la complexit de leur rseau dinterconnexions. La section 3 passe en revue les diffrentes architectures des circuits programmables, des processeurs jusquaux circuits FPGA. Elle examine partir du critre de reconguration, les ressources de calcul, le rseau dinterconnexion et leur usage. La section ??, quant elle, value lefcacit nergtique et les performances des diffrents paradigmes dexcution. Enn, la section ?? conclue larticle.

2. Flexibilit des circuits programmables Dans cette section, la exibilit des circuits programmables est analyse par rapport deux critres : le potentiel de reconguration des ressources de calcul et la structure du rseau dinterconnexion. Ce sont deux points essentiels car ladaptation

2e soumission Technique et science informatiques.

des ressources matrielles un traitement donn repose la fois sur la versatilit des oprateurs de base et leur aptitude sagencer dans lespace.

2.1. Le potentiel de reconguration Techniquement, la granularit de reconguration est un indice concret sur lequel on peut sappuyer pour envisager une premire analyse [RAB 97]. Ainsi, trois niveaux de reconguration sont-ils proposs : systme, fonctionnel et logique. Ils retent directement les trois types darchitectures dj mentionns : les micro-processeurs, les architectures recongurables et les circuits FPGA. 2.1.1. Niveau systme Typiquement, ce niveau de reconguration est celui des processeurs programmables. Il concerne essentiellement la fonctionnalit des units de calcul et lorientation du chemin de donnes (de/vers la mmoire et/ou les registres). Pour tre efcace, la quantit de donnes lire en mmoire dinstructions doit tre faible, ce qui induit des possibilits doptimisation relativement limites, notamment lorsque le traitement possde un fort potentiel de paralllisation. Ces architectures sont extrmement exibles et maintiennent un mme modle de programmation quelle que soit lapplication excuter. Par exemple, un processeur RISC (Reduce Instruction Set Computer) traite exclusivement des oprations registreregistre, un processeur de traitement du signal (DSP : Digital Signal Processor) des instructions mmoire-mmoire, etc. Dans la mesure o le modle de calcul est invariant, cette limitation est transparente et le passage dune application une autre nentrane aucune perte defcacit. Ici, chaque cycle machine entrane une nouvelle conguration du matriel : schmatiquement, une instruction est dcode pour activer certaines units fonctionnelles et indiquer les transferts avec les units de stockage (registres ou mmoire). La reconguration joue la fois sur les units fonctionnelles (effectuer une addition ou une soustraction, un ET ou un OU logique, etc.) et sur laiguillage des donnes via les bancs de registres. 2.1.2. Niveau fonctionnel Pour augmenter le potentiel doptimisation des processeurs standards, la rigidit des interconnexions des ressources (oprateurs arithmtiques ou logiques, ressources de mmorisation, gnrateur dadresses, etc.) peut tre assouplie. On dnit alors un nouveau grain dit fonctionnel ou ot de donnes. Dans ce cas, les distributions du contrle et des donnes sont ralises via des chemins diffrents. Dans la mesure o ces distributions sont ralises concurremment, la redirection des connexions peut tre dynamique ds lors que la quantit de donnes transmettre est rduite. Par rapport au niveau prcdent, le maintient dun mme modle de programmation est ici beaucoup plus dlicat. En effet, si les applications qui manipulent un

Du micro-processeur au circuit FPGA

grand nombre de donnes sont excutes efcacement avec des oprations mmoiremmoire, leur implmentation sur des architectures centres sur de larges bancs de registres est trs srieusement perturbe par les incessants transferts entre la mmoire et les registres. Dans le mme ordre dide, il est pnalisant de systmatiser des accs (lents) aux mmoires de donnes, la manire des DSPs, lorsque ce sont toujours les mmes donnes qui sont manipules. Ces deux exemples mettent en avant la complexit de la tche qui consiste dnir un modle de programmation commun un ensemble dalgorithmes. La rednition des interconnexions permet de saffranchir de cette difcult en autorisant le passage dun modle de programmation de type RISC un modle de type DSP, par simple transformation du pipeline dexcution. 2.1.3. Niveau logique Les architectures qui se situent ce niveau sont qualies de grain n en raison de la faible largeur de leurs chemins de donnes. La programmation opre au niveau logique sur des primitives de calcul manipulant des donnes binaires et sur leurs interconnexions. tant donne la quantit de ressources ncessaires la dnition de fonctions volues, ces rseaux sont trs complexes et ncessitent un trs grand nombre de donnes pour spcier la fois le traitement ralis sur chacune des primitives de calcul et lensemble de leurs interconnexions. En consquence, la frquence de programmation de ces circuits est faible et, en gnral, reste stable pendant un nombre de cycles consquent pour ne pas perturber lexcution de lapplication par des phases de gel trop frquentes. Cette limitation est contourne, dans certains composants, par la mise en place de chargement partiel (e.g. on ne modie quune partie de la mmoire de programmation du composant). En programmant une architecture au niveau logique, il est ainsi possible de dnir nimporte quel type de chemin de donnes en synthtisant les oprateurs requis par lapplication. Cette caractristique est intressante pour les traitements logiques pour lesquels chaque bit est susceptible dtre trait indpendamment du reste dun ot de donnes. Si cette exibilit facilite la spcialisation des chemins de donnes disposant dun fort paralllisme au niveau bit, elle est en revanche dfavorable aux traitements arithmtiques. En effet, lemploi de cellules standards limite fortement les possibilits doptimisation, et donc lefcacit des oprateurs synthtiss sur larchitecture, par rapport des solutions full-custom o ces oprateurs sont ddis au traitement dune opration unique (e.g. addition, multiplication).

2.2. Rseaux dinterconnexion Au sein dun composant programmable, le rseau dinterconnexion assure la distribution des donnes entre les diffrentes units fonctionnelles. Sa topologie a un impact de tout premier ordre sur les performances, la consommation et la exibilit du systme. Trois grandes catgories de rseaux [ZHA 99] peuvent tre distingues,

2e soumission Technique et science informatiques.

chacune tant caractrise par un temps de traverse, une complexit et une consommation. 2.2.1. Les rseaux dinterconnexion globaux Les rseaux dinterconnexion globaux garantissent une totale connectivit des ressources, au sens o chaque lment (calcul, mmorisation, contrle, etc.) peut potentiellement communiquer avec tous les autres. Les deux principaux motifs de ce type sont les rseaux de type crossbar et multi-bus. La exibilit de ces deux rseaux est identique et leur nature extrmement orthogonale simplie le dveloppement de larchitecture. Cependant, ces motifs sont complexes mettre en oeuvre de part leurs nombreux points dinterconnexion. De plus, leur consommation et leur temps de traverse sont proportionnels leur taille et au nombre dlments connects. Aussi, sachant que la surface crot comme le carr du nombre de modules connects et que le temps de cycle dcrot linairement dans le mme temps [ZHA 99], ce type de rseau est gnralement rserv aux systmes comportant peu dlments connecter. 2.2.2. Les rseaux dinterconnexion point--point Dans le monde des systmes multiprocesseurs, il existe plthore de topologies relatives aux rseaux point--point [VAR 94] dont le seul but est de fournir des connexions locales efcaces. Parmi ces motifs, on trouve notamment les rseaux en anneaux et les rseaux mesh 2-D gnraliss. Ce type de motif optimise les communications locales en temps et en surface tout en limitant le nombre de connexions. Ceci se fait cependant au prix de communications longue distance trs nettement dtriores par le fait que les communications entre deux modules ncessitent la traverse dun nombre de botes de commutations (SB : Switch Box) proportionnel la distance entre la source et la destination. tant donn que les dlais des commutations sont bien suprieurs ceux de la propagation des signaux le long des ls, les connexions longues distances sont lentes et consommatrices dnergie. Par ailleurs, contrairement aux rseaux totalement connects, les rseaux point--point sont trs peu orthogonaux et donc plus complexes exploiter. Les tapes de placement et de routage ont donc une importance toute particulire dans le ot de conception des architectures centres sur de tels motifs. 2.2.3. Les rseaux dinterconnexion hirarchiques Une notion de hirarchie peut tre adjointe aux topologies prcdentes pour pallier leurs insufsances. Ceci conduit alors la dnition de motifs tels que les rseaux hirarchiques segments, les rseaux en arbre ou encore les rseaux mesh hirarchiques. Pour ces derniers, larchitecture est dcompose en clusters lintrieur desquels les ressources sont interconnectes en favorisant les communications locales. Pour les connexions longues distances, un second niveau dinterconnexions, global, est dni.

Du micro-processeur au circuit FPGA

Celui-ci permet de proposer des communications inter-cluster efcaces en terme de performance et de consommation. Linconvnient majeur de ces topologies est la possibilit dtre confront des conits lors des communications inter-cluster. Ceci impose une dcomposition en clusters consciencieuse. Plus encore que pour les topologies prcdentes, le placement est donc ici une tape cruciale puisquil dtermine la forme et la surface des clusters. De mme, le placement des ports dinterface des clusters inue de manire signicative sur lefcacit de la connectique. En terme de performance, lefcacit sobtient nalement au prix dun dveloppement fastidieux.

3. Classication et caractrisation Compte tenu de la dimension de lespace de conception, il apparat ncessaire de dnir un critre principal de classication autorisant une rapide valuation des architectures proposes dans la littrature. ce titre, nous considrons le grain de reconguration et les trois niveaux dnis prcdemment sont repris. Pour chacun deux nous discutons des ressources de calcul et du rseau dinterconnexion en nous appuyant sur de nombreux exemples de projet de recherche et/ou de produits commerciaux. Nous voquons par ailleurs les diffrents modes dutilisation de ces architectures et tudions limpact du mode de reconguration sur les performances du systme.

3.1. Le niveau systme Les architectures appartenant ce niveau sont tudies depuis de nombreuses annes et sont plus communment appeles les processeurs programmables (Fig. 1). Elles se dclinent sous de nombreuses formes en fonction de larchitecture de leur chemin de donnes (RISC, CISC, DSP) et de la mthode employe pour exploiter le paralllisme de lapplication (superscalaire, VLIW). 3.1.1. Les ressources de calcul Les ressources de calcul intgres dans les processeurs sont classiquement des units gnralistes telles que des UALs, capables de traiter les oprations les plus courantes. Certaines architectures disposent galement dunits plus spciques, adaptes des domaines applicatifs bien cibls. Lexemple le plus connu concerne les multiplieurs et les units de dcalages intgres dans les chemin de donnes des DSPs. Rcemment sont apparues des solutions architecturales plus volues, distribues sous la forme dIP, qui offrent la possibilit aux utilisateurs de spcialiser leur architecture en intgrant des units de calcul spcialises [BUR 00]. Pour exploiter ces nouvelles ressources de calculs, ces coeurs de processeurs doivent pouvoir modier leur jeu dinstructions. Les constructeurs proposant ces solutions doivent donc disposer

2e soumission Technique et science informatiques.

Bus mmoire

Mmoire Mmoire donnes donnes

Banque de registres Banque registres

Rseau dinterconnexions dinterconnexions


FU FU FU FU FU FU FU FU FU

ctrl
Mmoire Mmoire instructions instructions

Dcodage des instructions

Figure 1. Architecture gnrique des composants recongurables au niveau systme. Elle est constitue dun ensemble de ressources travaillant sur une banque de registres centrale. Les oprations sont ordonnances par un contrleur unique. doutils de conception performants, capables dadapter le ot de conception ces nouvelles instructions. Les processeurs CARMEL [EYR 98] et ReAL [KIE 98, HOR 98], proposs respectivement par Inneon technologies et Philips, sont des exemples darchitecture supportant lintgration de fonctionnalit ddies. Ces architectures sont bien souvent cites sous le terme de processeurs congurables [DAV 00]. Le nombre dunits de calcul intgres dans ces architectures est particulirement limit. Depuis les premiers processeurs qui ne disposaient que dune unique ressource de calcul, un certain nombre de progrs ont cependant t raliss. Aujourdhui, les processeurs les plus performants en intgre huit. La gestion de ces ressources de calcul est complexe et ncessite lexploitation de modles de programmation nettement plus volus que celui propos par John Von Neuman [HEN 96]. lheure actuelle, deux approches sont utilises. Lapproche superscalaire qui se traduit par lintgration dun support matriel lexcution concurrente de plusieurs instructions. Lapproche VLIW qui se base sur des outils de dveloppement performants pour extraire un maximum de paralllisme au niveau instructions (ILP : Instruction-Level Parallelism) dans lapplication. Cette exploitation du paralllisme au niveau instructions permet daugmenter sensiblement les performances des processeurs. Cependant, cette augmentation saccompagne typiquement dune sous-utilisation des ressources. Malgr les nombreux mcanismes architecturaux dvelopps et mis en uvre dans le cadre des processeurs hautes performances (prdiction de branchement, excution conditionnelle, buffer de prchargement, etc.), la leve des dpendances de donnes et lextraction du paralllisme dinstructions (dans des descriptions procdurales) sont des tches aujourdhui encore trop mal matrises pour exploiter pleinement le potentiel de ces architectures.

Du micro-processeur au circuit FPGA

3.1.2. Les interconnexions Dans ce type darchitecture, les diffrents lments constituant un processeur sont statiquement connects. Les implmentations ralises tant ncessairement de type temporel, tout transfert de donnes se traduit par le stockage de rsultats intermdiaires dans une le de registres. Labsence de exibilit des interconnexions se traduit donc par de lourdes pnalits en performances. En contre-partie, trs peu de bits sufsent orienter les donnes. Les chemins sont prciss directement dans linstruction et donc spcis chaque cycle. De ce point de vue, la exibilit est optimale puisque le processeur est capable dexcuter nimporte quelle application. 3.1.3. Usages Lun des principaux atouts des processeur est de supporter lexcution de structures de contrle complexes (branchements conditionnels, gestion dinterruptions, etc.). En effet, ce type de traitement ncessite une mise en oeuvre temporelle puisque dun cycle lautre, le comportement de larchitecture doit pouvoir tre adapt lenvironnement extrieur. Contrairement aux architectures qui vont tre dcrites dans les sections suivantes, et qui privilgient des implmentations spatiales plus efcaces lors des traitements rguliers, les processeurs programmables ne souffrent, dans ce contexte squentiel, daucune concurrence. La exibilit des processeurs programmables leur ouvre une quantit impressionnante de domaines dutilisation. Par voie de consquence, ils sont aujourdhui intgrs dans la quasi-totalit des systmes numriques. Que ce soit des ns de gestion du systme ou de traitement, le concepteur dispose dune palette de solutions lui permettant de rpondre la quasi-totalit des contraintes quil est susceptible de rencontrer. Les processeurs restent cependant aujourdhui encore incapables de rpondre conjointement des contraintes de haute performance et de faible consommation. La principale explication cet tat de fait est quil est extrmement dlicat de limiter les gaspillages dnergie associs la lecture et au dcodage des instructions, de mme que ceux associs aux accs aux donnes dans de larges bancs mmoire.

3.2. Le niveau fonctionnel Les architectures de ce niveau peuvent tre schmatises par la gure 2. Larchitecture gnrique consiste en un ensemble doprateurs arithmtiques ddis ou programmables, relis par un rseau dinterconnexions, qui communiquent vers lextrieur au moyen de blocs dentres/sorties congurables. En fonction de laspect programmable ou ddi des ressources de calcul, les modles de programmation peuvent tre trs diversis. Par la suite, nous caractrisons cet espace de conception en se basant sur des ralisations concrtes issues de diffrents projets (Pliades [RAB 00], RaPiD [CRO 99],

10

2e soumission Technique et science informatiques.

Chameleon [TAN 00], Morphosys [LEE 00], FPFA 1 [SMI 02], PACT XPP [BAU 01], Systolic Ring [SAS 01]), DART [DAV 03].
Oprateur ddi ou programmable
SB CU CU

SB

SB

SB

MUL
CU SB SB

ALU
SB

MEM
SB CU

AG
CU SB SB

MEM
SB

ALU
SB CU

Interconnexion reconfigurable

AG
SB SB

MUL
SB

ADD
SB

Entre/sortie reconfigurable

CU

CU

Figure 2. Architecture gnrique des composants recongurables au niveau fonctionnel. Elle consiste en un ensemble de ressources de calcul ddies ou programmables, relies par un rseau dinterconnexions recongurable. 3.2.1. Les ressources de calcul Ici, deux approches sont utilises pour dnir les ressources : elles dcoulent des modles de programmation de ces architectures. En effet, dans le cadre de certains projets, les concepteurs ont jug bon de distribuer le contrle dans larchitecture, et de dnir une hirarchie dans laquelle le plus bas niveau pour but de dnir la fonctionnalit de loprateur. Dans ce cas, les units de calcul sont relativement complexes et capables de supporter plusieurs oprations. Elles sont typiquement constitues de plusieurs oprateurs (e.g. multiplieur, UAL, registres dcalages, etc.) et disposent dun registre de conguration ou dun contrleur local. Ce type dapproche peut par exemple tre illustre par la gure 3 reprsentant la primitive de calcul du Systolic Ring. Lexploitation de ressources de calcul complexes, faite dans des projets comme Morphosys ou Chameleon, augmente sensiblement la exibilit de larchitecture mais se paie par une ventuelle sous-utilisation des ressources et par lintgration dun support local de conguration (un registre pour Morphosys ou Chameleon, un contrleur local pour Systolic Ring). Dautres architectures, telles que Pliades, XPP, DART ou RaPiD, se basent en revanche sur des primitives de calcul cbles dont les fonctionnalits sont dtermines en fonction du domaine applicatif. On trouve ainsi dans ces architectures des oprateurs tels que des multiplieurs, des UALs, des gnrateurs dadresses, des mmoires,
. Pour des raisons stratgiques, FPFA a rcemment t renomm MONTIUM (Mountain Chameleon) [P.H 03].

Du micro-processeur au circuit FPGA


C onfiguration A C alcul B

11

S1 S2 S3 S4 S5 S6 S7 S8

Reg File

ALU + MULT

C PT

Figure 3. Architecture de la ressource de calcul du Systolic Ring, le D-Node : elle consiste en un multiplieur et une UAL cbls travaillant sur des donnes stockes dans une le de registre. Elle peut tre contrle localement par le biais dune mmoire de conguration pouvant stocker jusqu huit instructions.

etc., et ventuellement certaines fonctions plus spciques destines acclrer certains traitements, e.g. oprateur ACS (Add-Compare-Select) pour le codage de Viterbi ou loprateur SAD (Sum of Absolute Difference) pour lestimation de mouvement. lextrme, certaines plateformes, comme Pliades, dnissent tous les oprateurs de larchitecture en fonction du domaine applicatif [ABN 96]. 3.2.2. Les interconnexions Compte-tenu du nombre important de ressources de calcul quelles intgrent, ces architectures exploitent typiquement des rseaux linaires ou des rseaux hirarchiques. Les rseaux linaires Les rseaux linaires permettent de dnir des rseaux dinterconnexion relativement simples dans lesquels les communications locales sont trs fortement privilgies. titre dexemple, larchitecture RaPiD peut tre cite (Fig. 4). Dans cette architecture, les communications entre les ressources de calcul se font par le biais dun rseau segment. Les rseaux linaires permettent de faire communiquer les ressources de calcul voisines de manire trs exible et efcace. En revanche, les communications entre cellules distantes ncessitent de faire transiter les signaux via plusieurs couches de bus, dune manire trs inefcace. La longueur et la charge de ces connexions se traduisent typiquement par une consommation nergtique leve. Ce type de topologie est particulirement bien adapt aux applications fortement pipelines. En effet, dans ces applications, lessentiel des communications se fait entre des cellules voisines, en exploitant pleinement les connexions locales des rseaux linaires. En revanche, du fait de linefcacit du rseau dans les communications longues distances, lexploitation des architectures bties sur ce type de topologie se

12

2e soumission Technique et science informatiques.

Input Streams M emory M ulti pl y Cus tom Function Multiply Memory

Output Strea ms

A L U

A L U

A L U

A L U

Figure 4. Architecture de RaPiD : les units de calcul communiquent par le biais dun rseau segment. Chaque oprateur peut communiquer avec ses plus proches voisins de manire trs exible. Les communications longues distances sont en revanche beaucoup plus coteuses et ncessitent la traverse de plusieurs niveaux dinterconnexions.

limite limplmentation de pipelines profonds. Les applications disposant dun paralllisme de grain plus pais (e.g. thread) seront implmentes de manire inefcace. Les rseaux hirarchiques Chameleon, commercialis depuis 2000 par Chameleon Systems, est un reprsentant relativement charismatique des architectures (Fig. 5) qui incluent ce type de rseau. Ses 108 units arithmtiques sont dabord runies par groupe de neuf au sein de tuiles, puis regroupes par tranche. Le passage dun niveau de hirarchie un autre se traduit par une rduction de la exibilit des interconnexions. Dans le mme ordre dide, les architectures DART, Pliades et FPFA adoptent galement une organisation hirarchique de leurs ressources de calcul, en se limitant cette fois deux niveaux de hirarchie. 3.2.3. Usages Bon nombre de projets associent dans un mme systme le bloc recongurable un contrleur charg de grer ses recongurations. Ce contrleur est typiquement un processeur gnraliste de type RISC. Lexploitation du bloc recongurable passe ici par une extension du jeu dinstructions pour grer des communications explicites entre la ressource recongurable et le processeur hte. La dnition dun systme autonome implique la possibilit de traiter tous les types dapplications (et pas seulement les calculs intensifs). Aussi, un soin tout particulier doit tre apport la modication du bloc recongurable. En effet, celle-ci doit tre sufsamment rapide pour ne pas perturber lexcution dun algorithme. Les recherches menes sur ce thme sont lheure actuelle trs actives et se traduisent par une grande varit de mise en oeuvre.

Du micro-processeur au circuit FPGA


Bus memoire 64 bits

13

Bus PCI 32 bits

Controleur PCI ARC (RISC 32 bits)

Controleur mmoire

128 bits road runner bus

Sous systme de configuration

Sous systme DMA

tuile
Mmoire locale 128*32 bits 160 (4 *40) entrees/sorties programmables Mmoire locale 128*32 bits Datapath 32 bits Datapath 32 bits Datapath 32 bits Datapath 32 bits Datapath 32 bits Datapath 32 bits Datapath 32 bits Mul 16 *24 Mul 16 *24 Control Logic Unit

tranche

Mmoire locale 128*32 bits

Mmoire locale 128*32 bits

Figure 5. Architecture du Chameleon : cette architecture est dcompose en quatre tranches, elles mme constitues de 3 tuiles. Au plus bas niveau de la hirarchie, diverses units de calcul sont interconnectes avec un rseau totalement exible. Cette exibilit samenuise mesure que lon remonte les diffrents niveaux de hirarchie.

Une premire solution, tudie dans le cadre des FPGAs dits multi-contextes [MAE 00] et implmente dans Chameleon [TAN 00], consiste dnir plusieurs plans de conguration. Cette mthode autorise la modication partielle et dynamique du bloc recongurable puisquun plan de conguration peut tre modi par le contrleur pendant quun second spcie la fonctionnalit du bloc. Bien quextrmement performante (la reconguration ne prend que le temps dune commutation sur lentre dun multiplexeur), cette solution est trs critiquable en terme de surface puisquelle ncessite la prsence sur le circuit de plusieurs mmoires de conguration. Son cot nergtique est par ailleurs trs lev. Une autre solution destine acclrer les temps de reconguration consiste distinguer la conguration matrielle de larchitecture, dcrivant la structure du chemin de donnes, et la conguration logicielle qui la contrle. La premire ncessite un nombre relativement important de donnes de conguration (quelques centaines de bits, voire plusieurs milliers) qui sont maintenues pendant toute la dure dun traitement. La seconde est quant elle caractrise par un volume de donnes de conguration limit (quelques dizaines de bits) mais est amene voluer trs souvent. Elle permet par exemple de spcier un reset ponctuel des accumulateurs ou dinitialiser certaines variables avant de rentrer dans une boucle. Cette solution, exploite notamment dans DART, RaPiD et FPFA, se traduit par une optimisation des ressources mais

14

2e soumission Technique et science informatiques.

se paie par une augmentation du nombre de modles de programmation du systme [CRO 98]. Larchitecture XPP autorise galement un mode de reconguration similaire. Sur cette architecture, il est en effet possible de recongurer ponctuellement certains blocs particuliers de larchitecture, sans altrer le fonctionnement du reste du circuit. Ce mcanisme, dni sous le terme de differential conguration [PAC 02], cible principalement le chargement de constantes au sein du chemin de donnes. Il peut par ailleurs tre utilis an de rduire le temps de reconguration. Enn, une dernire solution consiste distribuer le contrle au mme titre que les ressources de calcul. Chaque bloc de calcul doit alors disposer dun contrleur grant les chargements des congurations et les communications avec lextrieur. Bien quefcace, cette solution pose de srieux problmes de synchronisation entre les diffrents lments de larchitecture. Ce problme est intelligemment rgl dans Pliades par lemploi de mcanismes de communication de type Globalement Asynchrone Localement Synchrone (GALS) [WAN 99].

3.3. Le niveau logique Dans cette section nous ne retiendrons que les circuits FPGA au dtriment des circuits de type PAL (Programmable Array Logic) ou CPLD (Complex Programmable Logic Device) qui ne disposent pas dune complexit sufsante pour implmenter des systmes complets. Par ailleurs, la recherche sur les circuits FPGA ayant dbut ds le milieu des annes 80, il existe aujourdhui une trs grande varit de produits et les passer exhaustivement en revue ncessiterait un chapitre complet. Aussi, ne seront mentionns ici que deux grandes familles de composants recongurables au niveau logique, savoir les produits des socits Xilinx et Altera, leaders mondiaux du march. En dehors de celles-ci, le lecteur pourra vrier dans la littrature [TAV 96, DUT 97] que cest dans la ralisation des cellules et de leurs interconnexions que chaque constructeur apporte ses spcicits. Larchitecture gnrique de ces composants est reprsente sur la gure 6. Elle consiste en une matrice dlments congurables, relis par un rseau dinterconnexions, qui communiquent vers lextrieur au moyen de blocs dentres/sorties congurables. La taille, le type et le nombre de cellules, de mme que leurs interconnexions varient suivant les familles et les constructeurs. 3.3.1. Les ressources de calcul La cellule de base est un lment mmoire associ un module combinatoire. Construire un systme consiste associer ces cellules par le biais dun rseau dinterconnexions programmable. La logique combinatoire est implante sous forme de LUTs. Ce module combinatoire est associ un lment de mmorisation au sein de la primitive de calcul : le bloc logique congurable (CLB) pour la famille Xilinx et llment logique (LE) pour Altera. Ces briques de base intgrent galement des fonctionnalits intressantes telles que le chanage de retenue pour acclrer lopra-

Du micro-processeur au circuit FPGA

15

Blocs Logique Reconfigurable Interconnexions


I1 Cout I2 I3 I4 Cin

Chanage

LUT-4

DFF

Blocs dE/S

Out

Figure 6. Architecture gnrique des composants recongurables au niveau logique. Ils sont constitus dlments de calcul recongurables, assembls par le biais dun rseau dinterconnexions complexe vhiculant des signaux binaires.

tion daddition ou de petits modules mmoire (Fig. 6). Les dernires gnrations de FPGA, le VIRTEX pour Xilinx [XIL 01] et lAPEX pour Altera [ALT 01], offrent de trs fortes capacits dintgration (4,000,000 portes quivalentes) et une frquence de fonctionnement leve. Dans les nouvelles architectures, les fabricants ont rajout un niveau de hirarchie en regroupant les cellules logiques au moyen dune matrice dinterconnexions locales qui acclre les communications entre proches voisins. Les versa-blocs, pour Xilinx, regroupent 4 cellules de bases alors que les LAB dAltera intgrent de 8 10 LE. Les architectures Altera intgrent par ailleurs un autre type de ressources connectes au reste du composant la manire dun LAB. Ces ressources, baptises EAB (Embedded Array Block) ou ESB (Embedded System Block), exploitent un module mmoire pilot par de la logique squentielle programmable. Elles peuvent tre utilises soit comme de simples mmoires, soit comme de grosses tables de scrutation pour spcier des fonctions complexes telles quun multiplieur . Certaines recherches, principalement menes dans les milieux universitaires, tudient par ailleurs lintrt de solutions dans lesquelles les ressources de calcul sont de granularit plus paisse. titre dexemple, les projets PipeRench [CHO 00, GOL 99], Chess [MAR 99], DP-FPGA [CHE 94] ou DReAM [BEC 00] peuvent tre cits. Les modules combinatoires constituant la cellule de base ne sont plus implments sous la forme de LUT 3 ou 4 entres mais sous la forme de composants multi-fonctions travaillant sur des donnes de plusieurs bits. Les oprateurs arithmtiques intgrs au sein de larchitecture sont obtenus par le biais de lassociation de ces primitives de calcul. La rduction du nombre de cellules ncessaires la construction doprateurs complexes permet ainsi daccrotre les performances du systme, par rapport aux solutions bases sur de la logique recongurable, lors des traitements arithmtiques.

16

2e soumission Technique et science informatiques.

3.3.2. Les interconnexions Les composants FPGA exploitent des rseaux dinterconnexion trs complexes, o chaque bit doit pouvoir tre orient individuellement. Pour les composants Xilinx les interconnexions transitent travers diffrents types de ligne suivant la distance, le temps de propagation et le nombre de portes connectes. Des lignes prdnies, dites directes, connectent efcacement les proches voisins. Des lignes, dites gnrales, parcourent lensemble du circuit et sont organises suivant un motif de type mesh gnralis. Pour les signaux dont la propagation doit tre uniforme (signal dhorloge par exemple), des lignes basses impdances les distribuent simultanment tous les blocs du circuit. Ces dernires disparaissent dans le VIRTEX au prot de lignes routant les signaux tous les 3 ou 6 blocs, lhorloge disposant quant elle dun rseau de routage ddi organis en arbre. Les rseaux dinterconnexions des circuits Altera ont relativement peu volus depuis le Flex8K [ALT 99] et se basent sur un maillage de pistes horizontales et verticales. 3.3.3. Usages Historiquement, les composants FPGA ont tout dabord t exploits pour remplacer des composants discrets ou valider des systmes destins tre intgrs dans des circuits de type ASIC [PIL 98]. Dans ce contexte, ces circuits sont congurs linitialisation et cette conguration est maintenue pendant toute la phase de validation. Laspect statique de la reconguration nimplique ds lors aucune perte defcacit et les contraintes de couplage avec le systme hte sont trs limites. Les circuits FPGAs commerciaux sont, aujourdhui encore, principalement utiliss cet effet. Ces composants peuvent, par ailleurs, tre utilises des ns daugmentation de performance en dchargeant le systme hte de tout ou partie des traitements intensifs pour lesquels il est mal adapt. De nombreuses applications en traitement du signal, de limage, en cryptographie, en biologie molculaire, etc., ont donn lieu des architectures massivement parallles, et ont dmontr que des facteurs dacclration de plusieurs dizaines, voire plusieurs centaines, dordres de grandeur peuvent tre obtenus par le biais de cette approche. Dans ce cadre, trois modes dutilisation peuvent tre distingus : Les cartes acclratrices Ces cartes, contenant un ou plusieurs FPGAs et de la mmoire vive, peuvent se connecter un processeur via des bus priphriques (e.g. PCI, VME). La machine PeRLe-1, ft lune des premires ralisations de ce type. Celle-ci se base sur larchitecture PAM (Programmable Active Memory) [VUI 96] et est compose de 16 circuits FPGA Xilinx 3090, de mmoire vive et de 7 circuits FPGAs utiliss pour grer les changes avec la station hte. Outre ce type dassemblage bi-dimensionnels de circuits FPGAs, dautres systmes considrent des assemblages linaires tels que les systmes SPLASH-2 [ARN 93] ou ArMen [POT 91]. Compte tenu de laugmentation des capacits dintgration, les recherches sur ce type de machines sont devenues net-

Du micro-processeur au circuit FPGA

17

tement moins attractives. Dsormais, la plupart de ces machines peuvent tre intgres au sein dun seul et mme composant. Les Co-Processeurs : Plus rcemment, de nombreuses tudes ont t menes an dtudier des couplages plus troits entre la ressource recongurable et le processeur hte. titre dexemple, le projet GARP propos par le groupe de recherche BRASS (Berkeley Recongurable Architectures, Systems and Software) [HAU 00], et le projet NAPA propos par National Semiconductor [RUP 98] peuvent tre considrs comme reprsentatifs, sachant que des projets industriels visent aussi tudier ce type de couplage [BOR 02]. Les deux premires solutions exploitent des blocs recongurables conus au sein mme des laboratoires alors que la troisime exploite un composant commercial, le FPGA embarqu M2000 [M20 ]. Ce type darchitecture vise dcharger le processeur hte des traitements pour lequel il nest pas adapt. Il ne sagit plus ici de congurer, linitialisation, le bloc recongurable pour un traitement particulier mais de modier sa conguration chaque fois que le processeur hte rencontre un traitement critique. La reconguration du FPGA intervient donc au cours de lexcution du programme sur le processeur hte. La distinction entre conguration et reconguration apparat donc ici clairement, de mme que laspect critique du temps ncessaire la reconguration du bloc recongurable. Dans ce type darchitecture, un processeur de type RISC se charge de lexcution des traitements de faible complexit. Lorsque celui-ci rencontre un traitement critique (gnralement reconnu par une directive assembleur), il fait appel au bloc congurable an de se dcharger de ce traitement. Certains processeurs reprennent alors lexcution du programme, sous rserve quil ny ait pas de dpendances de donnes, et laissent une complte autonomie au bloc congurable, qui doit ds lors disposer dun accs direct la mmoire du processeur. Cest par exemple lun des modes de fonctionnement privilgi de NAPA qui autorise ainsi une excution de type multi-thread. Dans dautres projets en revanche, tel que GARP, lapprovisionnement en donnes du bloc congurable est effectu sous la forme de transferts explicites, sous le contrle du processeur hte. Dans ce cas, les excutions du programme sur le processeur et sur le bloc congurable sont mutuellement exclusives. Un des facteurs critique pour valuer la qualit de la solution propose devient ds lors le temps ncessaire aux congurations. En consquence, de nombreux mcanismes ont t envisags dans le cadre de sa rduction. ce niveau de granularit les deux principales options sont lutilisation de circuits multi-contextes et la reconguration partielle. La conguration multi-contextes consiste mmoriser plusieurs congurations. Le passage dune conguration une autre ne ncessite alors quune commutation entre les diffrents plans de conguration du systme. Les performances sont alors trs sensiblement amliores mais ceci se paie par une explosion du cot du circuit. An de limiter ce surcot, une autre solution, utilise dans le cadre de GARP, consiste stocker un certain nombre de plans de conguration dans des mmoires

18

2e soumission Technique et science informatiques.

caches. Le rapprochement entre les donnes de conguration et la ressource recongurable permet ainsi de rduire les temps de conguration. titre dexemple, le projet GARP qui utilise cette technologie ne consomme que quelques cycles pour spcier une conguration de taille moyenne (500 blocs logiques). La seconde mthode permettant de limiter les temps de conguration consiste autoriser une modication partielle de la ressource congurable. Cette mthode, exploite dans le cadre des projets GARP et NAPA, ncessite un dcoupage fonctionnel et logique de larchitecture mais ouvre en contrepartie des perspectives doptimisation trs intressantes. Dans le mme ordre dide, une autre option dimplmentation consiste considrer plusieurs ressources congurables. Cette technique a t exploite dans le cadre du projet ARDOISE, dans lequel deux ressources congurables dynamiquement (ATMEL AT40K[ATM 02]) sont modies suivant une mthode de "ping-pong", i.e. un FPGA est congur pendant quun autre excute un calcul [DEM 99]. Les units fonctionnelles congurables An damliorer plus encore la qualit du couplage entre le processeur et la ressource congurable, certains projets tudient la possibilit dinsrer des blocs congurables au sein mme du chemin de donnes du processeur. Lalimentation en donnes de la ressource est alors extrmement efcace et assure par le biais des registres gnraux du processeur. Lintrt principal est que lextension du jeu dinstructions du processeur hte autorise lutilisation de mthodes classiques de compilation. Ainsi lutilisateur na pas se soucier de larchitecture cible. Lutilisation de langages procduraux tels que le C est satisfaisante. En revanche, la latence des oprations excutes sur la ressource congurable impose lemploi dinstructions multi-cycles et limite les gains qui peuvent tre attendus. Les tudes menes par le pass conrment cette tendance. titre dexemple, des expriences menes autour de lintgration dunits de calcul recongurables supportant aussi bien les traitements entiers que ottants nont mis en vidence que des gains en performance de lordre de 20% [SOL 01]. Dans le mme ordre dide, lextension du jeu dinstructions dun processeur RISC par le bloc logique recongurable CHIMAERA ne se traduit que par un mme gain moyen en performance de 20% [YE 00]. Ces rsultats mitigs illustrent la difcult de la tche consistant intgrer un acclrateur matriel avec un processeur hte. Dans [RIZ 02], les auteurs mettent en avant les aspects devant tre pris en compte an de dnir un systme performant. Leur tude extrait deux principaux critres, a priori antinomiques, inuenant lefcacit du systme. Les traitements implments doivent tre relativement complexes : ddier un bloc recongurable des instructions particulires semble donc inadapt. Les auteurs de [RIZ 02] prconisent lexcution de traitements critiques ncessitant, au minimum, plusieurs centaines de cycles dexcution sur le processeur hte. Le couplage entre le processeur hte et lacclrateur doit tre trs troit. Idalement, des connexions directes doivent permettre un approvisionnement en donnes

Du micro-processeur au circuit FPGA

19

efcace. Associer ces deux aspects semble ds lors paradoxal puisquil ncessite la fois des connexions directes entre le processeur hte et lacclrateur et des bandes passantes extrmement importantes pour assurer une distribution efcace des donnes et des congurations. Ces deux paramtres inuent donc directement sur le cot de la connectique entre le processeur hte et la ressource recongurable. Bien quamorces depuis de nombreuses annes, les recherches sur le couplage entre processeur hte et acclrateur matriel (quil soit ddi ou recongurable) sont aujourdhui encore trs attractives.

4. Energie et performances Dans le cadre des applications mergentes, deux contraintes doivent ncessairement tre considres : la consommation et les performances. Cette section value ces deux aspects pour les architectures dcrites prcdemment, toujours en diffrenciant les trois niveaux de reconguration.

4.1. Efcacit nergtique des architectures recongurables Concevoir une architecture faible consommation nest pas une chose facile. Cette tche ncessite en effet la prise en compte de ce critre tous les niveaux de la conception, depuis la dnition du systme dexploitation jusqu la ralisation physique du circuit. Dans les paragraphes qui suivent, nous prsentons les atouts associs aux diffrents paradigmes de reconguration [PIL 03]. Il appartient alors aux concepteurs de fournir leffort (trs important) ncessaire lexploitation de lventuel potentiel de rduction dnergie de ces architectures. 4.1.1. Niveau systme Les micro-processeurs sont rputs comme tant inefcaces dun point de vue nergtique. Une des principales explications cet tat de fait est que le surcot associ la distribution du contrle est considrable. En effet, chaque cycle, un processeur se doit de lire une instruction et de la dcoder pour contrler les units fonctionnelles. Il est tout de mme noter que certains processeurs embarqus, tels que le DSP16xx de Lucent Technologies [TEC ] ou lADSP 21xx dAnalog Devices [DEV 96], limitent le cot nergtique de cette opration par linsertion de buffer mmorisant les dernires instructions lues. Un autre inconvnient associ aux architectures Harvard ou Von Neuman est lexploitation de larges mmoires centrales. Dans ces architectures, le cot des accs aux donnes est prohibitif et la dissipation dnergie est domine par la mmoire centrale. Les processeurs souffrent nalement de la quantit limite de paralllisme pouvant tre traite. Bien que beaucoup de micro-processeurs exploitent certains niveaux de

20

2e soumission Technique et science informatiques.

paralllisme (donnes [FRI 00], instructions [FAR 98] ou tches [KRI 98]), leur degr de paralllisme est rduit an de limiter le nombre dunits fonctionnelles. En effet, un des aspects les plus importants lors de la conception dun processeur est le cot du circuit. De ce fait, pour avoir une bonne densit de calcul (i.e. ratio entre les performances et la surface), le concepteur doit limiter le degr de paralllisme. En consquence, puisque ces architectures ne peuvent exploiter que partiellement le paralllisme de lapplication, elles doivent fonctionner des frquences plus leves, ncessitant ds lors des arbres dhorloges plus gros et des tensions dalimentation plus grandes.

4.1.2. Niveau fonctionnel Limiter les cibles de la reconguration aux seules interconnexions peut avoir un impact trs favorable sur la consommation. Se concentrer sur ce point rduit trs sensiblement le volume de donnes de conguration, par rapport aux solutions recongurables au niveau logique . Dans le mme temps, si les phases de recongurations ninterviennent quentre les phases de calcul intensif, les tapes de recherche et de dcodage de conguration sont trs occasionnelles. En effet, la rgle des 80/20 afrme que 80% du temps dexcution est consomm par seulement 20% du code, ce qui signie que certaines portions du programme sont excutes pendant de longues priodes [STI 02, VIL 02]. Ainsi, il est possible de rduire le nombre de lectures et de dcodages de conguration en ne ralisant ces oprations que lors des appels de fonction (la conguration doit alors permettre lexcution de toute la fonction). En rduisant la fois le nombre et le cot des recongurations, on peut minimiser le gaspillage dnergie associ la distribution du contrle dans le circuit. Un autre aspect intressant, sous-jacent la capacit recongurer le rseau dinterconnexions, est la possibilit dadapter le paralllisme de lapplication celui de lalgorithme. En exploitant pleinement le paralllisme intrinsque de lalgorithme, la frquence de fonctionnement peut tre rduite de mme que la tension dalimentation et par voie de consquence, la consommation de puissance et dnergie du circuit. Malheureusement, le potentiel de reconguration est bien souvent inexploit dans les projets de recherche. En effet, hormis DART et Pliades, la plupart des tudes menes se concentrent uniquement sur le gain en performance au prix dune consommation dnergie non matrise.

4.1.3. Niveau logique De nombreux travaux ont port sur lanalyse de la distribution de la consommation dans les circuits FPGA [POO 02, SHA 02, KUS 97, GAR 00]. Toutes aboutissent la constatation que la principale source de consommation est le rseau dinterconnexions. titre dexemple, dans une tude du FPGA Xilinx Virtex, K. Poon, dans [POO 02], estime le pourcentage dnergie consomme dans le rseau dinterconnexions 62%, contre seulement 18% dans les re ssources de calcul.

Du micro-processeur au circuit FPGA

21

Un autre inconvnient associ la faible granularit de ces architectures vient du volume de donnes de conguration qui leur est associ. En effet, les phases de reconguration ncessitent la transmission dune grande quantit de donnes qui doivent ncessairement tre stockes dans de larges mmoires centrales. Lorsque le systme ncessite des recongurations du bloc recongurable, ces phases se traduisent donc par des pnalits nergtiques trs importantes. Varghese George, Berkeley, a travaill avec un certain succs la rduction de la consommation des FPGAs [GEO 00], notamment en limitant la consommation des interconnexions [ZHA 98]. Cependant, lheure actuelle, ces architectures restent trs inefcaces dun point de vue nergtique.

4.2. Performances Le critre de performance est sans aucun doute le plus important pour valoriser une architecture. Quelle que soit lefcacit dune architecture en consommation ou en surface, elle ne sera en effet jamais utilise si elle ne dispose pas de la puissance de calcul ncessaire lexcution dune application. 4.2.1. Niveau systme Les processeurs implmentent leurs applications de manire temporelle. Ds lors, ils sont mal adapts des calculs intensifs et rptitifs o il est possible dextraire un fort paralllisme. Ceci peut quand mme tre modul par lexploitation dun certain degr de paralllisme via lintgration, dans les derniers micro-processeurs, de quelques instructions SWP ou SIMD. Dans [MEN 02], Daniel Menard met en vidence un paralllisme dinstructions relativement important (entre 2.8 et 7.5) dans le cadre dalgorithmes de ltrage sur le TMS320C64x (supportant un ILP maximum de 8). Dans le mme ordre dide, Emmanuel Gaudry, dans [GAU 01] met en avant un ILP variant de 2.3 3.4 pour le traitement dun Rake Receiver [GRO 00] sur un processeur dvelopp ST microelectronics, le Lx [FAR 00] (disposant dun ILP maximum de 4). Ceci dmontre bien la capacit des processeurs proposer de hautes performances. Ceci se fait cependant au prix dun contrle trs complexe. Ainsi, dnir une architecture de processeur combinant la fois haute performance et haute densit de calcul est un exercice extrmement dlicat. Compte-tenues des contraintes de cot inhrentes aux marchs cibls par les processeurs programmables, les concepteurs de ces systmes privilgient gnralement la densit de calcul au dtriment des performances. En revanche, ces architectures sont trs efcaces pour des traitements irrguliers, caractrises par un trs faible niveau de paralllisme et par des comportements non dterministes. En effet, il est difcile de prdire leur comportement un cycle donn, celui-ci dpendant bien souvent du rsultat des traitements raliss au cycle prcdent

22

2e soumission Technique et science informatiques.

ou de lenvironnement extrieur (e.g. arrive dinterruption). Si les processeurs programmables sont peu performants pour les calculs intensifs, ils sont donc parfaitement adapts aux traitements irrguliers et aux applications orientes contrle. 4.2.2. Niveau fonctionnel En limitant la reconguration aux seules interconnexions doprateurs arithmtiques, les architectures recongurables au niveau fonctionnel disposent dun potentiel doptimisation trs lev. La reconguration autorise en effet la dnition dun pipeline dexcution totalement adapt au traitement raliser en liminant, par exemple, la ncessit de stocker les variables temporaires en mmoire ou en registre grce au chanage des oprateurs. Cette mise en adquation du pipeline dexcution au motif de calcul traiter permet par consquent loptimisation de la frquence de fonctionnement. La frquence de fonctionnement peut par ailleurs tre accrue en exploitant au mieux le paralllisme de lapplication. La possibilit de modier lagencement des oprateurs dans ces architectures facilite cette exploitation. Outre le paralllisme doprations obtenu par lintgration de nombreuses units fonctionnelles, il est en effet possible de dnir plusieurs chemins de donnes pour proter dun paralllisme de tche. Par lintgration doprateurs supportant des traitements SWP, un paralllisme de donnes peut nalement tre exploit sans introduire de pnalit trop importante en terme de cot. En revanche, ces architectures nont pas la possibilit dexploiter le paralllisme de niveau bit des applications. En effet, dans ce contexte, lemploi doprateurs travaillant au niveau arithmtique, mme sils autorisent les traitements logiques, est trs inefcace puisque avant de pouvoir traiter un bit particulier dans un mot de N bits, il est ncessaire de pralablement lextraire en lui appliquant un masque. Un traitement logique ncessite donc deux oprations sur une ressource arithmtique. Pour pallier ce problme, un certain nombre darchitectures, telles que Pliades, DART ou le Chameleon, intgrent parmi leurs units de calcul des oprateurs logiques capables de traiter plus efcacement ces oprations. 4.2.3. Niveau logique De par leur structure, les circuits FPGA sont prdestins implmenter spatialement leurs applications. Le niveau de performance est alors directement li la quantit de ressources quils intgrent. Lefcacit de ces architectures dans le cadre de la manipulation de donnes binaires, voire de petite taille (< 4 bits), est indniable et ces architectures ne disposent daucune relle concurrence dans ce domaine. Le problme est cependant tout autre pour les traitements arithmtiques. Comme il a dj t dit, construire un oprateur arithmtique ncessite lutilisation et linterconnexion dun grand nombre de ressources de calcul. La quantit de ressources de routage devant tre traverses devient alors prohibitive et les performances des oprateurs ainsi synthtiss sont trs nettement dgrades par rapport des solutions

Du micro-processeur au circuit FPGA

23

full-custom. Bien que lintroduction darchitectures grain plus pais limite cette tendance, les rsultats obtenus restent insatisfaisant pour des traitements critiques. Ainsi, pour atteindre un niveau de performance comparable aux solutions ddies, les implmentations doivent accrotre leur niveau de paralllisme, ce qui se traduit par des solutions inefcaces du point de vue de la densit de calcul. Pour rduire limportance de ce problme, les architectures les plus rcentes intgrent au sein de leur structure recongurable des oprateurs cbls travaillant au niveau arithmtique (e.g. multiplieurs du VIRTEX-II [XIL 01], blocs DSP du Stratix [ALT 02]).

5. Conclusion et perspectives Dans la littrature [HAR 01], le terme recongurable qualie une trs large gamme de systmes. Ceci sexplique par la varit de formes que revt cette proprit. En effet, une architecture est qualie de recongurable ds lors quelle dispose dun support lui permettant de sadapter aux traitements qui lui sont assigns. Lambigut des termes "support" et "traitement" dans cette dnition fait de son interprtation un exercice dlicat et explique la relative obscurit du concept de recongurable ainsi que la quantit de systmes qui peuvent justier cette dnomination. Dans cette article, nous avons balay lespace de conception de ces architectures avec comme critre principal la reconguration. Par lexamen de ce critre, nous avons tout dabord analys la exibilit de ces architectures en fonction de leur potentiel de reconguration. Nous avons par la suite balay lespace de conception de ces architectures et illustr les diffrents concepts relatifs aux diffrents paradigmes de reconguration par le biais dexemples issus de la littrature. Finalement, nous avons valu ces architectures suivant les critres de performance et defcacit nergtique. Dans le cadre des architectures recongurables, des efforts consquents ont t produits an de rduire le cot de la reconguration et ainsi augmenter leur exibilit. Ainsi, depuis lchec cuisant du FPGA Xilinx Xc6200 [XIL 96] ayant amorc ces recherches, de nombreux mcanismes architecturaux ont t introduits pour simplier la gestion de la reconguration tout en rduisant son surcot. Ainsi, grce la reconguration partielle, la dnition de grain de reconguration plus pais, etc., les performances des architectures recongurables permettent dsormais de supporter de trs hauts niveaux de performance. lheure actuelle en revanche, la reconguration dynamique nest pas exploite dans le cadre de la matrise de la consommation. Cette contrainte, bien quunanimement reconnue comme lune des plus critiques pour les systmes embarqus, nest quasiment jamais prise en compte lors de la conception des architectures recongurables. DART et Pliades font parties des rares architectures pouvant justier cette qualication. Lexploitation du potentiel des architectures recongurables dans le cadre de la matrise de lnergie est lheure actuelle un des thmes de recherche des plus attractif [PIL 03].

24

2e soumission Technique et science informatiques.

la manire de la spcialisation des processeurs programmables, qui sest traduite par la dnition de nombreuses classes darchitectures (DSP, micro-contrleur, processeur embarqu, etc.), la tendance actuelle, en matire de conception darchitectures recongurables, est ladaptation des caractristiques de larchitectures au besoin applicatifs. La conception oriente plate-forme devient donc ncessairement lun des enjeu majeurs relatifs la valorisation des circuits recongurables. Dans ce cadre, de nombreux projets sont en cours. Une des difcults majeur concerne ici la dnition de mtriques sufsamment discriminent pour obtenir, partir dune plateforme recongurable, linstance qui rpondra au mieux aux besoins de lapplication. La diversit des paramtres devant tre valus pour juger de la pertinence dune solution interdit en effet, dans ce contexte, la dnition de benchmarks performants. Dans le cadre de la caractrisation des architectures recongurables, lheure est donc lanalyse qualitative et non lanalyse quantitative. La diversit des concepts mis en uvre pour rduire le cot de la reconguration se traduit par ailleurs par une explosion du nombre de modles de programmation relatifs aux architectures recongurables.La consquence directe de cet tat de fait est une difcult vidente concevoir des outils de programmation simples et efcaces. Si lheure actuelle la plupart des constructeur sont en mesure de fournir une chane de dveloppement complte, la conception de celle-ci est pnalise par labsence de mthodologie sufsamment souple pour rpondre des modles de programmation nombreux et bien souvent mal identi. Outre loptimisation des architectures du point de vue des performances, du cot ou encore de la consommation, de nombreux travaux sont actuellement mens dans le cadre de lutilisation de ces ressources des ns dacclration de calcul. Dans ce cadre, lune des principales difcults devant tre leve est relative au couplage de la ressource recongurable au reste du systme. Bien quamorce depuis de nombreuses annes, ces recherches restent trs actives [WAL 02, MEI 01].

6. Bibliographie
[ABN 96] A BNOUS A., R ABAEY J., Ultra Low-Power Specic Multimedia processors , 459468, novembre 1996, VLSI Signal Processing IX. [ALT 99] A LTERA, Flex 8000 Programmable Logic Device Family , juin 1999. [ALT 01] A LTERA, APEX20k Programmable Logic Device Family , aot 2001. [ALT 02] A LTERA, Stratix FPGA Family , Datasheet ver. 3.0, dcembre 2002. [ARN 93] A RNOLD J. M., The Splash 2 Software Environment , The Journal of Supercomputing, vol. 9, n 3, 1993, p. 277-290, Kluwer Academic Publishers. [ATM 02] ATMEL, 5K -50K Gates Coprocessor FPGA with FreeRAM , Technical report 0896c-rev 04/02, avril 2002, ATMEL. [BAU 01] BAUMGARTE V., M AY F., N KEL A., VORBACH M., W EINHARDT M., PACT XPP - A self-Recongurable Data Processing Architecture , International Conference on

Du micro-processeur au circuit FPGA

25

Engineering of Recongurable Systems and Algorithms (ERSA 01), Las Vegas, USA, juin 2001. [BEC 00] B ECKER J., P IONTECK T., G LESNER M., DReAM : A Dynamically Recongurable Architecture for Future Mobile Communication Applications , international Workshop on Field Programmable Logic and Applications (FPL 00), Villach, Austria, aot 2000, Lecture Notes in Computer Science 1896, p. 312321. [BOR 02] B ORGATTI M., L ERTORA F., F ORT B., C AL L., A Recongurable System featuring Dynamically Extensible Embedded Microprocessor, FPGA and Customisable I/O , Custom Integrated Circuits Conference (CICC), Orlando, USA, mai 2002. [BUR 00] B URSKY D., Upgraded DSP Core Tackles future Communication needs , Electronic design, vol. 48, n 8, 2000, p. 66 - 68. [CHE 94] C HEREPACHA D., L EWIS D., A Datapath Oriented Architecture for FPGAs , International Symposium on Field Programmable Gate Arrays (FPGA 94), Monterey, USA, fvrier 1994. [CHO 00] C HOU Y., P ILLAI P., S CHMIT H., S HEN J., PipeRench Implementation of the Instruction Path Coprocessor , International Symposium on Microarchitecture (MICRO33), Monterey, USA, dcembre 2000, p. 147158. [CRO 98] C RONQUIST D. C., F RANKLIN P., B ERG S. G., E BELING C., Specifying and Compiling Applications for RaPiD , Symposium on Field-Programmable Custom Computing Machines (FCCM 98), Los Alamitos, USA, avril 1998, p. 116125. [CRO 99] C RONQUIST D. C., F RANKLIN P., F ISHER C., F IGUEROA M., E BELING C., Architecture Design of Recongurable Pipelined Datapath , Advance Research in VLSI (ARVLSI 99), Atlanta, USA, mars 1999, p. 2340. [DAV 00] DAVID R., Analyse qualitative des nouvelles architectures embarques et outils associs : tude du cas des processeurs ARM et DSP , Mmoire DEA, Univerist de Rennes1/ INSA/ SUPELEC, juillet 2000. [DAV 03] DAVID R., Architecture recongurable dynamiquement pour applications mobiles , PhD thesis, Universit de Rennes I, juillet 2003. [DEM 99] D EMIGNY D., PAINDAVOINE M., W EBER S., Architecture reconguration dynamique pour le traitement temps rel des images , Technique et Science de lInformation Numro Spcial Architectures Recongurables, vol. 18, n 10, 1999, p. 10871112. [DEV 96] D EVICES A., ADSP-2100 Family DSP microcomputers , Datasheet rev b., 1996, Analog Devices. [DUT 97] D UTRIEUX L., D EMIGNY D., Architecture des FPGA et CPLD, mthode de conception, le langage VHDL, Eyrolles, 1997. [EYR 98] E YRE J., B IER J., Carmel enables Customizable DSP , Microprocessor report, vol. 12, n 17, 1998. [FAR 98] FARABOSHI P., D ESOLI G., F ISHER J. A., The Latest Word in Digital and Media Processing , IEEE Signal Processing Magazine, , 1998, p. 59 85. [FAR 00] FARABOSHI P., B ROWN G., F ISHER J., D ESOLI G., Lx : A technology Platform for Customizable VLIW Embedded Processing , International Symposium on Computer Architecture (ISCA 00), Vancouver, Canada, juin 2000. [FRI 00] F RIDMAN J., Sub-Word Parallelism in Digital Signal Processing , IEEE Signal Processing Magazine, vol. 17, n 2, 2000, p. 2735.

26

2e soumission Technique et science informatiques.

[GAR 00] G ARCIA A., Etude sur lestimation et loptimisation de la consommation de puissance des circuits logiques programmables du type FPGA , PhD thesis, Ecole Nationale Suprieure des Tlcommunications, 2000. [GAU 01] G AUDRY E., Estimation de la complexit algorithmique dune chane de traitement WCDMA en tlcommunication mobile : application au processeur Lx , Masters thesis, DEA STIR, ENSSAT-Universit de Rennes 1, juin 2001. [GEO 00] G EORGE V., Low Energy Field-Programmable Gate Array , PhD thesis, University of California, Berkeley, 2000. [GOL 99] G OLDSTEIN S., S CHMIT H., M OE M., B UDIU M., C ADAMBI S., PipeRench : A Coprocessor for Streaming Media Acceleration , International Symposium on Computer Architecture (ISCA 99), Atlanta, USA, mai 1999. [GRO 00] G ROE J., L ARSON L., CDMA Mobile Radio Design, Harteck House Publishers, 2000. [HAR 01] H ARTENSTEIN R., A Decade of Recongurable Computing : A Visionary retrospective , Design Automation and Test in Europe (DATE 01), Munich, Germany, mars 2001. [HAU 00] H AUSER J., Augmenting a microprocessor with recongurable hardware , PhD thesis, University of California, Berkeley, 2000. [HEN 96] H ENNESSY J. L., PATTERSON D. A., Architecture des ordinateurs : une approche quantitative (deuxime dition), International Thomson Publishing, 1996. [HOR 98] VAN DER H ORST E., K LOOSTERHUIS W., VAN DER H EYDEN J., A C Compiler for the Embedded R.E.A.L. DSP , International Conference on Signal Processing (ICSPAT 98), Toronto, Canada, septembre 1998. [KIE 98] K IEVITS P., L AMBERS E., M ORMAN C., W OUDSMA R., R.E.A.L. DSP Technology for Telecom Baseband Processing , rapport, 1998, Philips Semiconductors, ASIC Service Group. [KRI 98] K RISHNAN V. S., Speculative Multithreading Architectures , PhD thesis, University of Illinois, 1998. [KUS 97] K USSE E., Analysis and Circuit Design for Low Power Programmable Logic Modules , Masters thesis, University of California, Berkeley, 1997. [LEE 00] L EE M., S IGNH H., L U G., BAGHERZADEH N., K URDAHI F., Design and Implementation of the MorphoSys Recongurable Computing Processor , Journal of VLSI and Signal Processing-Systems for Signal, Image and Video Applications, vol. 24, n 2, 2000, p. 147164. [M20 ] M2000, Flexeos family technical manual , www.m2000.fr. [MAE 00] M AESTRE R., F ERNANDEZ M., K URDAHI F., BAGHERZADEH N., S INGH H., Conguration Management in Multi-Context Recongurable Systems for Simultaneous Performance and Power Optimization , International Symposium on System Synthesis, septembre 2000, p. 107113. [MAR 99] M ARSHALL A., V UILLEMIN J., S TANSFIELD T., KOSTARNOV I., H UTCHINGS B., A Recongurable Arithmetic Array for Multimedia Applications , International Symposium on Field Programmable Gate Arrays (FPGA 99), fvrier 1999, p. 135144. [MEI 01] M EI B., V ERNALDE S., M AN H. D., L AUWEREINS R., Design and Optimization of Dynamically Recongurable Embedded System , International Conference on Engineering of Recongurable Systems and Algorithms, Las Vegas, USA, juin 2001.

Du micro-processeur au circuit FPGA

27

[MEN 02] M ENARD D., Q UEMERAIS P., S ENTIEYS O., Inuence of Fixed-point DSP architecture on Computation Accuracy , European Signal Processing Conference (ESIPCO 02), Toulouse, France, septembre 2002. [PAC 02] PACT, The XPP White Paper : A Technical Perspective , Release 2.1, mars 2002, PACT. [P.H 03] P. H EYSTERS G. S., Mapping of DSP Algorithms on the MONTIUM Architecture , International Recongurable Architecture Workshop (RAW 03), Nice, France, avril 2003. [PIL 98] P ILLEMENT S., Mthodologies dvaluation et de prototypage des systmes numriques intgrs , PhD thesis, Universit de Montpellier II, dcembre 1998. [PIL 03] P ILLEMENT S., DAVID R., S ENTIEYS O., Architectures recongurables : Opportunits pour la faible consommation , papier invit aux journes Faible Tension Faible Consommation (FTFC), Paris, France, mai 2003. [POO 02] P OON K., Power Estimation for Field Programmable Gate Arrays , Masters thesis, University of British Columbia, 2002. [POT 91] P OTTIER B., ArMen : une machine parallle intgrant un rseau de circuits logiques programmables , PhD thesis, Universit de Rennes 1, juin 1991. [RAB 97] R ABAEY J. M., Recongurable Processing : the Solution to Low-Power Programmable DSP , International Conference on Acoustics, Speech, and Signal Processing (ICASSP), avril 1997. [RAB 00] R ABAEY J., A low-energy heterogeneous recongurable DSP IC , Design Automation Conference (DAC 00), Los Angeles, USA, juin 2000. [RIZ 02] R IZZO D., C OLAVIN O., A Video Compression Case Study on a Recongurable VLIW Architecture , Design Automation and Test in Europe (DATE 02), Paris, France, mars 2002. [RUP 98] RUPP C., L ANDGUTH M., G RAVERICK T., G OMERSALL E., H OLT H., The NAPA Adaptative Processing Architecture , IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM 98), avril 1998, p. 2837. [SAS 01] S ASSATELLI G., T ORRES L., G ALY J., C AMBON G., D IOU C., The Systolic Ring : A Dynamically Recongurable Architecture for Embedded Systems , International Workshop on Field Programmable Logic and Applications (FPL 01), Lecture Notes in Computer Science 2147, 2001, p. 409419. [SHA 02] S HANG L., K AVIANI A., BATHALA K., Dynamic Power Consumption in VirtexII FPGA family , International Symposium on Field Programmable Gate Arrays (FPGA 02), Monterey, USA, fvrier 2002, p. 157164. [SMI 02] S MIT G., H AVINGA P., H EYSTERS P., ROSIEN M., Dynamic Reconguration in Mobile Systems , International Conference on Field Programmable Logic and Applications (FPL 02), Montpellier, France, septembre 2002, Lecture Notes in Computer Sciences 2438, p. 171181. [SOL 01] S OLIHIN Y., C AMERON K., L UO Y., L AVENIER D., G OKHALE M., Mutable Functional Units and their Applications on Microprocessors , International Conference on Computer Design (ICCD 01), Austin, Texas, USA, 2001. [STI 02] S TITT G., G RATTAN B., V ILLARREAL J., VAHID F., Using On-Chip Congurable Logic to Reduce System Software Energy , Symposium on Field-Programmable Custom Computing Machines (FCCM 02), Napa, California, septembre 2002.

28

2e soumission Technique et science informatiques.

[TAN 00] TANG X., A ALSMA M., J OU R., A compiler directed aproach to hiding conguration latency in chameleon processors , International Workshop on Field Programmable Logic and Applications (FPL 00), Villach, Autriche, avril 2000, Lecture Notes in Computer Science 1896. [TAV 96] TAVERNIER C., Circuits logiques programmables, Microcontrleur et environnement, Dunod, 1996. [TEC ] T ECHNOLOGIES L., DSP 16xx , rapport, Lucent Technologies. [VAR 94] VARMA A., R AGHAVENDRA C., Interconnection Networks for multiprocessors and multicomputers : Theory and Practice, IEEE Computer Society Press, 1994. [VIL 02] V ILLARREAL J., S URESH D., S TITT G., VAHID F., NAJJAR W., Improving Software performance with Congurable Logic , Design Automation for Embedded Systems, vol. 7, n 4, 2002, p. 325339, Kluwer Academic Publishers. [VUI 96] V UILLEMIN J., B ERTIN P., S MITH A., S ILVERMEN H., Programmable Active Memories : Recongurable Systems Come of Age , IEEE Transaction of VLSI Systems, vol. 4, n 1, 1996. [WAL 02] WALSTROM J. D., The Design of the Amalgam Recongurable Cluster , PhD thesis, Masters Thesis, University of Illinois at Urbana-Champaign, 2002. [WAN 99] WAN M., Z HANG H., B ENES M., R ABAEY J., A Low-Power Recongurable Data-Flow Driven DSP System , Workshop on Signal Processing Systems (SIPS 99), Taipei, Taiwan, octobre 1999. [XIL 96] X ILINX, Xilinx 6200 Preliminary Data Sheet , San Jose, CA, 1996. [XIL 01] X ILINX, VIRTEX2 1.5V Series Field Programmable Gate Arrays , juillet 2001. [YE 00] Y E Z. A., M OSHOVOS A., H AUCK S., BANERJEE P., CHIMAERA : a highperformance architecture with a tightly-coupled recongurable functional unit , ACM SIGARCH Computer Architecture News, vol. 28, n 2, 2000, p. 225235. [ZHA 98] Z HANG H., R ABAEY J., Low-Swing Interconnect Interface Circuits , International Symposium on Low Power Electronics and Design (ISLPED 98), New York, USA, aot 1998, p. 161166. [ZHA 99] Z HANG H., WAN M., G EORGE V., R ABAEY J., Interconnect Architecture Exploration for Low-Energy Recongurable Single-Chip DSPs , International Workshop on VLSI, avril 1999.