Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 VI Estimation et réduction de la consommation 1. Pourquoi s'occuper de la puissance ? – Dissipation de chaleur – Portabilité – Watt is the problem ? 2. Où partent puissance et énergie électriques ? – Circuits intégrés numériques – Microprocesseurs, DSP, ... 3. Comment estimer la consommation ? 4. Comment réduire la consommation ? – Matériel et logiciel 5. Conclusions 321 1. Introduction Pourquoi s'occuper de la puissance dissipée ? Watt is the problem ? 322 Olivier Sentieys 1 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Évolutions technologiques • Famille DEC/Compaq • EV4 – – – – – 200 MHz @ 3.3V 16 gate delays per cycle 30W @ 200 MHz & 3.3V 1,7 Million Transistors 233 mm2 • EV7 (21364) – – – – > 1000 MHz @ 1.5V 100W ~100 Million Transistors ~350 mm2 [Herrick99] • EV5 (21164) – – – – – • EV6 (21264) 350 MHz @ 3.3V 14 gate delays per cycle 60W @ 350 MHz & 3.3V 9,3 Million Transistors 298 mm2 – – – – – 575 MHz @ 2.2V 12 gate delays per cycle 90W @ 575 MHz & 2.2V 15,2 Million Transistors 314 mm2 • EV8 – > 1-2 GHz (0.125 micron) – <150W – ~250 Million Transistors • Intel Pentium 4 [Intel 2000] – 1.5 GHz, 0.18 micron – Puissance des Pentium suit une courbe exponentielle ! – Réduction de la puissance du P4 par clock gating et power down des unités fonctionnelles inutilisées – Une unité thermique embarquée vient couper la CPU si il y a un problème de refroidissement – 55 Watts à 1.5 GHz (au lieu de 90 Watts) 323 1. Dissipation de chaleur • Effets indésirables – Diminution des performances et de la fiabilité MTBF/2 pour +10°C – Augmentation du coût de mise en œuvre 1€/W si >40W – Augmentation volume-poids radiateur, ventilateur, batteries, … • Evolutions technologiques ? 324 Olivier Sentieys 2 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Évolutions technologiques 200 Voltage Power per chip [W] 2 Voltage [V] Power 1.5 Current 1 0.5 0 1998 2002 2006 500 0 2014 2010 VDD current [A] 2.5 0 Year 325 Évolutions technologiques 10000 1000 1000 100 PIV PII Pro Pentium 10 1 1985 386 Vdd scaling 1995 2000 Puissance 100 10 1 486 1990 Icc (A) Power (Watts) 10000 2005 2010 0,1 1985 1990 1995 2000 2005 2010 Courant d'alimentation • Projections – ... 2000 Watts, 3000 A ! – La surface de silicium doit donc rester constante pour rester autour de 100-200W et 300-500A 326 Olivier Sentieys 3 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 2. Portabilité (1) • Multimédia Graphiques Em. Radio Vidéo Rec. Radio Voix – Visioconférence H26x – MPEGx, • Interfaces – Reconnaissance vocale – Stylo inertiel – Cryptage, authentification Interface • Mobilité – UMTS, EDGE, GSM – Internet Protocol – Connexion réseaux locaux 2005 : mobilité et durée de vie des batteries d'un agenda, capacité multimédia d'un PC 327 Technologie des batteries • Performances des batteries Lighter Whr/kg 250 Technologies Naissance industrielle Tension (V) Epaisseur (mm) Capacité (Whr/kg) Durée de vie (cycles) LTC Lithium-Alloy Polymer 200 LTC Lithium-Ion Polymer 150 Li-ion 1992 Li-poly 1996 1.2 >6 1.2 >6 3.6 >6 3.7 3 30-50 60-90 70-140 115-140 ~1000 ~1000 500 500 • Exemple type – 500 mAh Li-Pol = 1,7 Wh – 1400 mAh Li-Pol = 5 Wh • >10 heures autonomie NiMh 50 – P < 400 mW NiCd 0 100 [P. Senn 2000] Olivier Sentieys NiMh 1990 • Exemple haute capacité Lithium-Ion Polymer Lithium-Ion Liquid 100 NiCd 1956 200 300 400 Smaller Whr/l 328 4 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Terminal 3G Portable • Traitement Graphiques Em. Radio Vidéo Rec. Radio Voix – 6-10 Milliards d'Instructions / sec • Autonomie : 10h • Poids : 500g (batteries) Interface 500mW @ 6 GIPS 12 GIPS/W @ 6 GIPS • Avec les processeurs actuels – 30 Kg ou 10 minutes !!! – ... avec quelques dizaines de DSP !!! 329 En conclusion (puissance) • Evolution de la géométrie des transistors – Densité de transistors augmente – Fréquence d’horloge augmente • La puissance des circuits augmente malgré – la diminution de la tension d’alimentation – l'amélioration des méthodes de conception • Limitations ? – Limites physiques Chaleur : e.g. 100W sur 3 cm2 – Limites dépendantes de l’application Ordinateurs portables, nomades (PDA) Systèmes embarqués (ou enfouis) Systèmes ultra basse-consommation Commutateurs, stations de base en télécommunications, routeurs Internet, … 330 Olivier Sentieys 5 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 En conclusion (énergie) • Evolution de la capacité des batteries – 10 - 15% par an • Evolution de la puissance des circuits – 35 - 40% par an • Conséquence – Gap important entre la technologie des batteries et l’efficacité énergétique des circuits actuels 331 Plan Où part la puissance ? – Puissance dynamique (rappel) – Activité (rappel) – Chemin de données, Mémoire, Horloge ... 332 Olivier Sentieys 6 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Où part la puissance ? (rappel) P = Pc + Pcc + Ps • Puissance de charge : Pc – Charge et décharge des capacités du circuit • Courants de court-circuit : Pcc – Chemin de court circuit pendant la commutation des structures logiques statiques • Courants de fuite : Ps – Jonctions, fonctionnement sous le seuil Pdyn = α • Cl • Vdd2 • f 333 Activité et probabilités de transition (rappel) • Propagation des probabilités P(A) = ½ P(B) = ½ P(C) = ½ A B C P(X =1) = 1/4 P(S = 1) = 1/2 . 3/4 = 3/8 X S αX = P(X=0) . P(X=1) = (1-P(X=1)) . P(X=1) = (1 – 1/4) . 1/4 = 3/4 αS = P(S=0) . P(S=1) = (1 – P(S=1)) . P(S=1) = (1 – 3/8) . 3/8 = 5/8 .3/8 = 15/64 334 Olivier Sentieys 7 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Quelle partie de mon système consomme le plus d'énergie ? Opérateurs ? Horloge ? Logique ? Mémoire ? RF ? LCD, HDD, ... ? 335 Qu'est ce qui consomme ? • Mémoire – Interne (cache, scratch memory) – Externe (passage par les entrées sorties du chip) – Exemple de l'Itanium 2 Environ 60 à 70 % de la surface consacrée à la mémoire cache 336 Olivier Sentieys 8 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Qu'est ce qui consomme ? • Horloge DIGITAL Corp. Processeur alpha 21164 1995 2.5M Portes 9.3M Transistors 298 mm2 300 MHz 64/128 Bits 0.5µ 60W @ 3.3V Clock Driver Clock Generator Clock Driver – 40-50% de la puissance dissipée par l’arbre d’horloge 337 Où part l’énergie ? Energie / opération • Bilan énergétique Add Mult RAM Read • Codage d’image H263 RAM Write I/O Memory Transfer (Off-Chip) 1500K Opérations et 500K Transferts mémoire Energie transfert = 33 . Energie Opération -> Puissance mémoire # 10 . Puissance opérations 338 Olivier Sentieys 9 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Analyse des consommations • PC Portable – Puissance totale (application Word) : 19.1 W 30% 10% 37% 3% CPU LCD Video HDD Logic 20% [Source Hitachi] 339 Analyse des consommations • Terminal GSM Paging Mode Speaking Mode Total 80% of time 20% of time Radio F 40% 15% 20% Power Ampli 0% 50% 40% Base Band Codec 60% 35% 40% [Source Philips] 340 Olivier Sentieys 10 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Plan 3. Comment estimer la puissance ou l’énergie – 1. Notions d'activité – 2. Outils de CAO 341 1. Activité • Consommation d’une bascule : 9.5µW/MHz par transition de 0 à 1 à la sortie CLK D0 Q0 Q0 D1 D2 D3 D4 D5 D6 D7 Q1 Q1 Q2 Q2 Q3 Q3 Q4 Q4 Q5 Q5 Q6 Q6 Q7 Q7 342 Olivier Sentieys 11 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Registres • Approche statistique : – On envoie un signal aléatoire pour estimer la consommation d’un registre. – En moyenne 4 bascules commutent pour un signal aléatoire en entrée, dont deux de 0 à 1. – 2x9.5=19µW/MHz BRUIT BLANC CLK D0 Q0 Q0 D1 D2 D3 D4 D5 D6 D7 Q1 Q1 Q2 Q2 Q3 Q3 Q4 Q4 Q5 Q5 Q6 Q6 Q7 Q7 343 Registre d’états • Approche probabiliste liée au signal – différentes probabilités suivant le signal et l’utilisation. • 1 + 1/2 + 1/4 + 1/8 ... = 2 • Consommation : 2 x 9,5 / 2 = 9,5 µW/MHz Codage binaire des états CLK D0 Q0 Q0 D1 D2 D3 D4 D5 D6 D7 Q1 Q1 Q2 Q2 Q3 Q3 Q4 Q4 Q5 Q5 Q6 Q6 Q7 Q7 344 Olivier Sentieys 12 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Registre d’états • Approche probabiliste liée au signal – différentes probabilités suivant le signal et l’utilisation. • 1/2+1/4+1/8...=1 • consommation : 1x9.5/2=4.75µW/MHz Codage Gray des états CLK D0 Q0 Q0 D1 D2 D3 D4 D5 D6 D7 Q1 Q1 Q2 Q2 Q3 Q3 Q4 Q4 Q5 Q5 Q6 Q6 Q7 Q7 345 Potential for Power Optimisation 10% 20% 50% x5-x10 Speed of Power Optimisation 2. Outils CAO Algorithmic Architecture Research Research Research RTL Synopsys/Power Compiler Synopsys/DesignPower Sente/WattWatcher Architect HLDS Cadence/Top-Down Design Planner Gate Synopsys/DesignPower/ PrimePower Veritools/Power_tool Sente/WattWatcher Gate Xpower Epic/AMPS Switch SPICE et al. Epic/PowerMill Avant!/ADM Mentor Graphics/Lsim Power Analyst Accuracy of Power Estimation Olivier Sentieys 346 13 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Outils au niveau transistor • Analyses précises – SPICE (et ses dérivés) – PowerMill (Epic/Synopsys), ADM (Avant!), LSIM Power (Mentor) Vdd – Optimisation par modification de la taille des transistors : AMPS (Epic/Synopsys) – Fiabilité : RailMill, Thunder&Lightning Vs = 0 + - Is ßIs Ry Cy Power • Outils d’optimisation • Avantages – Haute précision – Concept entré dans les mœurs In • Limitations Device under test Cl – Capacités limitées – Intervient tard dans la conception Vss 347 Estimation au niveau logique • Deux techniques Simulation niveau portes du circuit Activité des noeuds Moyenne Activité Propagation de l’activité Analyse Puissance Ensemble de signaux – Estimation statistique – Estimation probabiliste 348 Olivier Sentieys 14 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Deux modèles • Modèle “zero delay” • Modèle “real delay” Glitches / Hazards • Typiquement 20% de la consommation, les glitches peuvent atteindre 70% dans les composants arithmétiques (e.g. additionneurs, multiplieurs) 349 Outils au niveau logique • De nombreux exemples – PrimePower (Epic/Synopsys), DesignPower (Synopsys) – QuickPower (M. G.), WattWatcher/Gate (Sente) – PowerCompiler (Synopsys) : optimisation logique • Avantages – Plus rapides que les outils au niveau transistor – Utilisent les simulateurs gate-level existants – Utilisent des techniques probabilistes • Limitations – Modèle précis des interconnexions – Précision de l’estimation des glitches – Capacités et vitesse encore limitées 350 Olivier Sentieys 15 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Design Power - Synopsys • Outil d'analyse au niveau porte logique • Estimation de la puissance dynamique (switching power, internal cell power) et de la puissance statique (leakage power) • Probabiliste ou statistique Gate-Level Netlist • Default or values probabilities • Fast Switching Informations Estimation Probabilistic Analysis Simulation Analysis • Full-timing gatelevel simulation • Time consuming • Accurate 351 Méthodologie Synopsys • Flot de conception Power Analysis HDL Design Optimization Timing and Area Gate-Level Simulation Optimization Timing, Area, Power Physical Design 352 Olivier Sentieys 16 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Power Model - Synopsys • Switching Power Pc = Vdd 2 2 ∑ (C ∀nets ( i ) load i × TR i Cload i : load of net i ) TR i : toggle rate of net i • Internal Cell Power – e.g. gate with 2 inputs A,B and 1 output Z Pinternal cell Z = TR Z × f Cload Z × WeightAvgtrans Transi : transition time of pin i TR i .Transi ∑ TR i : toggle rate of pin i WeightAvgtrans = i = A, B WeightAvg trans : weighted average ∑ TR i i = A, B transition time for output Z – Function f is given by the cell library ( ) • Total Dynamic Power Pdynamic = ∑P ∀cells (i ) internal celli • Leakage Power + Vdd 2 2 Pleakage = ∑ (C ∀nets ( i ) load i × TR i ) ∑P ∀cells (i ) cell leakagei 353 Plan 4. Comment réduire la puissance ? – Flot de conception – Techniques architecturales – Techniques logicielles – Techniques au niveau système 354 Olivier Sentieys 17 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Comment réduire la puissance ? Pdyn = α • Cl • Vdd2 • f • Diminuer au maximum la tension d’alimentation Vdd • Minimiser la capacité effective Ceff = α Cl • Conserver, si besoin est, la fréquence d’horloge f, donc les performances Comment ? Il faut diminuer α, Cl, Vdd et f ! 355 Où intervenir ? • Interventions possibles à tous les niveaux SUM := A1+B1 356 Olivier Sentieys 18 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Réduire Vdd • Puissance = fonction quadratique de Vdd • Le temps de propagation augmente si Vdd est réduit → Produit puissance x delay ↑ si Vdd ↓ • Influence de Vdd ne dépend pas du style logique 30 1 0.8 Délai normalisé Consommation 0.7 20 0.6 15 0.5 0.4 10 0.3 0.2 5 0.1 0 Consommation normalisée 0.9 Délai 25 Td = Cl.Vdd = I Cl.Vdd k(W/L)(Vdd - Vt) 2 Pmoy = α • Cl • Vdd2 • f 0 1 1.5 2 2.5 3 3.5 4 4.5 5 357 Vdd Power Dissipation and Circuit Delay 2 Power : 1 P = p t •f CLK • CL • VDD + x 10 V th I 0 •10 S • -4 Power (W) = k•Q I = k • CL • V DD (V DD - V th ) α ( α =1.3) -10 5 0.8 x 10 4 Delay (s) 0.6 0.4 Delay V DD A 0.2 0 4 VD 3 D( V) 2 B 3 2 1 04 1 0.8 0.4 Vth 0 (V) -0. 4 A VD 3 D( V) 2 B 1 0.8 0 -0.4 0.4 V) V th ( [Sakurai03] Olivier Sentieys 358 19 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Réduire Vdd • Compenser la réduction de Vdd apportant une baisse de performances par des optimisations architecturales ou logiques – Exemple : architecture 16 bits (décodage de Viterbi) Pref = Cref . Vref2 . Fref = 14.7 mW Cref déterminé par simulation (Cl = 31pF) Fref = 1 / 40ns Vref = 5V A + Tclk > < B Tclk C Tclk Fclk = 25 MHz Vdd = 5V P moy = 14.7 mW Surface = 788x555 µ2 = 0.44mm 2 3823 Transistors 56 mm d’interconnexions 360 Architecture Parallèle A + 2•Tclk > < B 2•Tclk C M U X 2•Tclk A + 2•Tclk > < B Tclk Surface = 1130x768µ 2 = 0.87 mm 2 7638 Transistors 111 mm d’interconnexions 2•Tclk C 2•Tclk Olivier Sentieys Pparallèle = (2.15•Cref) • (0.58•Vref)2 • (0.5•Fref ) # 0.36 • Pref = 5.3 mW Cparallèle = 2.15• Cref Fparallèle = 1 / 80ns Vdd parallèle = 2.9V 361 20 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Architecture Pipeline A Ppipeline = (1.15•Cref) • (0.58•Vref)2 • Fref # 0.39 • Pref = 5.7 mW + Tclk B Tclk > < Tclk C Tclk Cpipeline = 1.15• Cref Fpipeline = Fref Tclk Vdd pipeline = 2.9V • Résumé Type d'Architecture Référence Parallèle Pipeline Parallèle/Pipeline Vdd Surface Puissance 5V 2.9V 2.9V 2.0V 1 1.98 1.1 2.2 1 0.36 0.39 0.2 x2,5 x5 362 Gated Clock • Modèle de bascule Q CLK CLK D CLK P =αP +P basc dyn CLK horl CLK CLK CLK 363 Olivier Sentieys 21 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Gated Clock • Supprimer les commutations des blocs qui n’ont pas besoin d’être rechargés Din D Q Din Reg FSM En Clk Reg FSM En Clk Gated Cell Gate signal latch Gated clock • Modification de la machine d’états Clk • Gain important (selon activité) • Mais... circuit non totalement synchrone 364 Conditional Flip-Flop Clock-on-Demand (COD) F/F CKI D CLK Q D CKIB Q D Q CLK Controller CLK CKI CKIB D Q CKI 0 5 10 15 Time (ns) Clock is provided to F/F only when new data comes. [Hamada99] Olivier Sentieys 366 22 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Isolation d’opérateurs • Activer les UF uniquement lorsque cela est nécessaire Reg. Instr. FSM Clk En MUL Latch ADD MUL ADD Reg. Instr. Reg FSM Gated Cell Clk Le multiplieur consomme même si ses sorties sont inutilisées En Reg Gated Cell Les entrées du multiplieur sont bloquées si ses sorties sont inutilisées Les instructions sont bloquées 367 Pré-calcul (1) • Principe général : éviter le passage par une fonction coûteuse lorsque le résultat peut être pré-calculé A B Fonction S Précalcul 368 Olivier Sentieys 23 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Pré-calcul (2) • Exemple : comparateur A > B A Clk Schéma classique B Clk D Q A>B D Reg D Q Q Reg Clk Reg • Si les 2 MSB sont différents alors le résultat peut être déterminé sans soustraire A et B : – Si A[MSB] != B[MSB] && A[MSB] == 0 alors A > B est vraie (1) – Si A[MSB] != B[MSB] && A[MSB] == 1 alors A > B est faux (0) 369 Pré-calcul (3) • Exemple : comparateur A > B (suite) – Si les 2 MSB sont égaux alors il faut faire la soustraction – Sinon, il suffit de prendre la valeur du MSB de B Si MSB B == 1 alors A > B est vraie Sinon A > B est fausse A D Q A>B B D Q Reg Clk A[MSB] B[MSB] Gated Cell B[MSB] =1 si A[MSB] == B[MSB] Reg 1 0 D Q Clk D Q D Q Clk 370 Olivier Sentieys 24 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Post-calcul (1) • Principe général : bloquer un chargement si l'état suivant est le même que l'état courant Etat Courant Etat Suivant f D Q Reg Clk =? Gated Cell 372 Post-calcul (2) • Post calcul : – exemple E0 E1 !A&!B E2 A !A&B E3 Schéma bloquant le chargement du même état Schéma classique Etat Courant f D Q f Reg Clk Clk A B Post D Q Gated Cell 373 Olivier Sentieys 25 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Codage d’état • Code pour les états d’une machines Gray - Activité + Capacité E1 Ci Cj Binaire + Activité - Capacité Ci+Cj+Ck=1 Ck Ek Coder le graphe avec le minimum de transistions Si Prob(Ck) >> Alors les codes de E1 et Ek doivent différer avec un minimum de positions (distance de Hamming) Chemin le plus probable A coder avec un Min de transitions 375 Réduction de Ceff • Hasards dynamiques – Équilibrage des chemins logiques : synthèse logique – Facteur 5 sur une version optimisée d’un multiplieur [Callaw92] a b a b ET ET c d ET ET ET c d ET – Exemple S = a.b.c.d avec p(a) = 0.3; p(b) = 0.4; p(c) = 0.7; p(d) = 0.5 376 Olivier Sentieys 26 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Réduction de Ceff • Partage de ressources augmente l’activité – Destruction des corrélations entre signaux 1110 1111 0000 0001 Bus1 Compteur 1 Compteur 1 Bus2 Compteur 2 1110 0000 1111 0001 M U X Bus Compteur 2 a) Implémentation parallèle b) Multiplexage temporel 377 Réduction de Ceff • Encodage de bus pour diminuer l’activité – e.g. liaison mémoire ou cache (instruction ou données) vers CPU – objectif : diminuer le nombre de transitions codages : activité binaire > activité gray Logique de décodage Logique de codage Activité des signaux à émettre > Activité du bus < Activité des signaux reçus 378 Olivier Sentieys 27 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Bus encoding • Ne transmettre que les transitions : intéressant quand forte corrélation temporelle des données (images) • T0 code : pour les bus d’adresses + INC = 1 pour 2 adresses consécutives sinon INC = 0 et les lignes d’adresses utilisées normalement [Macii03] [Julien03] 379 Bus encoding • Codage de bus inversé (Bus Invert Code) 380 Olivier Sentieys 28 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Optimisation de la mémoire • Placement des données les plus souvent accédées dans des mémoires internes • Minimisation de la taille mémoire totale par réutilisation des points mémoires Scratchpad CPU Cache Mem ext Espace mémoire adressable 381 Plan 3. Comment réduire la puissance ? – Flot de conception – Techniques architecturales – Techniques logicielles – Techniques au niveau système 382 Olivier Sentieys 29 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Réduction d'énergie • Le logiciel (enfoui) détermine la puissance dissipée par le processeur – Pourquoi ne pas modifier le logiciel pour réduire l'énergie • Énergie, puissance ou performances ? – Énergie = durée de vie des batteries – Puissance = dimension alimentation, régulateur et dimensions des interconnexions MOV DX,[BX] MOV AX,CX MOV AX,DX Puissance : 1.15 W Energie : 8,6 10-8 J NOP MOV DX,[BX] NOP NOP MOV AX,CX NOP NOP MOV AX,DX NOP Puissance : O.99 W 14% de moins Energie : 22,3 10-8 J 158% de plus 383 Optimisation du logiciel • Performance = utilisation de la bande passante mémoire • Energie = utilisation des registres ou du scratchpad, réduction activité LDR r3, [r2, #0] ADD r3,r0,r3 MOV r0,#28 LDR r0,[r2,r0] ADD r0,r3,r0 ADD r2,r2,#4 ADD r1,r1,#1 CMP r1,#100 BLT LL3 Olivier Sentieys int a[1000]; c=a; for (i=1; i<100; i++) { b += *c; b += *(c+7); c+=1; } 2096 cycles 19.92 uJ 2231 cycles 16.47 uJ ADD r3,r0,r2 MOV r0,#28 MOV r2,r12 MOV r12,r11 MOV r11,r10 MOV r0,r9 MOV r9,r8 MOV r8,r1 LDR r1,[r4,r0] ADD r0,r3,r1 ADD r4,r4,#4 ADD r5,r5,#1 CMP r5,#100 BLT LL3 384 30 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Optimisation du logiciel • Utilisation des registres internes (20%) • Exploitation de la mémoire interne (différent de la notion de cache) (40%) • Transformations pour réduire le nombre d'opérations de lecture et d'écriture aux mémoires – Loop permutation, unrolling, tiling, fusion, fission, ... – Gain 40% - x5 FOR i:= 1 TO N DO B[i] := f(A[i]) ; FOR i:= 1 TO N DO C[i] := g(B[i]) ; FOR i:= 1 TO N DO BEGIN B[i] := f(A[i]) ; C[i] := g(B[i]) ; END ; • Sélection d'instructions, ordonnancement, ... [Marwedel02] 385 Estimation au niveau logiciel • Estimation de puissance pour définir des modèles au niveau des instructions • Méthodes basées sur la simulation – Le programme exécuté est simulé sur un modèle bas-niveau du circuit • Mesure physique – Mesure le courant pour des séquences d'instructions System Power A CPU 386 Olivier Sentieys 31 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Estimation au niveau logiciel • Modèle au niveau des instructions ∑ ( Base .N ) +∑ i i i i, j (Overheadi , j .N i ) + ∑k Energyk • Mesure sur des séquences d'instructions : Basei – Instructions seules en boucle ou séquence d'instructions Instruction NOP LD ST ADD MULT Courant mA 198 213 346 199 198 Cycles 1 1 2 1 1 Energie nJ 3.26 3.51 11.40 3.28 3.26 SPARClite 387 Estimation au niveau logiciel • Effet inter-instructions : Overheadi – État précédent du circuit influe sur l'énergie d'une instruction – e.g. 486DX2 XOR BX,1 ADD RX,DX : overhead 6.8 mA • Pipeline, cache miss : Energyk 388 Olivier Sentieys 32 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Exemple : TMS 320C54x • Note d'application TI – http://www.ti.com/sc/docs/apps/dsp/tms320c54x.html • Mesure du courant avec exécution du code – En boucle sur une instruction – En répétition d'instructions testloop I1 I1 (256 times) I1 I1 B testloop (a) straight-line method testloop RPT #255 I1 B testloop (b) RPT method 389 Exemple : TMS 320C54x ACTIVITY IDLE3 IDLE2 IDLE1 Repeat NOPs Inline NOPs Block data transfer in on-chip DARAM using RPT Repeat MAC with changing data (dual-operand addressing) Inline MAC with changing data (dual-operand addressing) Repeat MACD with changing data (singleoperand addressing) Inline MACD with changing data (singleoperand addressing) Repeated double-precision arithmetic instructions with changing data Inline double-precision arithmetic instructions with changing data Repeat FIRS with changing data Inline FIRS with changing data FIR filter Full-rate GSM vocoder Complex 256-point FFT CURRENT (mA per MIPS) 0 0.03 0.12 0.3 0.4 0.8 CURRENT POWER AT AT 50 MIPS 50 MIPS, (mA) 3V (mW) 0 0 1.5 4.5 6 18 15 45 20 60 40 120 1.0 50 150 1.2 60 180 0.8 40 120 1.0 50 150 0.9 45 135 1.1 55 165 1.2 0.9 0.9 1.03 1.07 60 45 45 51.5 53.5 180 135 135 154.5 160.5 390 Olivier Sentieys 33 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Plan 3. Comment réduire la puissance ? – Flot de conception – Techniques architecturales – Techniques logicielles – Techniques au niveau système 391 StrongArm • Intel StrongArm SA-1110 ARM 4 392 Olivier Sentieys 34 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Gestion de la puissance • Gestion de la puissance – – – – Opération à basse tension d'alimentation Modes “Sleep” ou “Idle” Gestion de l'horloge programmable : PLL, clock dividers Contrôle des périphériques • Etats de puissance sur StrongArm SA1100 400 mW RUN 90 µs 10 µs 10 µs 160 ms SLEEP IDLE 50 mW 90 µs 160 µW 393 Gestion statique • Différents modes d’opérations Off Full-On Normal-On Moniteur d’activité Standby Suspend Hibernation [IBM] 394 Olivier Sentieys 35 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Gestion dynamique • Réduire la vitesse (et la tension!) du processeur sur certaines tâches pour diminuer l'énergie – e.g. codeur MPEG4 Processor Speed • Optimiser les temps d'attente (idle) E=CVH2+Eidle E=CVL2 Before IDLE After Time • Lien avec le système d'exploitation 395 Gestion dynamique • Gestion intelligente de Vdd et Fclock 396 Olivier Sentieys 36 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Exemple : TransMeta Crusoe • Processeur Crusoe : x86 à 700 MHz • Détection de l'activité du processeur et du système • Le logiciel ajuste dynamiquement MHz et Vdd Fclock MHz Vdd Puissance 700 1.65 V 100% 400 1.4 V 41% 333 1.2 V 25% 397 Exemple : TransMeta Crusoe *Taken from Doug Laird’s presentation, January 19 th 2000 Olivier Sentieys 398 37 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Conclusions Est il nécessaire de convaincre ? • De nouvelles métriques pour la conception – Puissance ou énergie devient une des contraintes dominantes Puissance Énergie Coût Flexibilité Performances 399 Conclusions • Consommation doit être estimée et optimisée à tous les niveaux, en particulier au niveau système • Diminution de la tension d’alimentation en conservant les performances • Diminution de l’activité de commutation des signaux internes ou externes • http://www.enssat.fr/ftfc – Colloque Faible Tension Faible Consommation 400 Olivier Sentieys 38 Méthodologie de conception des circuits intégrés VLSI - 6. Faible consommation 1/02/10 Perspectives • Technologiques – Multi Vth – SOI, SiGe, ... • Architectures matérielles – Parallélisme, pipeline, parallélisme – Réduire l'activité – Hiérarchie mémoire • Architectures systèmes – Exploration des solutions à un haut niveau – Gestion dynamique Vdd/Vth/Fclk – Compilation efficace 401 Olivier Sentieys 39