Mise en œuvre CAO ÉLECTRONIQUE La consommation, c’est tout au long de la conception qu’il faut y penser! vec les circuits intégrés et systèmes sur puce (SoC) d’aujourd’hui, dont la taille et la complexité augmentent sans cesse, le respect des contraintes de consommation (le «power closure») et la garantie de l’intégrité du réseau d’alimentation commencent à mobiliser d’importantes ressources au sein des équipes d’ingénierie. Cette pression sur ces équipes est liée au marché en expansion des systèmes électroniques portables, alimentés par batteries, qui génèrent une demande en circuits intégrés et puces SoC consommant le moins d’énergie possible. Par exemple, un téléphone mobile typique qui pèse moins de 115g, doit tenir au moins trois heures en pleine utilisation et cinq jours ou plus en mode attente avec sa seule batterie. Cette pression sur les concepteurs est aussi liée à l’augmentation de la quantité d’énergie consommée par certains composants. Prenons l’exemple d’un CPU actuel qui consomme 100A à 1,3V, soit 130W de puissance! Cette classe de composants nécessite de coûteux boîtiers et dissipateurs thermiques avec des gradients de température interne qui créent un stress mécanique responsable de ruptures prématurées. De plus, le simple fait de distribuer physiquement toute cette énergie à l’intérieur de la puce n’est pas une A Electronique - Octobre 2004 n°151 Par Sameer Patel, Magma Design Automation Sameer Patel est directeur marketing produits chez Magma Design Automation. Il a douze ans d’expérience en CAO, notamment en conception de circuits numériques et plus particulièrement de processeurs. Il détient un MBA de l’université de Berkeley et un Master en ingénierie électrique de l’université de Virginie. opération triviale. C’est pourquoi, même pour des circuits non destinés à des produits nomades et disposant de toute l’énergie qui leur est nécessaire, une conception orientée faible consommation peut offrir un avantage compétitif, compte tenu de la taille et du coût des systèmes d’alimentation et de refroidissement. En conséquence, pour les circuits extrêmement grands et complexes, l’implantation d’un réseau d’alimentation fiable et la réduc- tion de la dissipation de puissance représentent des défis importants pour les équipes de conception. Elles doivent trouver en permanence, pour la réalisation optimale d’une puce à faible consommation, des compromis entre les délais (les timings) et la consommation ou bien entre la taille et la consommation, et ce à différentes étapes du flot de conception. Pour y parvenir, il faut d’abord comprendre les principaux phénomènes qui interviennent en matière de dissipation de puissance et de distribution d’alimentation dans les circuits intégrés. De cette analyse découlent les caractéristiques propres à un véritable environnement de conception orienté faible consommation, qui apporte des réponses à ces considérations tout au long du flot allant du code RTL aux fichiers GDS-II, du moins pour les circuits intégrés à technologie Cmos, qui dominent actuellement le marché La dissipation dynamique et son traitement Parmi les principales sources de consommation d’un circuit, la dissipation de puissance dynamique se produit au sein des portes logiques qui basculent d’un état à l’autre. Durant la commutation, les capacités Commutation sur une porte inverseur Cmos FIGURE 1 Au moment où la porte bascule, les deux transistors peuvent être actifs simultanément. Ces derniers doivent donc être dimensionnés au mieux pour minimiser les effets néfastes de ce court-circuit momentané entre eux. Niveau logique 1 V DD T1 Pentes de signaux appliquées à l’entrée “a” Seuils de commutation La résolution des problèmes de consommation des circuits intégrés actuels demande la mise en œuvre d’outils d’analyse tout au long du flot de conception, du RTL jusqu’à la bande GDS-II. Magma explique les phénomènes physiques en cause et détaille les stratégies à mettre en œuvre pour les maîtriser. (a) (b) (c) T 1 et T 2 actifs a y T2 V SS Niveau logique 0 Les deux transistors conduisent simultanément 57 Mise en œuvre internes associées aux transistors formant la porte doivent être chargées, ce qui consomme de la puissance. Plus significative encore est la charge des capacités externes, incluant les capacités parasites des interconnexions et les capacités d’entrée des portes aval. Les commutations génèrent aussi une faible dissipation de puissance par court-circuit. Considérons une simple porte inverseur Cmos où, habituellement, un seul des transistors T1 et T2 conduit à un instant donné (figure 1). Cependant, au moment où la porte bascule, T1 et T2 seront conducteurs simultanément pendant une fraction de seconde. Ce qui crée un court-circuit momentané entre les rails VDD (niveau logique 1, alimentation) et VSS (niveau logique 0, masse) générant un courant responsable d’un pic de puissance transitoire. Le temps durant lequel les deux transistors conduisent simultanément dépend de leurs tensions de seuil de commutation et de la vitesse de montée (la pente) du signal commandant la porte. L’un des facteurs jouant sur cette pente du signal d’entrée de l’inverseur est la taille des transistors de la porte qui le commande. Ces transistors doivent être donc dimensionnés de manière à ce que les transitions de signaux soient assez rapides pour que l’intervalle de temps où les deux transistors de l’inverseur conduisent reste raisonnable (figure 1, cas (b)). Cependant, s’ils sont surdimensionnés et si la charge de la porte de commande est trop élevée, les économies réalisées en minimisant l’activité simultanée des transistors de l’inverseur (figure 1, cas (a)) sont contrebalancées par le surplus de puissance nécessaire à la charge des capacités des gros transistors amont. De plus, la vitesse des signaux peut créer des problèmes d’intégrité du signal sous forme de bruit, surtensions, sous-tensions et diaphonies. Si, au contraire, les transistors de la porte de commande sont trop petits et si sa charge est trop faible, les transistors de l’inverseur seront simultanément actifs pendant une durée appréciable (figure 1, cas (c)), et c’est l’inverseur qui va consommer trop d’énergie ; de plus, son faible signal d’entrée pourra subir des bruits et diaphonies de la part d’autres signaux. Ce phénomène de dissipation de puissance dynamique peut être approché à l’aide de l’équation suivante: Puissance dynamique≈αfxCxV2 Où αf est l’activité de commutation, en fonction de la fréquence d’horloge f; C, la capacité commandée/commutée; et V2 le carré de la tension d’alimentation. Cette équation montre que la dissipation dynamique peut être réduite en minimisant l’activité du circuit et/ou en réduisant la capa- 58 cité commandée et/ou en réduisant la tension d’alimentation. Pour réduire l’activité, il est possible de baisser la fréquence d’horloge du système mais les performances seront affectées. Il est aussi possible d’exploiter une technique de «clock gating» (contrôle du signal d’horloge par une porte logique) qui limite la distribution de l’horloge aux seules portions du circuit utilisées à un instant donné. Il convient enfin de minimiser l’activité locale de données liée aux commutations parasites dynamiques («glitches» ou «hazards»), en équilibrant les retards sur les chemins de données. Pour diminuer les capacités, une approche consiste à réduire la taille des portes pilotant les interconnexions qui disposent d’une puissance superflue, afin de réduire les capacités associées à ces portes. Il existe aussi des algorithmes de placement orientés consommation qui minimisent la longueur de fréquence «f» sous une tension «V» par deux copies de ce bloc, exécutant chacune la moitié de la tâche à une fréquence et une tension moins élevées. La consommation totale de cette fonction pourrait ainsi être réduite tout en maintenant la performance, au prix d’une plus grande surface de silicium. La dissipation statique et son traitement Autre source de consommation d’un circuit, la dissipation statique se produit lorsque les portes logiques sont inactives, c’est-à-dire lorsqu’elles ne sont pas en train de commuter. Théoriquement, elles ne devraient plus alors consommer aucune puissance mais, en réalité, il existe toujours un courant de fuite à travers les transistors et une consommation qui lui est associée. Même si la consommation statique d’une porte logique est individuellement extrême- Facteurs d’influence de la distribution d’alimentation FIGURE 2 Les facteurs à prendre en compte en distribution d’alimentation incluent la consommation totale, la chute de tension et l’électromigration. Consommation de puissance (Elève la température, impose de coûteux boîtiers et systèmes de refroidissement, augmente le stress mécanique, réduit la durée de vie de la batterie) Chute de tension (Dégrade les timings, diminue l’immunité aux bruits) Dissipation de puissance statique et dynamique des interconnexions critiques afin de réduire leurs capacités parasites. Dans l’idéal, ce type de placement intelligent devrait être basé sur (ou pondéré par) l’activité de commutation de chaque interconnexion. Une autre voie consiste à exploiter des technologies de matériaux telles que les diélectriques à faible k et les métallisations cuivre à faible résistance et faible capacité. Abaisser la tension d’alimentation réduit aussi efficacement la consommation d’une porte logique, mais diminue dans le même temps fortement sa vitesse de commutation. Une solution est de recourir à de multiples niveaux d’alimentation, ce qui revient à faire fonctionner plusieurs zones de la puce sous différentes tensions.Auquel cas, les fonctions dont les performances sont critiques devraient être situées dans le domaine de plus haute tension, les autres étant laissées dans les domaines basse tension. Il y a aussi d’intéressants choix à faire, aux niveaux architecture et algorithme du flot de conception, entre le parallélisme des fonctions et la fréquence ou la tension. Une option par exemple est de remplacer un bloc logique Electromigration (Dégrade la fiabilité, augmente la chute de tension) ment faible, l’effet total devient significatif si l’on considère que certains circuits contiennent des dizaines de millions de portes. En outre, à mesure que la taille des transistors diminue d’une technologie à l’autre, le niveau de dopage s’élève et les courants de fuite deviennent relativement plus importants. Aussi, y compris dans les cas où d’importantes portions du circuit sont inactives, leur consommation peut rester significative. En fait, on s’attend à ce que la dissipation statique dépasse la dissipation dynamique pour un grand nombre de circuits dans un avenir proche. Deux équations interviennent en dissipation statique. La première décrit les fuites dans les transistors: Fuite≈exp (-q Vt/k T) Un premier point important dans cette formule est la dépendance exponentielle de la dissipation statique vis-à-vis de la température (T). Dès que le circuit s’échauffe, elle croît exponentiellement. L’autre point important est la dépendance exponentielle de la dissipation statique vis- Octobre 2004 n°151 - Electronique Mise en œuvre à-vis de la tension de seuil de commutation des transistors (Vt). Pour répondre aux besoins de projets exigeant une faible consommation, les fonderies offrent des technologies MTCmos disposant de multiples bibliothèques Vt. Chaque type de porte logique est disponible sous deux formes ou plus: avec des transistors à faible seuil, plus rapides mais avec un courant de fuite plus important et consommant plus d’énergie ; et des transistors à seuil élevé qui ont moins de fuites et consomment moins mais commutent plus lentement. La seconde équation montre comment le retard (temps de commutation) d’un transistor est affecté par la tension de seuil (Vt) et la tension d’alimentation (VDD) de ce transistor: Retard≈ VDD x(VDD -Vt)-α Ce qui signifie que les ingénieurs ont à trouver un équilibre compliqué, car la réduction de la tension d’alimentation diminue la quantité de chaleur générée et par suite la dissipation statique, mais en même temps elle augmente les retards des portes. D’un autre côté, abaisser les seuils des transistors les rend plus rapides mais, comme on l’a vu, augmente exponentiellement leurs fuites et donc leur dissipation statique. Une solution est d’utiliser plusieurs domaines d’alimentation comme évoqué plus haut pour la dissipation dynamique. Il est aussi possible de choisir des transistors à faible seuil pour les chemins critiques, et des transistors à seuil élevé pour les chemins non critiques. Ces deux approches peuvent bien sûr être conjuguées. Une autre technique est d’arrêter sélectivement l’alimentation de blocs ayant des fuites, à l’aide de transistors sans fuites, chaque fois que ces blocs sont inutiles; par exemple, lorsqu’ils sont en mode attente. Cependant, allumer et éteindre brutalement des blocs entiers Chaîne de portes inverseurs FIGURE 3 Dans une chaîne d’inverseurs connectés aux mêmes rails d’alimentation et de masse, la première porte reçoit une alimentation optimale. Mais la qualité de cette alimentation se dégrade sur les autres portes au fur et à mesure que l’on s’éloigne du plot d’alimentation. Résistances associées aux rails d’alimentation V DD Niveau logique 1 Plot d’entrée ou porte logique G1 G2 G3 etc. Plot de sortie ou porte logique Niveau logique 0 V SS peut créer des pics de puissance significatifs, ce qui nécessite une «circuiterie» additionnelle assurant à ces blocs une mise sous tension ou à zéro relativement «douce» (en fait, dans la pratique par étapes). Des problèmes liés de la distribution de l’alimentation En matière de distribution d’alimentation, trois problèmes se posent (figure 2). Le premier consiste à amener l’alimentation depuis le monde extérieur à travers le boîtier jusqu’à la puce de silicium. Les pistes métalliques distribuant l’alimentation à travers la puce ont une résistance et donc, plus longue est la piste, plus longue est la résistance et plus élevée la chute de tension associée. Il s’ensuit que les technologies de boîtiers utilisant des plots d’alimentation périphériques ne sont plus acceptables pour les circuits très grands et très complexes. La solution est fournie par la technologie de boîtier flip-chip, qui fait appel à des plots répartis sur la surface de la puce pour amener l’alimentation directement aux zones internes du circuit. En plus d’offrir un nombre beaucoup plus élevé de plots d’alimentation et de masse, cette technique minimise la distance à parcourir par les signaux pour atteindre la logique interne. En outre, l’inductance des boules de soudure d’interconnexion puce-boîtier (les bumps) utilisées en technologie flip-chip est beaucoup plus faible que celle des microcâbles (le bonding wires) des boîtiers traditionnels. Autre difficulté, les circuits intégrés submicroniques profonds (DSM) et ultraprofonds (UDSM) sont sujets à des chutes de tension d’alimentation, causées par les résistances associées aux pistes des réseaux de distribution d’alimentation et de masse reliant les plots externes aux circuits internes; dans le cas des chutes de tension associées au courant continu (DC), on parle de chutes de tension ohmiques. Pour prendre un exemple simple, considérons une chaîne de portes inverseurs connectées aux mêmes rails d’alimentation et de masse (figure 3.) Une petite résistance est associée à chaque segment de rail d’alimentation et de masse. Il s’ensuit que la porte logique la plus proche du plot d’alimentation ou de masse primaire du Une suite d’outils intégrée : une nécessité ➜ Une quantité d’outils sophistiqués d’analyse de consommation est disponible à l’heure actuelle sur le marché. Cependant, il s’agit typiquement de solutions monolithiques, issues de fournisseurs tierces parties, qui ne sont pas intégrées étroitement dans un environnement de conception principal. Ces outils imposent soit l’utilisation de plusieurs bases de données, soit combinent des modèles de données disparates au sein d’une seule base de données. En conséquence, l’environnement de conception doit effectuer des transferts de fichiers et des traductions de données, avec l’extérieur ou en interne, induisant une gestion des données lente et sujette à erreurs. Mais la plus grosse difficulté rencontrée par les environnements de Electronique - Octobre 2004 n°151 conception existants est que les effets de la consommation, des timings et de l’intégrité du signal sont étroitement corrélés dans le domaine nanométrique, alors que les outils d’analyse conventionnels focalisés sur une seule tâche sont dans l’incapacité de prendre en compte tous ces effets à la fois, y compris leurs interactions. Exemple, l’ajustement de la taille des cellules affecte les courants (et la consommation), qui à leur tour jouent sur les chutes de tension associées. Pour tenir compte des chutes de tension réelles, il est donc nécessaire de redéfinir les caractéristiques de timing nominales des cellules avec les valeurs de tension réelles, ce pour chaque cellule individuelle. Ensuite, l’outil d’analyse de timings devrait reprendre les nouveaux paramètres de délais pour identifier d’éventuels changements dans les chemins critiques. En retour, l’outil d’optimisation devrait apporter les modifications appropriées aux tailles de cellules, afin de pallier les problèmes de temps d’établissement et de maintien susceptibles d’apparaître avec les modifications de timings; cela affectera à nouveau les courants, qui affecteront les chutes de tension, et ainsi de suite. C’est pourquoi, dans un véritable environnement de conception orienté basse consommation, tous les outils d’analyse de cette consommation doivent s’exécuter en parallèle avec les outils de conception, en incluant la synthèse, le placementroutage, la génération des arbres d’horloges, l’extraction de parasites, les analyses de timings et les analyses d’intégrité du signal. En outre, l’ensemble des outils doit travailler sur un modèle de données commun, afin d’assurer un accès concurrent à ces dernières et de permettre des corrections en vol sur le circuit en cours de conception. Ainsi, tout changement effectué par un outil est immédiatement testé et validé par les autres. On aboutit alors à un algorithme convergent qui détermine rapidement des solutions optimales sans recourir à de longues itérations. Au sein d’un environnement de conception, tous les outils appropriés d’analyse et d’optimisation de la consommation d’un circuit doivent donc être étroitement intégrés les uns aux autres tout au long du flot, des descriptions RTL jusqu’aux fichiers GDS-II. 59 Mise en œuvre les retards de propagation entrée-sortie d’une porte logique augmentent quand la tension d’alimentation s’abaisse, ce qui peut causer une violation des spécifications de timings de cette porte. Il y a aussi un accroissement des retards dans les interconnexions commandées par les portes sous-alimentées. Enfin, le seuil de commutation à l’entrée d’une porte est modifié lorsque l’alimentation diminue, ce qui rend cette porte plus sensible aux bruits. Les effets de la chute de tension d’alimentation deviennent en outre de plus en plus importants, car la résistivité des rails d’alimentation et de masse augmente au fur et à mesure de la miniaturisation des technologies (c’est-à-dire avec une plus grande finesse de gravure). Pour contrecarrer cet effet, il est possible d’élargir les rails d’alimentation et de masse, mais cela consomme de précieuses surfaces de silicium et crée des problèmes de congestion. Il faut alors séparer davantage les fonctions logiques, mais cela augmente les retards et la consommation puisque les interconnexions sont plus longues. Par conséquent, l’implantation d’un réseau d’alimentation optimal exige d’atteindre un équilibre délicat entre un grand nombre de facteurs. Dernier problème rencontré, lié au problème de distribution de l’alimentation: l’électromigration. Ce phénomène physique se produit lorsque la densité de courant (courant par unité de section) est trop élevée dans un ▲ circuit (la porte G1 dans notre exemple) reçoit une alimentation optimale. La porte suivante de la chaîne (G2) aura une alimentation légèrement dégradée, et ainsi de suite. Le problème est exacerbé avec les chutes de tension transitoires et en courant alternatif. Elles se produisent lorsque les portes basculent d’un état à l’autre ou, pire, lorsque des blocs entiers sont activés et désactivés. Il s’ensuit des pics de puissance transitoires qui réduisent momentanément l’alimentation des portes situées plus loin sur les rails d’alimentation. L’exemple simple du circuit de la figure 3 ne contient que des portes inverseurs, mais un circuit réel contient typiquement des dizaines de milliers de registres (éléments de stockage) contrôlés par un signal d’horloge. L’horloge peut faire commuter simultanément un grand nombre de registres, créant des impulsions parasites (« glitches ») significatives dans le signal d’alimentation. Pour analyser et réagir à tous ces phénomènes, il est nécessaire de prendre en compte les effets résistif, inductif et capacitif. La raison pour laquelle les chutes de tension sont si importantes est que A.- Cartographie des chutes de tension au niveau des fils. B.- Cartographie des chutes de tension au niveau de la cellule. C.- Cartographie globale des chutes de tension au niveau du circuit. 60 Exposons à ELECTRONICA 2004 Hall A5 - Stand 371 Octobre 2004 n°151 - Electronique Mise en œuvre conducteur. Pour les rails d’alimentation et de masse, elle est liée au courant continu. Le «vent d’électron » (electron wind) créé par le passage du courant dans une piste métallique provoque en effet une migration des ions. Cette migration est responsable de « vides » en amont du sens du «vent», et d’accumulations d’ions métalliques en aval, celles-ci aboutissant à des formations appelées «hillocks» (extrusions) et «whiskers» (cristaux). Tout ceci crée des problèmes de timings dans les rails d’alimentation et de masse : l’augmentation de résistance associée aux vides crée une chute de tension et, comme on l’a dit, une baisse d’alimentation augmente les retards et la sensibilité aux bruits des portes affectées. L’électromigration peut aussi provoquer des erreurs fonctionnelles majeures, car les vides se transforment en circuits ouverts, tandis que les « hillocks » et « whiskers » sont responsables de courts-circuits entre pistes voisines. consommation relative à chaque domaine, tout au long du flot de conception. En plus, ces analyses doivent tenir compte des retards créés dans les rails d’alimentation par les chutes de tension associées aux cellules. Les actions potentielles incluent le dimensionnement des portes par une technique de synthèse dite «gain-based» qui ajuste les gains –ou rapports des capacités de sortie et d’entrée des portes– ainsi que la sélection automatique de seuils bas et hauts quand les bibliothèques sont disponibles. Les techniques avancées comportent aussi des optimisations intervenant pendant le placement et le floorplanning. Pour implémenter correctement plusieurs domaines D.- Cartographie de la répartition de la consommation dans une cellule. de tension, il est nécessaire de séparer les différents réseaux d’alimentation associés à chaque domaine. Le placement de cellules tiendra compte de l’activité des équipotentielles pour minimiser la consommation dynamique. Les résultats d’analyses préliminaires de chutes de tension à différentes échelles (photos A, B et C) serviVers un environnement ront à déterminer les meilleurs de conception orienté faible emplacements où insérer les tamconsommation pons. Et des techniques de «clusFace à ces difficultés, force est de tering » (regroupement) de foncconstater que la majorité des envitions appartenant au même ronnements de conception actuels domaine de contrôle d’horloge concentrent les analyses et les seront appliquées aux arbres d’horactions liées à la consommation à la loge, pour minimiser la consomfin de la partie physique du flot de mation. conception. Il est alors presque Des capacités de découplage approimpossible de corriger les propriées sont à intégrer sur la puce blèmes créés par des décisions E.- Cartographie de la densité de consommation dans une cellule. pour minimiser les effets inductifs inopportunes prises au début du responsables de chutes de tension cycle de conception. domaines d’alimentation (VDD), et des tech- et créés par les variations du courant de sorUne fonction clé que doit offrir un véritable niques de « clock gating » appliquées auto- tie de la puce. Pour diminuer le courant pasenvironnement de conception orienté basse matiquement pour réduire la consommation. sant dans chaque plot et l’inductance des consommation est donc de réaliser des ana- Après la synthèse, la liste d’interconnexions liaisons puce-boîtier, un grand nombre de lyses anticipées d’effets, comme les chutes subira divers remaniements améliorant la plots sont attribués à l’alimentation et à la de tension, à partir des données disponibles consommation. Ces techniques consistent masse, compliquant l’étude du placement des au début du flot de conception. Ces analyses notamment à choisir des cellules spécifiques plots. Les technologies de boîtiers flip-chip seront ensuite affinées à mesure que les don- pour les nœuds les plus actifs et des plots permettent d’augmenter le nombre de plots nées deviennent plus précises dans le dérou- d’entrée à faible capacité pour les signaux d’alimentation et de masse, ce qui réduit les lement du flot. Ainsi les problèmes poten- d’entrée les plus actifs. Lorsque le circuit est courants des plots ainsi que l’inductance. tiels seront identifiés et résolus dès que partitionné en plusieurs domaines de ten- La conception des grilles d’alimentation sion VDD, des éléments convertisseurs (level devrait enfin être basée sur les résultats prépossible. Pour y parvenir, une variété de techniques shifter) appropriés doivent être insérés dans liminaires d’analyses du réseau d’alimentad’optimisation de consommation peut être les listes d’interconnexion pour relier les tion (Photos D et E) avant que ce dernier ne mise en jeu. Dans les étapes préliminaires domaines. De plus, les signaux entrant et sor- soit finalisé. Une répartition correcte des éléde la conception (présynthèse), le code RTL tant de domaines susceptibles d’être éteints ments dissipant de la puissance sur l’enpeut être modifié pour réaliser des modifi- et réactivés demandent une attention spé- semble de la puce permettra d’éviter la créacations d’architecture, par exemple en rem- ciale, de manière à éviter la création d’«équi- tion de points chauds et de zones de chutes plaçant une « instanciation » de fonction potentielles flottantes.» ohmiques, et des algorithmes spéciaux d’élarlogique de forte puissance par plusieurs «ins- Les optimisations de timings sont capitales en gissement de conducteurs pourront être mis tanciations» équivalentes de faible puissance. conception faible consommation. Il est néces- en œuvre pour corriger les phénomènes de Le circuit peut être partitionné en multiples saire d’effectuer des analyses de timings et de baisse de tension et d’électromigration. ■ Electronique - Octobre 2004 n°151 61