Architectures reconfigurable et faible consommation réalité ou prospective ? Sébastien Pillement* — Raphaël David** * IRISA - R2D2 6, rue de Kérampon, F-22300 Lannion ** CEA-List, DRT/DTSI/SARC/LCEI F-91191 gif-s-yvette Les architectures reconfigurables représentent un nouveau choix dans le processus de conception et d’implémentation d’applications complexes. Les progrès technologique permettent l’accès à des architectures reconfigurables supportant des applications complexes et nécessitant de hautes performances. Ces architectures, de part leur flexibilité, offrent des opportunités pour la prise en compte de la consommation dans le cycle de conception. Bien que récente dans ce domaine, cette contrainte est intégrée dans les nouvelles recherches, et développements, à tout les niveaux de la conception. Nous présentons dans cet article les opportunités et les premiers résultats qu’offrent les architectures reconfigurables, du point de vue de la consommation. RÉSUMÉ. Reconfigurable computing is a new architectural alternative during design and application implementation process. Rapid advances in technology nowadays allow the design of reconfigurable components supporting complex industrial applications. Thanks to their flexibility, these architectures have a real potential to optimize electrical consumption. Even if power consumption is a new constraint in the reconfigurable architecture design framework, it is integrated at every level in the design flow. In this paper we discuss about the reconfigurable architectures opportunities, and first results, in the low power consumption field. We also discuss about the way in which the energy efficiency of such architectures may further be improved. ABSTRACT. MOTS-CLÉS : architectures reconfigurables, FPGA, reconfiguration, système reconfigurable, faible consommation KEYWORDS: reconfigurable architectures, FPGA, reconfiguration, reconfigurable systems, low power 2e soumission à Technique et science informatiques, le 1er mai 2006. 2 2e soumission à Technique et science informatiques. 1. Introduction Les applications actuelles ou émergentes, telles que les ordinateurs portables, les systèmes de télécommunications sans fil, les assistants de personnes (PDA), les terminaux multimédia ou les réseaux ad’hoc, intègrent des fonctionnalités complexes qui demandent des calculs performants. Les développements actuels visent par ailleurs à intégrer de plus en plus de services différents dans un même produit, on parle alors de convergence. Cette propriété nécessite la mise en place de systèmes hétérogènes hautes performances et flexibles. Le déploiement et le développement du nomadisme impacte très fortement le budget consommation des systèmes à concevoir, puisqu’ils doivent fonctionner sur batterie. Pour exemple les futures générations de télécommunications mobiles nécessitent de très haut niveau de performance (estimé à 12 GOPS, résultant de l’association de capacités multimédia et de techniques d’accès évoluées) et devront supporter l’ensemble des algorithmes intégrés aux normes de générations actuelles ainsi que leurs évolutions afin de conserver une compatibilité ascendante. Ces systèmes étant embarqués leur consommation devra être maîtrisée. Typiquement, les opérateurs considèrent qu’une consommation crête de l’ordre de 500 mWatt permettra d’assurer une durée de charge de la batterie d’environ une semaine. La maîtrise des évolutions technologiques permet l’augmentation des capacités d’intégration et promet de hautes performances. Cependant elle nécessite de revoir les flots de conception permettant de tirer parti de la puissance d’intégration disponible. Les nouvelles méthodologies s’appuient soit sur la réutilisation de blocs précaractérisés (platform-based design [CHA 99]) pour former des systèmes complets mais hétérogènes, soit sur l’utilisation d’architectures très régulières basées sur la réutilisation de motifs simples mais flexibles. La réduction de la taille des transistors implique en plus de repenser les techniques de conception visant l’optimisation de la consommation. En effet, la réduction des tailles de lithographie impose la réduction des tensions d’alimentation pour maintenir des champs électriques de niveaux constants. Cette réduction de la tension doit nécessairement s’accompagner d’une réduction des tensions de seuils des transistors (VT ) pour assurer un niveau de performance satisfaisant. La consommation statique augmentant exponentiellement avec la réduction de VT , celleci devient de plus en plus critique et nécessite la mise en œuvre de nouvelles techniques de réduction de la consommation. Contrairement à ce qui est fait actuellement, les futurs flots de conception devront assurer la maîtrise conjointe de la consommation dynamique et statique. De part les contraintes associées aux nouvelles applications, les solutions totalement matérielles (ASIC pour Application Specific Integrated Circuit) ou totalement logicielles (processeur, processeur de traitement du signal) ne sont plus adaptées. Lorsque par ailleurs, le système doit consommer très peu d’énergie (systèmes embarqués ou problème de refroidissement) et rester flexible, le problème de sa conception devient insoluble si l’on se limite aux architectures classiques. Dès lors, l’alternative proposée via l’utilisation d’architectures reconfigurables ouvre de nouvelles perspectives pour l’implémentation des futurs systèmes. L’idée de base de ces architectures est d’offrir aux concepteurs la flexibilité d’une architecture programmable et les per- Reconfigurables et consommation 3 formances temporelles d’un circuit dédié. Plusieurs pistes permettent d’envisager une utilisation efficace de ce nouveau paradigme d’exécution. La première vient de la structure même de ces architectures, ce sont des tableaux très réguliers d’éléments simples et flexibles. Cette structure est parfaitement adaptée à une intégration dans les futures technologies. La deuxième piste vient de l’utilisation de structures de plus gros grain permettant un rearrangement de chemins de données complexes (au niveau arithmétique). Dans cet article, après avoir présenté l’espace de conception couvert par les architectures reconfigurables, nous aborderons la problématique de la consommation pour cette cible technologique. Les opportunités de conception pour ce type d’architecture seront étudiées, afin d’identifier les atouts et les limitations du reconfigurable dans le cadre de la minimisation de la consommation. La conclusion recensera alors les grands challenge à relever pour obtenir une architecture faible consommation, associant de très grandes performances à de la flexibilité. 2. Espace de conception des architectures reconfigurables Les architectures reconfigurables ont été très largement utilisées dans des domaines très volatiles, où les normes font défauts et où les performances d’un microprocesseur seul ne sont pas suffisantes. Les recherches dans ce domaine se sont donc intéressées à l’amélioration des performances temporelles et des méthodes de conception, délaissant totalement les aspects consommation. Ces études ont amené la conception de nouvelles architectures [HAR 01] supportant les contraintes temporelles d’applications complexes et offrant de nouveaux paradigmes de calcul. 2.1. Espace de conception Il est facile d’associer architectures reconfigurables et FPGA (Field Programmable Gate Array). Cependant, ceci réduit considérablement l’espace de conception de ces architectures. L’étude sémantique du mot reconfigurable en donne une définition plus précise. En effet, configuration1 , signifie à l’origine façonner à la ressemblance de et a pris le sens de disposition relative d’éléments. Une architecture est constituée d’une disposition relative d’éléments organisés selon un certain schéma. La reconfiguration, en permettant un choix des éléments d’une part, et de leur disposition relative d’autre part, autorise une variabilité des architectures et des traitements à réaliser. Cette définition recouvre alors un large ensemble d’architectures dont les FPGA font partis. L’avantage de ces systèmes vient de la possibilité d’augmenter les performances de traitement en créant un chemin de données matériel adapté à l’application, tout en maintenant un niveau de flexibilité dévolu habituellement aux solutions logicielles. 1. Le Robert, dictionnaire historique de la langue française sous la direction d’Alain Rey 4 2e soumission à Technique et science informatiques. Cette flexibilité est obtenue par la mise en place de ressources redondantes offrant différentes possibilités de routage ou de calcul. Les architectures sont un arrangement (souvent régulier) d’éléments de calcul définis à différent niveau de granularité [DEH 96]. Ces ressources de calcul sont interconnectées par un réseau plus ou moins flexible et plus ou moins performant. Data Memory Program Memory Datapath Instruction Decoder & Controller Data Memory A) Reconfiguration au niveau système In AddrGen AddrGen Memory Memory LUT LUT LUT LUT MAC B) Reconfiguration au niveau fonctionel C) Reconfiguration au niveau logique Figure 1. Classification des architectures reconfigurable suivant le grain de reconfiguration. A) Reconfiguration niveau système, la reconfiguration intervient sur les unités de traitements. B) Reconfiguration niveau fonctionnel, la reconfiguration intervient sur des chemins de données. C) Reconfiguration au niveau logique, la reconfiguration intervient au niveau du bit. La reconfiguration consiste donc à spécifier les opérations et les interconnexions de cet ensemble de ressources, que l’on nomme couche opératoire. Cette reconfiguration est effectuée dans une couche supérieure, dite couche de reconfiguration, construite autour de points de mémorisation statiques. Compte tenu de la dimension de l’espace de conception des architectures reconfigurables, il apparaît nécessaire de définir un critère principal de classification autorisant une rapide évaluation des architectures proposées dans la littérature. À ce titre, nous avons considéré la granularité de la reconfiguration comme étant le plus adéquat. Ce critère de classification permet en effet de mettre en avant certains paramètres clés des architectures examinées, parmi lesquels les modèles de programmation, l’aspect statique ou dynamique de la reconfiguration et son mode d’utilisation. Cette classification permet de distinguer 3 classes d’architectures modélisées sur la figure 1 [DAV 05]. Cependant, les considérations de consommation de la reconfiguration au niveau système (Fig. 1.A), correspondant au domaine des processeurs programmables, ne seront pas étudiée dans cet article, car ce domaine est très actif par ailleurs [LAU 04, FRI 00]. Il est à noter que cette classification permet de voir la notion de configuration comme le contrôle d’une architecture flexible. Cette vision est vrai pour un FPGA pour lequel il n’y a plus de contrôle a réaliser une fois le circuit configurer. Par contre nous différencions la configuration d’un chemin de donnée qui vise à définir la disposition relative des éléments de l’architecture, et le contrôle de ce chemin de données qui vise essentiellement à définir Reconfigurables et consommation 5 les échanges de données au sein du chemin préalablement définit, ainsi qu’éventuellement les opérations a réaliser. Un processeur programmable ne possédant pas de configuration dans le sens ou sont chemin de données est figé par le constructeur, il est contrôlé pour définir les opérations et la source des données. Nous présentons dans les sections suivantes les principales caractéristiques des architectures grain fin (reconfiguration au niveau logique) et des processeurs reconfigurables (reconfiguration au niveau fonctionnel). 2.2. Les architectures reconfigurables de grain fin La reconfiguration au niveau porte est celle qui est réalisée sur les composants FPGA [NKE 98]. Les architectures supportant ce type de reconfiguration sont qualifiées de grain fin en raison de la faible largeur des chemins de données. A ce niveau, la reconfiguration opère au niveau logique sur des Look-Up Table (LUTs) et sur leurs interconnexions (figure 2). Étant donnée la quantité de LUTs nécessaire à la définition de fonctions évoluées, et un réseau d’interconnexions totalement connecté, ces architectures nécessitent un très grand nombre de données de configuration. Blocs Logique Reconfigurable Interconnexions Chaînage Blocs d'E/S Look Up Table A B C D 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 Z 0 0 0 1 1 1 . . . 0 0 1 1 0 1 0 1 0 0 0 1 Logique Combinatoire A B Z C D Z = A.B+ D.C Figure 2. Architecture générique des composants reconfigurable de grain fin. 6 2e soumission à Technique et science informatiques. La reconfiguration au niveau logique offre la possibilité de définir n’importe quel type de chemin de données en synthétisant les opérateurs requis par l’application. Cette caractéristique est très intéressante pour les traitements logiques pour lesquels chaque bit est susceptible d’être traité indépendamment. Mais si cette flexibilité facilite la spécialisation des chemins de données disposant d’un fort parallélisme au niveau bit, elle est par contre défavorable aux traitements arithmétiques. Lorsque l’on parle de FPGA, il est commun de se référer aux deux grandes familles de composants reconfigurables au niveau logique, à savoir les produits des sociétés Xilinx et Altera, leaders mondiaux du marché. Les dernières générations de FPGA, le VIRTEX pour Xilinx [XIL 01] et le STRATIX pour Altera [ALT 02], offrent de très fortes capacités d’intégration (≈ 10, 000, 000 de portes équivalentes) et des fréquences de fonctionnement élevée (500 MHz pour le Virtex4 et le Stratix II). Dans les dernières génération de circuits, les fabricants ont rajouté un grand nombre d’artifices permettant d’augmenter les performances globales de ces circuits. Par exemple, l’ajout d’un niveau de hiérarchie permet le regroupement de cellules logiques au moyen d’une matrice d’interconnexions locale qui accélère les communications entre proches voisins. La dernière évolution des FPGA vient de l’intégration de nombreuses fonctions évoluées au sein même du circuit. Ainsi les DSP Blocks d’Altera et les XtremeDSP de Xilinx offrent des puissances de calcul élevées pour des applications flot de données au niveau arithmétique. Conjointement à l’ajout de ces blocs spécialisés, il est important de noter l’accroissement constant des capacités de stockage local par l’intégration de mémoires de plus en plus grandes. Il est également à noter que sont récemment apparues des architectures dont les structures sont directement issues des FPGA mais dont les ressources de calcul sont légèrement plus "grosses" [HAR 01]. Celles-ci ne manipulent plus des bits mais des données dont la largeur varie typiquement de 2 à 4 bits. le projet GARP [HAU 00], ou le projet NAPA [RUP 98] en sont des exemples. Cependant, dans le cadre de cette étude, ces architectures n’ont qu’un intérêt limité puisqu’elles se traduisent par les mêmes avantages et inconvénients que les FPGA commerciaux. 2.3. Les processeurs reconfigurables L’inadéquation des FPGA avec les applications à dominante de calculs arithmétique a amené les concepteurs à proposer d’autres approches. Dans ces nouvelles architectures (figure 3), les interconnexions et les opérateurs sont reconfigurables mais travaillent au niveau arithmétique. Ceci a pour effet d’améliorer les performances sur les traitements arithmétiques, au détriment des optimisations au niveau bit et donc de la flexibilité. La plupart de ces architectures utilisent un réseau d’interconnexion [ZHA 99] à deux dimensions, éventuellement hiérarchique. On peut citer, par exemple, les architectures DReAM [BEC 00], Morphosys [SIN 00] ou MONTIUM [SMI 02]. Cependant certaines architectures présentent une topologie linéaire comme le Piperench [GOL 00]. La granularité utilisée dans ces architectures permet de ré- Reconfigurables et consommation 7 duire la taille des configurations et ainsi d’envisager des stratégies de reconfiguration dynamique. Opérateur dédié ou programmable SB CU CU SB SB MUL CU SB ALU SB AG CU Interconnexion reconfigurable SB SB MEM SB MEM SB AG SB SB CU SB CU ALU SB MUL ADD SB SB CU CU SB Entrée/sortie reconfigurable Figure 3. Architecture générique des composants reconfigurable de grain épais. Deux approches, dépendant du modèle de programmation envisagé, sont utilisées pour définir les ressources de calcul au niveau fonctionnel. La première consiste à distribuer le contrôle dans l’architecture, et à définir une hiérarchie dans laquelle le plus bas niveau de contrôle définit la fonctionnalité de l’opérateur. Dans ce cas, les unités de calcul sont relativement complexes et capables de supporter plusieurs opérations. Elles sont typiquement constituées de plusieurs opérateurs (e.g. multiplieur, UAL, registres à décalages, . . .) et disposent d’un registre de configuration ou d’un contrôleur local. Ce type d’approche est par exemple utilisée dans le Systolic Ring [SAS 01]. D’autres architectures reconfigurables au niveau fonctionnel, telles que Pléiades [ABN 01], PACT-XPP [BAU 03] ou DART [DAV 03], se basent en revanche sur des primitives de calcul câblées dont les fonctionnalités sont déterminées en fonction du domaine applicatif. On trouve ainsi dans ces architectures des opérateurs tels que des multiplieurs, des UALs, des générateurs d’adresses, des mémoires, . . . et éventuellement certaines fonctions plus spécifiques destinées à accélérer certains traitements. Pour ces architectures, la taille des reconfigurations étant limitée, des mécanismes évolués peuvent être mis en œuvre pour distribuer les informations de configuration et ainsi réduire le coût énergétique associé au contrôle. 8 2e soumission à Technique et science informatiques. 3. Sources de dissipation de puissance Dans les paragraphes qui suivent, nous présentons les atouts associés aux différentes familles architecturales présentées jusqu’à lors sous l’angle de l’efficacité énergétique qui est définie par l’équation 1 [BRO 02]. Ce critère nous semble le plus adapté, afin de comparer les potentialités des architectures reconfigurables en terme de consommation, mais aussi de performances. Comparer des architectures n’est pas une chose facile, car les métriques ne sont pas toujours calculées ou interprétées de la même manière [HEN 02]. Cette estimation se complique lorsque l’on souhaite avoir une comparaison multi-critères. Les performances dépendent de très grands nombres de facteurs comme le jeu d’instruction des architectures, le domaine d’application visé, la technologie utilisée, . . . De ce fait les chiffres données dans cet article sont des ordres de grandeur. 3.1. Efficacité énergétique L’efficacité énergétique (equation 1) s’exprime en MOPS/mW. Cette métrique représente le compromis performance/consommation d’une architecture. E.E. = Nop .Fclk Pdyn + Pstat + PSC · M OP S mW ¸ [1] Dans l’équation 1, Nop représente le nombre moyen d’opérations réalisées par cycle. Le produit Nop .Fclk représente donc la puissance de calcul de l’architecture considérée et s’exprime en MOPS. La somme Pdyn (puissance dynamique), Pstat (puissance statique), PSC (puissance de court-circuit) représente quant à elle la consommation de puissance sous-jacente à l’exécution de Nop opérations par cycle. Si l’on considère un Pentium 4 D940, dont la consommation est aux alentours de 120 Watts, on obtient une efficacité énergétique de l’ordre de 0,2 MOPS/mw si l’on considère les résultats de performances fournis par SiSSandra [SIS 06]. Il est à noter que cette métrique ne présage pas de la qualité en performance d’une architecture mais permet de mettre en avant les optimisations souhaitables pour obtenir des architectures efficaces du point de vue de la consommation. Le domaine des architectures reconfigurables rajoute, aux approches standard un certain nombre de compromis et de paramètres que nous expliciterons dans la suite de cet article. Certaines optimisations présentées ne sont pas spécifiques au domaine du reconfigurable, nous nous efforcerons alors de présenter les spécificités des architectures reconfigurables permettant la mise en œuvre originale de ces techniques. Reconfigurables et consommation 9 3.2. La consommation statique La réduction des tailles de lithographie nécessite de réduire les tensions d’alimentation des circuits. Si l’on souhaite conserver des niveaux de performances temporelles acceptables, on est alors contraint de réduire les tensions de seuil des transistors [YEA 02]. La tension de seuil impactant exponentiellement les courants de fuite du circuit, sa réduction fait prendre de plus en plus d’importance à la puissance statique, jusqu’alors négligée. Pstat = X Ileaki .VDD ∀i ∈ {Opr, Ctr, M em, inter} [2] i Avec Ileaki – Le courant de fuite moyen du composant i et VDD la tension d’alimentation du circuit. La consommation statique est directement liée à la quantité de ressources intégrées sur le silicium. Elle affecte tous les éléments du circuit, depuis les ressources de calcul jusqu’aux mémoires en passant par les éléments de contrôle et d’interconnexion. Cette consommation ne dépendant pas de l’activité des données (équation 2), il est important d’avoir un taux d’activité aussi élevé que possible pour éviter que des ressources inutilisées dissipent de la puissance inutilement. Cette composante souffre ainsi de l’augmentation du parallélisme dans les architectures, puisque l’exploitation du parallélisme passe par une augmentation de la quantité de ressource de calcul et par une réduction conjointe de leur activité. En dehors du taux d’utilisation des ressources, dépendant notamment de l’architecture, les techniques d’optimisation de la consommation statique ne sont pas propres aux architectures reconfigurables. Actuellement les solutions sont technologique par l’utilisation de transistors spécifiques (multi VT ou multi permissivité). Elles ne seront en conséquence pas détaillées dans cet article. 3.3. La consommation dynamique Pdyn = X 2 αi .Cdyni .Fclk .VDD ∀i ∈ {Opr, Ctr, M em, inter} [3] i Cdyni = Ai .CS [4] La définition classique de la consommation dynamique (équation 3) fait apparaître un paramètre applicatif αi qui représente l’activité du circuit, en première approximation αi = 0, 5. Contrairement à la puissance statique l’augmentation de ce paramètre pénalise la consommation dynamique. Des paramètres technologiques CSi , représen2 tant la capacité moyenne surfacique du composant i, et VDD , on remarque alors que la puissance dynamique varie de manière quadratique avec la tension d’alimentation. Enfin, les derniers paramètres dépendent quant à eux de l’architecture (bien qu’étant 10 2e soumission à Technique et science informatiques. aussi liés aux possibilités de la technologie employée) et sont la fréquence de fonctionnement de l’architecture (Fclk ) et la surface moyenne du composant i (Ai ). De même que précédemment, ces paramètres sont relatifs à tous les éléments de l’architectures (ressources de calcul, de contrôle, de mémorisation et d’interconnexion). C’est à dire que toutes les éléments de l’architecture participe à la consommation dynamique du circuit. 3.4. La consommation de court-circuit La consommation de court-circuit est issue de la conduction simultanée des transistors P et N intervenant lors du basculement de la valeur de sortie d’une fonction logique. Cette puissance de court-circuit peut être assimilée à la puissance dynamique (équation 5) du point de vue de son optimisation en consommation. PSC = X 2 αi .CSCi .Fclk .VDD ∀i ∈ {Opr, Ctr, M em, inter} [5] i Dans cette équation CSCi représente le transfert de charges entre deux portes, il dépend essentiellement des temps de montée et de descente des signaux d’entree, du courant moyen dans les transistors, de la tension d’alimentation et des tensions de seuils. L’optimisation de la puissance de court-circuit consiste à réduire l’activité et la surface du circuit. A l’heure actuelle la consommation de court-circuit représente environ 10% de la consommation totale d’un circuit. 3.5. conclusion Il ressort des équations 2, 3, 4 et 5 que l’optimisation de la consommation d’énergie passe par l’optimisation de la surface moyenne des opérateurs, de la hiérarchie mémoire et des ressources de contrôle. Une architecture ne sera en effet considérée comme étant efficace du point de vue énergétique que dans la mesure où l’essentiel de la consommation d’énergie est localisée dans les opérateurs et que ces derniers sont optimisés. Il faudra apporter une attention particulière à l’interconnexion, qui devient prépondérante dans les circuits reconfigurables. Dans les sections qui suivent nous examinons plus en détail les principales sources de consommation et nous qualifions les capacités des architectures reconfigurables à minimiser cette consommation, pour un niveau de performance donné. Les optimisations présentées adressent volontairement l’ensemble des acteurs du domaine que sont les concepteurs d’architectures (qui devront optimiser les opérateurs et l’architecture matérielle support de la reconfiguration) et les utilisateurs de ces dernières (qui devront optimiser les aspects applicatifs et gestion de l’architecture). Reconfigurables et consommation 11 4. Distribution de la consommation dans les architectures reconfigurables 4.1. Architectures reconfigurables grain fin Les FPGA offrent une reconfiguration au niveau bit et utilisent généralement un réseau d’interconnexion de type mesh (maillage). De nombreux travaux ont démontré le potentiel de ces architectures du point de vue de la performance. Ces architectures introduisent cependant des éléments pénalisant leur efficacité énergétique. Construire des opérateurs arithmétique implique en effet l’utilisation d’un grand nombre de cellules binaires qui doivent être interconnectées. Le réseau étant très flexible, les signaux doivent alors traverser un grand nombre de matrices d’interconnexions (SwitchBox) qui induisent un gaspillage d’énergie non négligeable. Les études menées pour estimer la consommation d’énergie des FPGA [POO 05, SHA 02, GAR 00] montrent que 60 à 70% de l’énergie consommée est due à l’interconnexion, 20% est due à l’arbre d’horloge et que le reste se répartit entre les blocs de calcul et les entrées-sorties. Cette distribution inhabituelle de la consommation traduit un surcoût énergétique lors des opérations arithmétiques, lié au fait que ces opérations ne nécessitent pas un contrôle individuel des bits de données [ABN 01]. Un autre inconvénient de ces architectures provient du volume de données de configuration nécessaire à la spécification de l’architecture. Cette configuration (qui concerne les opérateurs au niveau bit et les interconnexions) est chargée dans une mémoire de type SRAM. Lorsque ces configurations atteignent le million de bits [XIL 03, ALT 05b], l’énergie absorbée lors des phases de reconfiguration doit être pris en compte. 4.2. Processeurs reconfigurables La distribution d’énergie des processeurs reconfigurables peut être rapprochées de celle des processeurs programmables. L’ajout de ressources et l’augmentation de la fréquence pour accroître les performances en conservant la flexibilité se paye en effet par une forte consommation d’énergie de la partie opérative. Cependant la méthode de reconfiguration des processeurs reconfigurables permet d’envisager la réduction de la consommation d’énergie du plan de configuration. En limitant la taille de la configuration et en tenant compte de la règle du 80/20 [VIL 02] ces reconfigurations arrivent très occasionnellement et peuvent ainsi réduire la consommation due à la distribution du contrôle de l’architecture. L’introduction de la flexibilité sur l’interconnexion du chemin de donnée peut par ailleurs pénalisé ces architectures, sans pour autant atteindre les niveaux rencontrés dans le cadre des FPGA. 12 2e soumission à Technique et science informatiques. Type d’Architecture ASIC FPGA Processeur reconfigurable Processeur Taille de la configuration 0 bit ≈ 1 M bits ≈ 1 kbits Fréquence de configuration 0 Tâche Fonction Flexibilité Efficacité énergétique -+/+ NA ≈ 1-10 MOPS/mW ≈ 10-100 MOPS/mW ≈ 10 bits Cycle ++ ≈ 0.1-1 MOPS/mW Tableau 1. Efficacité énergétique des différentes classes d’architecture 4.3. Conclusions La problématique de la faible consommation dans les architectures reconfigurables doit prendre en compte toutes leurs spécificités. Cette contrainte doit être optimisée à tous les niveaux de la conception d’un système à base d’architectures reconfigurables. La table 1 résume les avantages et inconvénients des différentes classes d’architecture. La première colonne donne une estimation du nombre de données de reconfiguration/contrôle nécessaires. La deuxième colonne présente alors la fréquence de reconfiguration envisageable et spécifie si la reconfiguration doit être effectuée à chaque cycle, à chaque appel de fonction (ou exécution d’une boucle) ou lorsqu’une nouvelle tâche (application) arrive. Le critère de flexibilité est ensuite approximé. La dernière colonne présente les ordres de grandeur de l’efficacité énergétique. Pour les ASICs cette mesure n’est pas réaliste car dépendant complètement du circuit, de sa conception et d’aspects technologiques trop nombreux. Nous présentons les ASICs et les processeurs comme base de comparaison. Si d’un point de vue performances (temporelles et énergétiques) les ASICs sont la référence, du point de vue de la flexibilité, les processeurs n’ont pas d’équivalents. Les architectures reconfigurables offrent alors une large gamme d’alternatives offrant des compromis d’implémentations plus ou moins efficaces en fonction des ressources disponibles. Il est à noter que si les FPGA sont à priori les plus flexibles, la difficulté de développement d’applications les rends moins intéressant que les processeurs reconfigurables. Nous allons dans la suite du document présenter les optimisations possibles et les axes de recherche pour réduire la consommation des architectures reconfigurables. 5. Optimisation de la consommation Dans [CHO 03], en optimisant le portage d’une application sur une cible FPGA, les auteurs obtiennent des gains de consommation de l’ordre de 70% par rapport à une implémentation classique sur un Xilinx VIRTEX II et un DSP Texas Instruments TMS320C6415. Ces gains sont obtenus grâce à un choix judicieux des algorithmes. Par cet exemple, nous souhaitons illustrer l’impact des optimisations algo- Reconfigurables et consommation 13 rithmiques sur l’efficacité énergétique du système. Bien que cet article de synthèse se concentre sur les optimisations de "conception" d’architectures reconfigurables, il est bien évident qu’une architecture aussi efficace soit-elle ne peut suffire à garantir l’efficacité énergétique d’un système complet, et ne dispense pas l’utilisateur d’une optimisation de haut niveau de l’application à porter. L’équation 3 modélisant la consommation dynamique dans les circuits reconfigurables met en avant deux types de composantes. D’un côté les paramètres CS , F et VDD , décrivant respectivement la capacité surfacique moyenne du circuit, sa fréquence de fonctionnement et sa tension d’alimentation, traditionnellement communs à l’ensemble du circuit, et de l’autre les paramètres αi et Ai , propres aux différents éléments du circuit, à savoir l’unité de contrôle, de calcul, de mémorisation et d’interconnexion. Les paragraphes qui suivent visent à dresser un état des différentes techniques d’optimisation relatives à chacun de ces paramètres. 5.1. La consommation dans le contrôle La consommation issue de l’unité de contrôle s’estime par le biais de l’équation 6. Dans cette partie, nous nous intéressons à l’optimisation des paramètres propres à l’unité de contrôle, à savoir son activité αCtr et sa complexité ACtr . 2 PdynCtr = ACtr .αCtr .Cdyn .F.VDD [6] L’optimisation de ACtr passe principalement par une réduction du volume d’informations de contrôle devant être distribuées pour faire fonctionner le circuit. Ces informations de contrôle peuvent concerner tout aussi bien la spécification du chemin de données de l’architecture, que le contrôle de celui-ci. Ainsi, dans une architecture de grain fin tout type d’opérateur et d’interconnexion peut être spécifié ce qui conduit à un volume de configuration particulièrement élevé. À titre d’exemple le dernier composant proposé par Xilinx, le XC4VLX200, nécessite plus de 51 Mbits de configuration, qui doivent être stockés et distribués. En revanche, une fois spécifié, le chemin de données n’a plus à être contrôlé, aucune information de contrôle ne doit donc être distribuée au cours du temps. À l’inverse, dans un processeur programmable, le chemin de données ne doit pas être défini puisqu’il est figé lors de la conception du processeur. En revanche, pour contrôler à chaque cycle le chemin de données, ce type de solution nécessite des mémoires de programme dont les tailles varient avec la complexité des applications à traiter. Entre ces deux extrêmes, certains processeurs reconfigurables intègrent des techniques de reconfiguration offrant un niveau de flexibilité comparable à celui des processeurs tout en minimisant la complexité de cette opération de contrôle [DAV 03, EBE 04]. Outre ces techniques dédiées aux architectures à grain épais, des travaux ont également été menés dans le but de limiter la quantité de données devant être transférée pour reconfigurer le circuit. Elles se sont notamment traduites par l’introduction de 14 2e soumission à Technique et science informatiques. techniques de reconfiguration partielle et par le partage d’informations de configuration entre plusieurs sous-ensembles du circuit. Outre ce gain en consommation relatif à la minimisation de la quantité de données à transmettre, la reconfiguration dynamique à par ailleurs permis la mise en œuvre d’autres optimisations de la consommation. En particulier, dans [PAR 97, PAR 99], les auteurs utilisent la reconfiguration partielle pour réduire la taille du circuit utilisé, un circuit plus petit consommant moins d’énergie. L’objectif principal est d’éviter d’avoir une activité sur des ressources non utilisées. Ils ont appliqué cette méthode au traitement des images et s’adaptent aux besoins en monitorant les entrées du système. Des blocs fonctionnels sont alors répliqués ou supprimés en utilisant la reconfiguration partielle et dynamique. Ce premier résultat est un effet collateral de la reconfiguration dynamique qui vise à augmenter la densité fonctionnelle des circuits. Cette densité fonctionnelle permet alors d’utiliser des circuits plus petits en multiplexant temporellement différentes applications sur le même circuit. Un autre effet de la reconfiguration dynamique influe sur la gestion du flot de contrôle des chemins de données. Le coût énergétique du contrôle est par ailleurs très largement influencé par la méthode mise en œuvre pour faire évoluer le flot de contrôle. Le choix de cette méthode est basé sur un compromis entre performances et flexibilité. Le premier choix offert au concepteur est une solution très déterministe, basée sur des structures de microséquenceurs qui gèrent une séquence prédéterminée (à la compilation) d’envoi d’informations de configurations ou de contrôle. Cette solution se traduit par une maîtrise de la consommation mais limite très significativement la flexibilité, i.e. la facilité de mise en œuvre de la reconfiguration (e.g. DART [DAV 03], PACT-XPP [BAU 03]). A l’opposé, il est possible de se baser sur des techniques de beaucoup plus haut niveau permettant de supporter des interruptions, voire d’ordonnancer dynamiquement les différentes phases de traitement d’une application [STE 04, NOL 03, BEN 04]. Cette approche permet notamment d’envisager de faire de la gestion dynamique de puissance sur des architectures reconfigurables. Dans [CHE 05], une autre alternative consiste à se baser sur une structure de contrôle elle-même reconfigurable et autoadaptable. Le contrôle dynamique de l’application est modélisé sous la forme de réseaux de Petri implémentés directement sur la structure matérielle. Outre la capacité de supporter des flots de contrôle dynamiques (et donc des optimisations logicielle efficaces du code applicatif), cette solution à l’avantage supplémentaire, du point de vue de la consommation, de minimiser le coût énergétique de la distribution du contrôle puisque le passage d’un état du graphe de pétri à un autre (et donc d’un état de contrôle à un autre) n’induit de l’activité que sur une très faible portion de la structure de calcul. 5.2. La consommation dans les ressources de mémorisation La consommation issue de l’unité de mémorisation s’estime par le biais de l’équation 7. De même que précédemment, nous ne nous intéressons dans cette partie qu’à l’optimisation des paramètres propres à l’unité de mémorisation, à savoir son activité αM em et sa surface AM em . Reconfigurables et consommation 2 PdynM em = AM em .αM em .Cdyn .F.VDD 15 [7] La réduction du coût de l’accès aux données implique la minimisation de deux critères : le coût d’un accès mémoire et le nombre d’accès mémoire. Le coût d’un accès mémoire dépend de la taille de cette dernière, mais ne varie pas de façon linéaire (figure 4). Il faut alors privilégier les mémoires de petites taille et mono-port. Bien que les architectures reconfigurables disposent de ressources de stockage dont le nombre et la taille sont figés, il est concevable de construire des hiérarchies mémoire efficaces [CHI 05]. À titre d’exemple, le FPGA VirtexII dispose de trois types de ressources de mémorisation : des registres, des mémoires locales de 128 bits et des blocs de mémoire de 18 kbits. Dès lors, il est possible de concevoir une hiérarchie mémoire appropriée, limitant le coût énergétique moyen des accès aux données. Bien que les études portant sur la conception de hiérarchies mémoire sur les composants dédiés soient aujourd’hui en passe d’arriver à maturité [CHI 03, WUY 98], elles tardent à s’amorcer sur les composants reconfigurables. 160 pJ par accès 140 120 100 80 60 40 20 0 64 256 1024 16536 Nombre de mots Figure 4. Consommation d’énergie d’un accès mémoire en fonction de la taille de la mémoire La notion de reconfiguration s’introduit toutefois au sein même des hiérarchies mémoire. En particulier, certaines études visent à proposer des structures mémoires supportant différents modes d’accès, permettant ainsi la sélection d’un mode approprié aux besoins applicatifs et donc efficace d’un point de vue énergétique ([MAI 00, SRI 02]). Afin de proposer une mémoire de dimension adaptée aux données à manipuler, [NGA 95] propose une structure basée sur des primitives de mémorisation pouvant être configurées suivant quatre motifs (1kx1bits, 512x2bits, 256x4bits ou 128x8 bits). Comparativement à une solution programmable standard basée sur l’interconnexion de blocs de mémorisation de largeur 1 bits, cette solution s’avère 20 fois plus dense. 16 2e soumission à Technique et science informatiques. Celle-ci se présente donc comme une bonne alternative à l’utilisation de composants programmables. Afin de minimiser les transferts de données entre mémoires, certaines études visent par ailleurs à proposer des interfaces mémoire reconfigurables. Ainsi, pour être accessibles par les ressources de calcul, les données n’ont plus à être tranférées, seules des modifications des liens entre ressources de calcul et de mémorisation sont nécessaires ([TEW 98, SAK 97]). De part leur structure, les architectures reconfigurables autorisent par ailleurs une réduction sensible du nombre d’accès aux données. L’exploitation de la localité spatiale des données est notamment facilitée par les connexions de type "un vers tous" pouvant être mises en œuvre dans ces architectures. Il devient ainsi possible d’approvisionner plusieurs unités de calcul par le biais d’un unique accès mémoire. La localité temporelle des données passe quant à elle par l’utilisation des plus bas niveaux de la hiérarchie mémoire. L’exploitation des registres internes aux chemins de données pour créer des chaînes de retard permet à ce titre d’économiser de précieux accès mémoires. Dans [DAV 03], l’auteur montre que l’exploitation de ces chaînes de retard dans un processeur reconfigurable implémentant un filtre FIR permet de réduire de 30% l’énergie consommée lors de l’exécution de cette application. Il est par ailleurs à noter que le fonctionnement flot de données adopté dans les architectures reconfigurables de grain fin ou les processeurs reconfigurables minimisent naturellement la quantité d’accès en mémoire puisque leur fonctionnement flot de données élimine la nécessité de stocker les résultats temporaires. Du point de vue de l’accès aux données, il est finalement intéressant de s’attarder sur la méthode employée pour gérer le séquencement de ces accès. En effet, les mécanismes mis en œuvre pour générer les adresses des données manipulées peuvent avoir un impact significatif sur la consommation. Une fois encore, la méthode employée doit permettre de satisfaire un compromis entre flexibilité et efficacité énergétique. Dans le spectre des solutions envisageables, les accès microprogrammés représentent l’optimum de flexibilité mais conduisent à un surcoût énergétique très conséquent, puisqu’à chaque cycle, une instruction doit être lue, décodée, puis traitée afin de pouvoir générer une adresse. Pour minimiser ce surcoût énergétique, des solutions plus câblées telles que le GAG (Generic Address Generator) [HAR 95] peuvent être utilisées. Celles-ci se basent sur la présence de trois modules pour générer tout types de séquences d’accès régulières, de type modulo. En combinant ces modules, des adressages de tableaux à multiples dimensions peuvent également être réalisés. L’efficacité énergétique de ces modules se paye cependant par une réduction de la flexibilité puisque ce type de solution ne permet la génération que de séquences d’accès régulières. 5.3. La consommation dans les opérateurs De la même manière que pour le contrôle et l’unité de mémorisation, les optimisations des opérateurs visent essentiellement à maîtriser les paramètres propres aux opérateurs, à savoir l’activité αOpr et la surface AOpr . Si les opérateurs sont à optimiser, on notera cependant que c’est ce travail qui va définir l’efficacité énergétique de Reconfigurables et consommation 17 l’architecture. En effet, les opérateurs sont les supports de réalisation des traitements d’une application, c’est une source de consommation nécessaire et utile. Il est donc indispensable d’optimiser l’architecture interne des opérateurs et donc de bien choisir l’algorithme arithmétique d’implémentation [BEU 01]. La première optimisation possible vient de la décomposition logique des circuits. Cette optimisation concerne essentiellement les architectures grain fin, les processeurs reconfigurables travaillant au niveau arithmétique. En effet, dans un FPGA, la logique est implémentée sous forme de LUT généralement de 4 entrées. Ces LUT, pouvant être assimilées à de la mémoire SRAM, sont souvent sous-utilisées gaspillant alors de la logique et des interconnexions. Ce problème d’optimisation de l’utilisation des LUT est NP-complet et n’est pas beaucoup abordé dans la littérature (du point de vue de la consommation), les architectures étant extrêmement protégées par leur constructeur. Cependant, des optimisations peuvent êtres apportées à partir d’une solution initiale, en remaniant le mapping technologique afin de réduire, à fonction constante, le taux d’activité des signaux internes d’une fonction complexe [CHE 97]. Les résultats obtenus amènent une amélioration de l’ordre de 10 % sur la consommation globale du circuit. Il est aussi possible, étant donnée la flexibilité des architectures, d’envisager des techniques d’encodage de bus ou de machines d’états [SUT 02] permettant de réduire le taux d’activité des signaux. Une autre approche se retrouve dans les architectures FPOP [TIS 99] ou le RNS Reconfigurable Processor [CAR 02]. L’idée est ici de tirer partie des propriétés des codes redondants ou de l’arithmétique des résidus (RNS), afin de réduire la surface des opérateurs arithmétiques. Ces arithmétiques permettent de représenter les systèmes sous la forme de petits chemins de données indépendant, permettant d’optimiser l’utilisation des ressources de routage. Le parallélisme des architectures grain fin est particulièrement bien adaptée à ce type d’approche. Il est également possible d’utiliser l’arithmétique en-ligne afin de réduire la surface des opérateurs et l’activité des signaux [BEU 04], cette approche ne fonctionne en revanche qu’avec des architectures reconfigurables grain fin. Finalement le mécanisme d’horloge gardée (clock gating), qui est une technique très largement utilisée, peut être appliquée aux architectures reconfigurables. En utilisant les ressources de gestion d’horloge intégrées, il est possible de gérer dynamiquement l’arbre d’horloge afin de ne faire commuter que les parties utiles du circuit [BRY 00]. Cette approche est par exemple possible dans le Spartan 3E (version lowpower du circuit de base) et dans le nouveau Virtex 4 de chez Xilinx, par le biais de l’utilisation d’une broche de validation sur le Buffer d’horloge [XIL 05]. Une autre possibilité est de réduire dynamiquement la fréquence de certaines parties du circuit. Ces techniques sont aussi employées dans des processeurs reconfigurables comme DART par exemple [DAV 03]. 18 2e soumission à Technique et science informatiques. 5.4. La consommation dans l’interconnexion Les architectures reconfigurables nécessitent la mise en place d’un réseau d’interconnexions performant et flexible. C’est en effet le réseau qui supporte une grande partie de la flexibilité de ces architectures. Comme nous l’avons dit précédemment, l’interconnexion est le bloc qui consomme le plus dans un FPGA et il convient donc de l’optimiser avec soin et de tirer partie au mieux de ses caractéristiques. Les ressources de calcul sont interconnectées par un réseau plus ou moins flexible et plus ou moins performant [ZHA 99]. Les connexions sont réalisées par des matrices d’interconnexions (SwitchBox figure 5.c) construites autour de portes de transmission permettant de créer des connexions entre les segments arrivant sur la matrice (ConnectionBox figure 5.b). Un grand nombre d’architectures utilisent un réseau 2D de type Mesh (figure 5.a). cluster CB CB CB cluster Ssc CB CB ≡ Nbc MOS b) Modèle d’une boite de connexions (ConnectionBox) SB CB Ncs CB SB cluster CB cluster CB ≡ Ncs connections Nbc c) Modèle d’une boite de commutation (SwitchBox) a) Réseau MESH 2D ≡ Cdiff d) Modèle d’un interrupteur ≡ Ron Cdiff Cwire e) Modèle en pi d’un fil d’interconnexion Figure 5. Architecture générique d’un réseau 2D de type MESH et modélisation des différents éléments de l’interconnexion. Une modélisation en π (figure 5.e [CEL 02]) peut être construite pour ce type d’interconnexion. Si ce modèle simple (et donc limité) ne permet pas d’exprimer toutes la difficulté d’optimisation d’un réseau d’interconnexion, il permet d’identifier les points à optimiser grâce à l’équation 8. Si l’on considère (figure 5.a) que les îlots de calcul sont les clusters, Nbc comme étant le nombre de connection par canal de communica- Reconfigurables et consommation 19 tions (e.g. entre deux SwitchBox), Ssc le nombre de sortie accessibles par cluster (figure 5.b), Ncs le nombre de connexions réalisables par SwitchBox (figure 5.c) et L le nombre de SwitchBox à traverser pour une communications, alors il ressort de l’équation 8 que l’optimisation en consommation d’un réseau d’interconnexion consiste à réduire la longueur de ces interconnexions (L) tout en définissant un compromis optimal entre flexibilité et performance (Ncs , Ssc etNbc ). Par exemple il est intéressant de construire des réseaux segmentés, présentant une connectique tous les 2, 4, 8 blocs. Ceci permet en effet de réduire le nombre de SwitchBox à traverser, optimisant de ce fait la consommation au détriment de la flexibilité du réseau. Il est par ailleurs à noter que l’optimisation en consommation du réseau s’apparente à une optimisation en performance. Pcom = α.FCLk .(2.Cdif f .(Ss c + Nc s + + L.((2.Nc s + Nb c ) Ss c Nb c 2 ).Cdif f + Cwire )).VDD ) Ss c [8] La longueur des interconnexion peut être optimisée par la définition de structure en arbres, ou des variantes de celles-ci telle que la structure de l’ADAPT2400 de Quicksilver [PLU 04]. Ce type de structure permet de faire évoluer suivant une loi logarithmique le nombre de SwitchBox traversées avec la distance entre le producteur et le consommateur (et non une loi linéaire comme dans un réseau mesh). Des structures efficaces dans le cadre de liaisons courtes (Point à Point, crossbar) peuvent également être associées à ces réseaux dans des structures hiérarchiques. Ces connections locales sont cependant trop coûteuses à généraliser pour des systèmes intégrant un grand nombre de ressources. Une architecture grain fin et faible consommation a été proposée par V. George [GEO 00]. Cette architecture implémente une interconnexion de type low-swing signaling et apporte une attention particulière aux matrices d’interconnexions par l’extraction de la taille optimale des transistors constituant les portes de transmission. Le problème principal provenant des connexions non activées qui introduisent de fortes capacités de charge, un réseau d’interconnexions hiérarchique permettant la réduction de la consommation a été étudié. La hiérarchie de calcul a également été revue pour obtenir une consommation plus faible tout en maintenant un niveau de flexibilité acceptable. Le dernier aspect de l’optimisation de l’interconnexion dans les architectures de grain fin vient du placement des blocs de traitement logiques dans la couche opératoire des FPGA. Ce placement a un impact fort sur le routage. Les algorithmes de placement/routage minimisent le temps d’exécution ou la surface. Pour une conception efficace en consommation le placement/routage doit souvent être effectué à la main. 20 2e soumission à Technique et science informatiques. 5.5. Optimisations au niveau technologique Dans ce paragraphe, nous nous intéressons à l’optimisation des paramètres technologiques, communs à l’ensemble du circuit. Il est important de noter à ce titre que d’une manière générale les optimisations d’ordre technologiques mises en œuvre dans les circuits spécialisés de type ASICs sont directement réutilisables au sein des composants reconfigurables, sans adaptation particulière. Ces optimisations ne concernent que les concepteurs de circuits. Au niveau transistor les initiatives d’optimisations propres aux circuits reconfigurables sont rares, le marché étant couvert par les deux principaux fabricants de FPGA. Cette situation laisse donc peux de place pour les innovations à ce niveau. Cependant, Xilinx offre désormais des architectures spécifiques pour la faible consommation, par le biais de l’architecture CoolRunner [XIL 03]. Cette architecture de CPLD2 possède un mode standby et supporte différents domaines d’horloge et un fonctionnement asynchrone. Cette architecture supporte des fréquences de 333 MHz et consomme 14 µA en mode standby. Ce mode a par ailleurs été intégré dans d’autres architectures de Xilinx, comme le Spartan et le XC4000 (serie XL). Récemment, les fabricants ont par ailleurs intégré dans leurs produits des mécanismes permettant de réduire la consommation. Ces blocs spécifiques concernent essentiellement la gestion du réseau de distribution de l’horloge [BRY 00]. Les FPGA actuels intègrent plusieurs DLL (Delay Locked Loop) ou PLL (Phase Locked Loop) permettant de définir plusieurs domaines d’horloge indépendants [XIL 01, ALT 05a]. Cette possibilité de définir des système Globalement Asynchrone et Localement Synchrone (GALS) ouvre dès lors de nouveaux axes d’optimisation. Dans de tels systèmes, chaque sous-ensemble du circuit est dimensionné au plus juste et est cadencé avec une horloge adaptée. La possibilité de définir plusieurs domaines d’horloge permet en outre de réduire très significativement le coût de la distribution de ce signal au travers du circuit. Des recherches ont par ailleurs été menées à ce niveau pour proposer notamment de nouvelles architectures de portes de transmission. Les auteurs de [KUS 98] ont montré qu’avec une architecture de porte de transmission appropriée la tension d’alimentation peut être ramenée à 2xVT . Cette réduction possible de la tension d’alimentation permet, par voie de conséquence, une réduction quadratique de la puissance dissipée. 5.6. Exploitation du parallélisme Dans cette dernière section, nous nous intéressons à l’optimisation des deux derniers paramètres de l’équation 3, à savoir la tension d’alimentation et la fréquence de fonctionnement. Compte tenu de l’influence quadratique de la tension d’alimentation sur la consommation dynamique d’un circuit, il convient de mener une politique agressive de réduction de ce paramètre. Pour compenser la perte de performance associée à 2. Complex Programmable Logic Device [NKE 98] Reconfigurables et consommation 21 la réduction de la tension d’alimentation, il convient alors d’exploiter au mieux le parallélisme inhérent à l’application. Celui-ci peu cependant revêtir différentes formes. Il est ainsi courant de rencontrer des traitements disposants de forts degré de parallélisme au niveau des mots, des opérations ou encore des tâches. L’efficacité énergétique d’une architecture dépend donc largement de sa capacité à supporter les types de parallélisme propres aux applications à exécuter. Afin d’élargir le spectre des applications implémentables efficacement sur une architecture, certaines études visent à proposer des solutions de calcul supportant différents types de parallélisme ([DAV 03, BAU 03]. D’autres solutions s’attachent ensuite à proposer des structures susceptibles d’assurer le séquencement de plusieurs flots de contrôle en parallèle [CHE 05] et des solutions de mémorisation [MAI 00] supportant toutes ses formes de parallélisme. Le parallélisme peut également être utilisé pour minimiser le volume de données de configuration. En effet, le parallélisme est bien souvent extrait d’une application en dupliquant des séquences de traitement. La transformation de ses séquences de traitement en configuration se traduit alors par la répétition de mêmes motifs de calcul. Cette redondance dans les chemins de données peut alors être exploitée en vue de minimiser la quantité de données à transmettre à destination de ressources de l’architecture. Les mêmes informations peuvent en effet être simultanément envoyées vers de multiples destinations. Un tel partage d’informations de configuration constitue par exemple la base des architectures de type SIMD (Single Instruction Multiple Data) ou du concept de SCMP (Single Configuration Multiple Data) proposé dans l’architecture DART [DAV 03]. Dans [BOE 98], les auteurs montrent une réduction de la consommation d’énergie de l’ordre de 33% par l’utilisation d’une autre forme de parallélisme, dite pipeline "en vague" (Wave Pipeline). Ce pipeline ne découpe pas le circuit en fonctionnalité, mais crée des chemins de longueurs égales. Tirant partie de la topologie des architectures reconfigurables, il permet de ne pas limiter la fréquence de fonctionnement par des chemins critiques trop longs et disparates. Les auteurs ont aussi démontré un gain de 45% par un partitionnement judicieux de l’application. Cette technique de pipeline augmente la puissance dissipée mais peut permettre la diminution de l’énergie globalement consommée pour traiter une application. Cette technique de pipeline est également utilisée dans l’architecture Piperench. Les auteurs utilisent ici la reconfiguration pour définir la notion de pipeline virtuel [SHA 04] permettant l’implémentation d’une application dont le nombre d’étages de pipeline est supérieur à celui que peut supporter l’architecture. 6. Conclusions et perspectives La consommation des circuits reconfigurables devient une contrainte de conception importante. Hormis des effets de bord dus aux spécificités de ces architectures permettant d’obtenir de la flexibilité, toutes les techniques classiques de conception en vue de la faible consommation peuvent êtres utilisées. Les fabricants de circuits reconfigurables apportent par ailleurs un intérêt de plus en plus grand à ces questions 22 2e soumission à Technique et science informatiques. et offrent des possibilités d’optimisation de la consommation dans leurs architectures. La reconfiguration ayant pour le moment principalement été exploitée pour définir des architectures de calcul, il convient par ailleurs de mener une réflexion sur la façon dont ces architectures peuvent être intégrées dans des systèmes complexes nécessitant des mécanismes de contrôle et de synchronisation non triviaux. Il n’existe pas à l’heure actuelle d’architecture reconfigurable au niveau bit, associant des considérations de faible-consommation et une forte densité d’intégration. Des initiatives existent cependant à des niveaux de reconfiguration supérieurs. L’architecture Pléiades [ABN 01] est une architecture reconfigurable hétérogène définie pour la faible consommation. L’intégration de blocs de calcul dédiés et la définition d’un réseau d’interconnexions hiérarchique lui permettent d’obtenir une efficacité énergétique de 30 MOPS/mW. L’architecture DART [DAV 03] est quant à elle une architecture reconfigurable au niveau fonctionnel. La prise en compte, lors de sa conception, de la contrainte de faible consommation permet d’obtenir une efficacité énergétique de 40 MOPS/mW. Cependant de nombreux verrous reste à lever. En effet les architectures reconfigurables à faible grain souffrent d’une sous-utilisation de leurs ressources de calcul amenant un gaspillage d’énergie. De plus, les modèles de consommation entre architectures reconfigurables et dédiés sont différents. La puissance étant généralement due à l’horloge dans les ASIC, alors que ce sont les interconnexions qui sont dominantes dans les architectures reconfigurables de grains fin. Cette pression sur l’interconnexion risque de s’accentuer avec l’avènement des technologies submicroniques profondes. Si le support matériel de l’interconnexion est fixe, le choix des modèles de communications et de la topologie du réseau reste délicat et à adapter en fonction des applications. Le problème de la consommation statique n’a été que peu évoqué dans ce document car non propre aux architectures reconfigurables. C’est cependant un problème majeur qu’il faut prendre en compte à toutes les étapes du cycle de conception des architectures reconfigurable. Cette problématique sera d’autant plus vrai pour les architectures reconfigurables que la flexibilité est obtenues par la redondance du matériel. Enfin, les méthodologies de conception nécessitent des estimations précises et de haut niveau afin de guider la synthèse des applications. Si l’estimation de consommation du plan opératoire commence à être maîtrisée, il en est autrement de la consommation du plan de configuration pour lequel aucun travail n’est mené à ce jour. Ces estimations deviendront prépondérantes si l’on souhaite tirer partie des possibilités de reconfiguration partielle des futures architectures. Ce plan de configuration pose le problème de la maîtrise de la consommation dans les mémoires. Des travaux sur les aspects dynamique de la gestion des architectures reconfigurables dynamiquement sont à faire pour gérer, à la manière d’un système d’exploitation, les ressources de l’architecture. Les circuits actuels permettent d’envisager de faire de la gestion dynamique de tension et de fréquence. Les architectures reconfigurables offrent des opportunités pour la conception faibleconsommation. Si des progrès tardent pour les architectures faible grain, les proces- Reconfigurables et consommation 23 seurs reconfigurables s’affichent d’ores et déjà comme de bonnes alternatives dans le cadre de la conception de systèmes faible consommation. 7. Bibliographie [ABN 01] A BNOUS A., « Low Power Domain Specific Processors for Digital Signal Processing », PhD thesis, University of California, Berkeley, 2001. [ALT 02] A LTERA, « Stratix FPGA Family », Datasheet ver. 3.0, décembre 2002. [ALT 05a] ALTERA, Building Systems with Multiple Clock Domains, vol. 4 de Quartus II 5.0 Handbook, ALTERA, avril 2005. [ALT 05b] ALTERA, Chapter 3 : Configuring Stratix & Stratix GX Devices, vol. 1 de Configuration Handbook, ALTERA, août 2005. [BAU 03] BAUMGARTE V., E HLERS G., M AY F., N ÜCKEL A., VORBACH M., W EINHARDT M., « PACT XPP — A Self-Reconfigurable Data Processing Architecture », The Journal of Supercomputing, vol. 26, no 2, 2003, p. 167–184, Kluwer Academic Publishers. [BEC 00] B ECKER J., P IONTECK T., G LESNER M., « DReAM : A Dynamically Reconfigurable Architecture for Future Mobile Communication Applications », international Workshop on Field Programmable Logic and Applications (FPL 00), Villach, Austria, août 2000, Lecture Notes in Computer Science 1896, p. 312–321. [BEN 04] B ENOIT P., « Architecture des accélérateurs de traitement flexible pour les systèmes sur puce », PhD thesis, Université de Montpellier II, 2004. [BEU 01] B EUCHAT J.-L., « Etude et conception d’opérateurs arithmétiques optimisés pour circuits programmables », PhD thesis, Ecole Polytechnique Fédérale de Lausanne, 2001, Thèse No 2426. [BEU 04] B EUCHAT J.-L., T ISSERAND A., « Evaluation polynomiale en-ligne de fonctions élémentaires sur FPGA », Technique et science informatiques, vol. 23, no 10, 2004, p. 1247–1267. [BOE 98] B OEMO E. I., L ÓPEZ -B UEDO S., M ENESES J. M., « Some Experiments About Wave Pipelining on FPGA’s », IEEE Trans. on Very Large Scale Integration Systems, vol. 6, no 2, 1998, p. 232–237. [BRO 02] B RODERSEN B., « Plenary session : Wireless Systems-on-a-Chip Design », International Symposium on Quality Electronic Design, mars 2002, page 221. [BRY 00] B RYNJOLFSON I., Z ILIC Z., « FPGA clock management for low power applications », International Symposium on Field programmable gate arrays, 2000, page 219. [CAR 02] C ARDARILLI G. C., R E A. D., NANNARELLI A., R E M., « Residue Number System Reconfigurable Datapath », International Symposium on Circuits and Systems, mai 2002, p. 756–759. [CEL 02] C ELIK M., P ILEGGI L., O DABASIOGLU A., Ic Interconnect Analysis, Springer, may 2002. [CHA 99] C HANG H., C OOKE L., H UNT M., M ARTIN G., M C N ELLY A., L EE T., Surviving the SOC Revolution - A Guide to Platform-Based Design, Kluwer Academic Publishers, 1999. 24 2e soumission à Technique et science informatiques. [CHE 97] C HEN C.-S., H WANG T., L IU C. L., « Low Power FPGA Design : A Reengineering Approach », Conference on Design Automation (DAC-97), NY, USA, juin 9–13 1997, p. 656–661. [CHE 05] C HEVOBBE S., « Unité de commande pour systèmes parallèles contrôleur basé sur l’implémentation dynamique de réseaux de Pétri », PhD thesis, Université de Rennes I / CEA List, octobre 2005. [CHI 03] C HILLET D., S AILLE D., S ENTIEYS O., « Conception de hiérachies mémoires faible consommation », Conférence FTFC, 2003. [CHI 05] C HILLET D., A BDELOUEL L., M ÉNARD D., H ERVÉ N., P ILLEMENT S., S ENTIEYS O., « Modèle générique de hiérarchie mémoire pour l’exploration architecturale », Technique et Science Informatiques, , à paraitre en 2005. [CHO 03] C HOI S., S CROFANO R., P RASANNA V., JANG J., « Energy-Efficient Signal Processing Using FPGAs », International Symposium on Field Programmable Gate Arrays, Monterey, USA, février 2003, p. 225–234. [DAV 03] DAVID R., « Architecture reconfigurable dynamiquement pour applications mobiles », PhD thesis, Université de Rennes I, juillet 2003. [DAV 05] DAVID R., L AVENIER D., P ILLEMENT S., « Du microprocesseur au circuit FPGA, une analyse sous l’angle de la reconfiguration », Technique et Science Informatiques, vol. 24, no 4, 2005, p. 395–422. [DEH 96] D EHON A., « Reconfigurable Architectures for General-Purpose Computing », PhD thesis, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, octobre 1996. [EBE 04] E BELING C., F ISHER C., X ING G., S HEN M., L IU H., « Implementing an OFDM Receiver on the RaPiD Reconfigurable Architecture. », IEEE Transactions on Computers, vol. 53, no 11, 2004, p. 1436-1448. [FRI 00] F RIDMAN J., « Sub-Word Parallelism in Digital Signal Processing », IEEE Signal Processing Magazine, vol. 17, no 2, 2000, p. 27–35. [GAR 00] G ARCIA A. D., « Etude sur l’estimation et l’optimisation de la consommation de puissance des circuits logiques programmables du type FPGA », PhD thesis, Ecole Nationale Supérieure des Télécommunications, Paris, 2000. [GEO 00] G EORGE V., « Low Energy Field-Programmable Gate Array », PhD thesis, University of California, Berkeley, 2000. [GOL 00] G OLDSTEIN S. C., S CHMIT H., B UDIU M., C ADAMBI S., M OE M., TAYLOR R. R., « PipeRench : A Reconfigurable Architecture and Compiler », IEEE Computer, vol. 33, no 4, 2000. [HAR 95] H ARTENSTEIN R., K RESS R., « A Datapath Synthesis System for the Reconfigurable Computing », Asia and South Pacific Design Automation Conference, Chiba, Japan, 1995. [HAR 01] H ARTENSTEIN R., « A Decade of Reconfigurable 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 reconfigurable hardware », PhD thesis, University of California, Berkeley, 2000. Reconfigurables et consommation 25 [HEN 02] H ENNESSY J. L., PATTERSON D. A., Architecture des ordinateurs : une approche quantitative (troisième édition), International Thomson Publishing, 2002. [KUS 98] K USSE E., « Analysis and Circuit Design for Low Power Programmable Logic Modules », Master’s thesis, University of California, Berkeley, 1998. [LAU 04] L AURENT J., J ULIEN N., S ENN E., M ARTIN E., « Functional Level Power Analysis : An Efficient Approach for Modeling the Power Consumption of Complex Processors », Global DSP Magazine, vol. 3, no 9, 2004. [MAI 00] M AI K., PAASKE T., JAYASENA N., H O R., DALLY W. J., H OROWITZ M., « Smart Memories : A Modular Reconfigurable Architecture », ISCA ’00 : Proceedings of the 27th annual International Symposium on Computer Architecture, ACM Press, IEEE Press, 2000, p. 161–171. [NGA 95] N GAI T., ROSE J., W ILTON S. J., « An SRAM-Programmable Field-Configurable Memory », CICC ’95 : Proceedings of the Custom Integrated Circuits Conference, IEEE Press, 1995, p. 499–502. [NKE 98] N KETSA A., Circuits logiques programmables Mémoires PLD, CPLD et FPGA, Technosup, Ellipses, 1998. [NOL 03] N OLLET V., C OENE P., V ERKEST D., V ERNALDE S., L AUWEREINS R., « Designing an Operating System for a Heterogeneous Reconfigurable SoC », Reconfigurable Architecture Workshop, avril 2003. [PAR 97] PARK S., B URLESON W., « Reconfiguration for Power Saving in Real-Time Motion Estimation », International Conference on Acoustics, Speech and Signal Processing, mai 1997, p. 3037–3040. [PAR 99] PARK S., B URLESON W., « Configuration Cloning : Exploiting Regularity in Dynamic DSP Architectures », International Symposium on Field Programmable Gate Arrays, février 1999, p. 81–89. [PLU 04] P LUNKETT B., WATSON J., « Adapt2400 ACM : Architecture Overview », rapport, 2004, QuickSilver Technology, Inc. [POO 05] P OON K., W ILTON S., YAN A., « A Detailed Power Model for Field-Programmable Gate Arrays », ACM Transactions on Design Automation of Electronic Systems, vol. 10, no 2, 2005, p. 279–302. [RUP 98] RUPP C., L ANDGUTH M., G RAVERICK T., G OMERSALL E., H OLT H., A RNOLD J. M., G OKHALE M., « The NAPA Adaptative Processing Architecture », P OCEK K. L., A RNOLD J. M., Eds., IEEE Symposium on Field-Programmable Custom Computing Machines, IEEE Computer Society, IEEE Computer Society Press, avril 1998, p. 28–37. [SAK 97] S AKR M., L EVITAN S. P., C HIARULLI D. M., H ORNE B. G., G ILES C. L., « Predicting Multiprocessor Memory Access Patterns with Learning Models », ICML ’97 : Proceedings of the 14th International Conference on Machine Learning, Morgan Kaufmann Publishers Inc., 1997, p. 305–312. [SAS 01] S ASSATELLI G., T ORRES L., G ALY J., C AMBON G., D IOU C., « The Systolic Ring : A Dynamically Reconfigurable Architecture for Embedded Systems », International Workshop on Field Programmable Logic and Applications (FPL 01), Lecture Notes in Computer Science 2147, 2001, p. 409–419. [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, février 2002, p. 157–164. 26 2e soumission à Technique et science informatiques. [SHA 04] S HARMA A., C OMPTON K., E BELING C., H AUCK S., « Exploration of pipelined FPGA interconnect structures », International Symposium on Field Programmable Gate Arrays, Monterey, USA, février 2004, p. 13–22. [SIN 00] S INGH H., L U G., L EE M., F ILHO E., M AESTRE R., « MorphoSys : Case study of a Reconfigurable Computing System targeting Multimedia Applications », International Design Automation Conference, Los Angeles, California, juin 2000, p. 573–578. [SIS 06] S I S OFTWARE I., « http ://www.sisoftware.co.uk/ », 2006. [SMI 02] S MIT G., H AVINGA P., H EYSTERS P., ROSIEN M., « Dynamic Reconfiguration in Mobile Systems », International Conference on Field Programmable Logic and Applications (FPL 02), Montpellier, France, septembre 2002, Lecture Notes in Computer Sciences 2438, p. 171–181. [SRI 02] S RINI V. P., R ABAEY J. M., « Reconfigurable Clusters of Memory and Processors Architecture for Stream Processing », HPC ’02 : Proceedings of the High-Performance Computing Conference in the Asian-Pacific Region, 2002. [STE 04] S TEIGER C., WALDER H., P LATZNER M., « Operating Systems for Reconfigurable Embedded Platforms : Online Scheduling of Real-Time Tasks. », IEEE Trans. on Computers, vol. 53, no 11, 2004, p. 1393-1407. [SUT 02] S UTTER G., T ODOROVICH E., L OPEZ -B UEDO S., B OEMO E., « Low-Power FSMs in FPGA : Encoding Alternatives », Lecture Notes in Computer Science, vol. 2451, 2002, p. 363–370. [TEW 98] T EWKSBURY S., G ANDAKOTA V., D EVABATTINI K., A BADALA P., « Integrated Memory/Network Architectures for Cluster-Organized, Parallel DSP Architectures », IEEE Symposium on IC/Package Design Integration, 1998, p. 21–27. [TIS 99] T ISSERAND A., M ARCHAL P., P IGUET C., « An On-Line Arithmetic based FPGA for Low-Power Custom Computing », International Workshop on Field Programmable Logic and Applications, Lecture notes in Computer Science 1673, août/septembre 1999, p. 264–273. [VIL 02] V ILLARREAL J., S URESH D., S TITT G., VAHID F., NAJJAR W., « Improving Software performance with Configurable Logic », Design Automation for Embedded Systems, vol. 7, no 4, 2002, p. 325–339, Kluwer Academic Publishers. [WUY 98] W UYTACK S., D IGUET J., C ATTHOOR F., M AN H. D., « Formalized methodology for data reuse exploration for low-power hierarchical memory mappings », IEEE Transactions on VLSI Systems, vol. 6, no 4, 1998, p. 529–537. [XIL 01] X ILINX, « VIRTEX2 1.5V Series Field Programmable Gate Arrays », juillet 2001. [XIL 03] X ILINX, « Configuration Quick Start Guidelines, XAPP501 », juillet 2003. [XIL 05] X ILINX, « Xilinx Spartan-3E Power, I/O Function and 3.3V Configuration », juillet 2005. [YEA 02] Y EAP G. C.-F., « Leakage current in low standby power and high performance devices : trends and challenges », International Symposium on Physical Design (ISPD-02), New York, avril 7–10 2002, ACM Press, p. 22–27. [ZHA 99] Z HANG H., WAN M., G EORGE V., R ABAEY J., « Interconnect Architecture Exploration for Low-Energy Reconfigurable Single-Chip DSPs », International Workshop on VLSI, avril 1999.