Architectures reconfigurable et faible consommation

publicité
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.
Téléchargement