Upload
ace-bellec
View
105
Download
1
Embed Size (px)
Citation preview
1
Modélisation et optimisation de la Consommation dans
les architectures embarquées
C. Belleudy
Laboratoire I3S, UNSA-CNRS 2000, route des lucioles Les Algorithmes - bât. Euclide B, 06903 Sophia Antipolis -France
Ecole d’architecture Mars 2005
2
PLAN
1. Généralités sur la consommation électrique des circuits numériques
2. Estimation et optimisation de la consommation des ASICs et des FPGAs
3. Estimation et Optimisation de la consommation des processeurs et des mémoires
3
PLAN
1. Généralités sur la consommation électrique des circuits numériques
1. La consommation ?2. Les sources de dissipation3. Optimisation
2. Estimation et optimisation de la consommation des ASICs et des FPGAs
3. Estimation et Optimisation de la consommation des processeurs et des mémoires
4
020406080
100120140
2003
2005
2007
2009
2012
2015
2018
0
10
20
30
40
50
60
taille des Tren nm
F en Ghz
Evolution de la technologie
0100200300400
0
0,5
1
1,5
W
VddPrévisions ITRS 2003
année
année
année
050
100150200250300350
05001000150020002500300035004000
M Tr/cm2
W
W
W
5
Quelques chiffres ?[Bo02]
carte mère Intel D865GvHz : • Minimum loading : 190 W (aucune application s’exécute),• Maximum loading : 286 W (heavy gaming application).
6
Quelques chiffres ? Le packaging
$/mP
05
10152025303540
30 40 60 80
Boîtier Céramique : 4 fois plus cher que le boîtier plastique (P<2W/cm2).
W
Souce : P. Maurine - AS-LP
Refroidissement : 1$/puce/watt au dessus de 40 W. (Source INTEL).
[Ti98]
7
Quelques chiffres ? Les batteries
Batteries au lithium :
1992 : 90 Wh/kg,
2000 : 140 à 160 Wh/kg .
2007 : de 190 à 200 Wh/kg.
Source : CEA
Piles à combustibles ?
8
Température dans le circuit [Sil04]
Température de la jonction : de 85°C -> 125°C : Fmax diminue de 14%
Le circuit se dégrade exponentiellement à la température de la jonction.
9
La consommation des circuits ?
Diversité et complexité accrues des applications :Audio, vidéo, téléphonie, bureautique, messagerie …Autre milieu médical ...
...
10
Les sources de dissipation : Puissance et Energie
P = Pstatique + Pcommutation
Vdd
VsVe
Icc
NMOS
PMOS
1
0
1
0
Puissance de reposDue aux commutations
en sortie de la porte CMOS
Tm
dttPE0
)(
Vdd
Vs
Ve
NMOS
PMOS
11
Puissance dynamique
Vdd
Vs
Cch
1
01
0
Idécharge
(c)
Ve
Ve1
0
Pcommutation = Pcourt_circuit + Pdynamique
Pcourt_circuit : changement d’état : les deux transistors NMOS et PMOS sont conducteurs simultanément, ~10% à 15% de Ptotale.
Par transition (0->1) : Pdynamique = Cl.Vdd2.F
CL : capacité de charge (loading charge)
Vdd
Vs
Ve
Cch
1
0
1
0 Icharge
1
0Ve
12
Puissance statique
CMOS : interrupteur imparfaitVdd
Vs
Ve
Cch
1
0 I
1
0Ve
Pstatique = Isub. Vdd + Idiodes.Vdd
Courants inverses de diodes (jonction)
G
S D
Subtreshold current (I2):
Transistor PMOS laisse passer le courant,Transistor NMOS : ouvert,
Vdrain = Valim, Vsubstrat = 0V Courant de
fuite.
13
Puissance statique : courant statique Isub
Courant de fuites attention : circuit mémoire, W/L, VTH, T ?
VT : tension de seuil (Threshold Voltage)
Isub
Isub ~ (W/L) e(-VTH
/T)
Cas idéal : VTH/Vdd < 0.3 [Bo02]
14
Influence de VT sur PstatiqueT.
Saku
rai, IS
SC
C2003
Ileakage = 0.01 µA/µm pour une techno de 130 nm
Ileakage = 3 µA/µm pour une techno de 45 nm
15
Puissance statique, Puissance dynamique
Source : P. Maurine - LIRMM - AS-LP
16
Du coté des batteries
Choix d’une batterie adaptée : Wh/Kg ,
Le temps de décharge de la batterie : à courant constant
A Typical Discharge Profile (Li/MnO2DL2/3A Cells) [Ge01]
L’énergie totale C fournie par une batterie idéale est :
C = In .Tl (loi de Peukert)
n : constante propre à la batterie (cas idéal : n=1),Tl : temps de décharge en heure,I : courant de décharge.
17
Du coté des batteries
Modèle électrochimique trop complexe,
Modèles basés sur des circuits électriques ?
Maîtriser E, Pmoyen, Ppic(Le packaging est déterminé par rapport à Ppic/cm2).
0
50
100
150
200
250
300
60 120 180 300
Pic de puissance W
Te
mp
s d
e d
éc
ha
rge
de
la
ba
tte
rie
Pmoyen constant [Ma99]
18
A quel niveau doit-on intervenir ?
SOURCE : MEDEA+ conférence/octobre 2002
19
Comment réduire la consommation ?
Couper la tension d’alimentation : Couper la tension d’alimentation :
Exemple modes de repos (idle, sleep) des processeurs (LParm, Exemple modes de repos (idle, sleep) des processeurs (LParm, StrongArm, Arm7, 9, 11, Crusoé, Xscale, Pentium M, PowerPC…)StrongArm, Arm7, 9, 11, Crusoé, Xscale, Pentium M, PowerPC…)
Baisser la tension d’alimentation Baisser la tension d’alimentation (voltage scaling) (voltage scaling)
T = K. CL.VddVdd-VTH)2
Lorsqu’on baisse le tension
d’alimentation, F doit être recalculée
=> on parle de couple (V,F)0
5
10
15
20
25
30
1 2 3 4 5
Vdd(V)T
em
ps d
e r
ép
on
se
(no
rmali
sé)
20
Comment réduire la consommation ?
Baisser la fréquence du circuit : Ppic et Pmoyen diminuent, E reste inchangée Ppic et Pmoyen diminuent, E reste inchangée => permet de limiter la dissipation thermique => permet de limiter la dissipation thermique et de maîtriser le pic de puissance (Ppic et de maîtriser le pic de puissance (Ppic détermine le prix du packaging).détermine le prix du packaging).
Réduction du nombre de commutations : niveau porte, processeur, bus et mémoire.
Taille des transistors : Permet de diminuer la capacité de charge équivalente.
21
Comment réduire la consommation ?
Plusieurs VT : Influence de VTH
1- Dual Treshold CMOS (DTCMOS) : 2xVTH
VTH bas sur le chemin
critique, VTH haut hors
chemin critique.
2 - Multiple Threshold CMOS (MTCMOS) [Ca04] : VTH bas
fonctionnement normal, VTH haut en
mode repos.
VTH
22
Comment réduire la consommation ?
Sub=1 : VTH haut
Sub=0 : VTH bas
Transistor off : VGS =0V, Transistor on : VGS = Vdd.
Plusieurs VTH [In01] : 3 - Variable Treshold CMOS
Transistor (VTCMOS)
=> ABB (Adaptative Body Biaising)
23
La consommation dans un SOC
uP USB
DSPASIC
PCIDRAM
SRAM
DSP
RISC
Fonction
Matérielle
(IP)
FPGAFPGAS/DRAM
Bus/Réseau
Bibliothèques
T1
C1 C2
T5
T3 T4 T2
DSP
RISC
Bus
Architecture du SOC
Ordonnancement
24
La consommation ?
25
PLAN
1. Généralités sur la consommation électrique des circuits numériques
2. Estimation et optimisation de la consommation des circuits logiques (ASIC/FPGA)
1. Estimation de la consommation des ASICs
2. Optimisation de la consommation des ASICs
3. Cas particulier des FPGAs
3. Estimation et Optimisation de la consommation des processeurs et des mémoires
26
Estimation niveau logique : principe
P = Pstatique + Pdynamique
Pstatique = Vdd.i (Istatiquei)
Istatiquei = N.Kdesign.Îleak
Avec : N : nombre de transistors,Kdesign : représente les caractéristiques
du circuit, Îleak : dépendant de la technologie,
de VTH.
Circuit N Kdesign
D Latch 10/bit 1.4
D FlipFlop 22/bit 2.0
Mpx 2->1 2/bit/entrée 1.9
1 cell 6T-RAM
6/bit 1.2
Porte logique
2/entrée 11
27
Estimation niveau logique : principe
P = Pstatique + Pdynamique
n
iiicyclejportesPP
1,
.
i : Nombre de transitions 0->1 de la porte i pendant le cycle d’horloge j.Pi : puissance dissipée lors d’une commutation de sortie par la porte i.
Combinatoire Séquentiel
clock
m
iQijcyclebasc
PmPP .).( 1
,
Pclock : consommation sans activité en sortie de la bascule,PQ : consommation due à la commutation de sortie,
i : nombre de commutation de sortie.
28
Estimation niveau logique : Méthode statistique
Simulateur
P1P2
Pn
S’appuie sur les simulateurs logiques du commerce (Cadence, SPICE, ….).
2 - Méthode probabiliste (SequenceDesign, BuildGates-Cadence, ….) :
Vecteurs de testreprésentatifs
Pmoyen
Calcul de la consommation à partir de l’activité => Déterminer toutes les
transitions => Processeurs actuels 500Mtransistor/cm2 => Temps de
calcul ??
1 - Méthode statistique :
Analyseur PmoyenVecteurs de test
Extraction de
Propriétés
29
Estimation niveau logique : modèle probabiliste
Modèle probabiliste : est remplacé par la probabilité de transition notée P0->1.
P0->1 = P0(out=0).P1(out=1) =P0(1-P0)
Si les N entrées d’une porte ont la même probabilité de transition alors :
N
N NNP
2
0010
10 2
)2(
NN
22NN
Exemple : P0->1 = P0.P1= 1/2.1/2=1/4Notons PA=P(A=1) et P(A=0)=1-PA
P0->1 = (1-PA)PA
=> Glitchs non pris en compte
A OUT
O 1
1 0
30
Estimation niveau logique : les Glitchs ?
ns
31
Estimation niveau logique : cas des FSM
11S1 S2
S4 S3
10-1
-0
01-0
1- 01-0
11
00
P1,2 =3/4
S1 S2
S4 S3
P1,1 =1/4P2,1 =1/4
P3,3 =1/4
P4,2 =2/4
P3,4 =3/4
P4,3 =2/4
P2,3 =3/4
Calcul des probabilités de transition
P4=9/29
3/58
S1=00 S2=01
S4=11 S3=10
P1=2/29
3/58
3/29
9/58
9/29
9/58
9/58
1/58
P2=6/29
P3=12/29
Calcul des probabilités des états et de la probabilité totale de transitions Pi,j
PQ1 = P1,2*PS1 + P3,4*PS3 PQ2 = P2,3*PS 3
32
Optimisation ? Dynamic Power Management (DPM)
Vdd : Power Supply Shutdown : on coupe l’alimentation des parties
du circuit qui ne sont pas utilisées, Voltage Scaling : on abaisse la tension d’alimentation (=> F
diminue) hors chemin critique. Clock gating : principe
L’arbre d’horloge : 30% Pcrête d ’un processeur Pbasc = .(PQ + Pclock)
CNTRLLatch
CLK
GCLK& T > TCLK + TAND + Tlatch
=> Réduit aussi le nombre de commutations inutiles.
33
Clock gating pour les unités de contrôle
Avec Fa = i j(Si.Cj) avec Cj condition pour rester dans Si
10,01S1
S0
S2
-1, 10
00 00
11
00
-1,10
Logique combinatoire
Etat
sorties
entrées
Fa latch &
CLK
Gain en puissance variant de 10% à 30%,Augmentation en surface de 9% à 38%.
34
Clock gating pour les unités de contrôle
S3
S1
S5
S2
S4
C35 C42
FSM1
FSM2
FSM1
FSM2
Fa1
Fa2
CLK
Le gain en consommation dépend de la qualité du partitionnement (ILP, Algorithme génétique) :
puissance : -30%, vitesse : + 12%, surface de silicium : + 28 % sur la FSM, +8% sur le circuit total.
35
Clock gating
• Clock gating pour les unités fonctionnelles Principe: on se sert des contrôles de sortie pour désactiver les registres d’entrées. Implantée dans les
microprocesseurs haute performance. Puissance : -10% sur la puissance, peu d’augmentation de la surface de silicium.
EN
EN
AddTri
En
• Clock gating commandé par l’instruction
PC
Fetch Decode MemoryExecute WriteBack
Inst
ruct
ion
No FPNo WB
CLK
36
Autres Optimisations : Influence du codage
Compteur : 9,5 mW/Mhz par transition 0->1.Compteur binaire naturel : 4 transitions en moyenne (2
montantes, 2 descendantes) Pmoyen = 2x9,5 mW/Mhz + 8xPclock
Compteur Binaire réfléchi : Pmoyen = ½ *9,5 mW/Mhz + 8xPclock
Exemple d’application : compteur de programme d’un processeur
Application aux unités de contrôle :
Chemin le plus probable : coder avec un nombre minimum de transitions (distance de Hamming).
37
Autres optimisations : pré calcul
Principe : éviter le passage par une fonction coûteuse lorsque le résultat peut-être pré calculé.
Exemple : comparateur A>BSi les deux MSB sont différents alors le résultat peut-être déterminé sans soustraire A et B.
38
Autres optimisations : parallélisation, pipeline(décodage de viterbi 16 bits)[Be98]
Pref = Cref.Vref2.Fref = 14.7
mW
Cref = 31 pF, Fref=1/40 ns,
Vref = 5V
Pparallèle = (2.15).Cref. (0.58.Vref
2).
(0.5.Fref)= 5.3 mW
Ppipeline = (1.15).Cref.
(0.58.Vref2).
(Fref)= 5.7 mW
39
Parallélisation, pipeline, Pstatique ?
Techno 65 nm : Pdyn/Pstatique = 1
Pref = Pdyn+Pstatique = 2 . P
Pparallèle = 0,36. P + 1,98.P.(0,58) = P.(0,36 + 1.98.0.58) = 1,508.P
Ppipeline = 0,39. P + 1,1.P .(0,58) = P.(0,39 + 1,1.0,58) = 1,028. P.
40
La Consommation des FPGAs
SOURCE : ramirtha-EEC2890-Winter 2004
PFPGA/PASIC ~ 100 à 300 ?
Xilinx4000 => 1000nW/MHz/porte
ASIC => 20-30nW/Mhz/porte
41
La consommation des FPGAs
Architecture d’un FPGA type ISLAND Exemple de schéma d’un bloc Logic
Pdyn = Pdyncell + Pdynhorloge + Pdyninterconnect
Pstatique = allcellIleakcell + allroutingswitch Iswitch + all
ramcellIleakramcell
42
Réduction de la consommation des FPGAs
• Consommation des blocs logiques : méthodes identiques aux ASICs ? ,• Consommation dans le réseau d’horloge :
- Clock gating => cellule d’entrée
- Clock gating par bloc ?
• Mode basse consommation : 100µA, (800ns pour passer en mode basse consommation, 200 µs pour retourner en mode run – source FPGA Actel).
• Deux Vdds : Blocs logics avec
soit VddH, soit VddL
soit choix par programmation.
1
Réseau d’horloge
Horloge
CNTRL
2 ns
43
PLAN
1. Généralités sur la consommation électrique des circuits numériques
2. Estimation et optimisation de la consommation des circuits logiques (ASIC/FPGA)
3. Estimation et Optimisation de la consommation des processeurs et des mémoires
1. Estimation de la consommation du processeur et du système mémoire
2. Réduction de la consommation du processeur
3. Réduction de la consommation du système mémoire
44
Processeur et mémoire (système monoprocesseur)
mp
E = Eprocesseur + Ebus + E mémoires
Emémoires = Emémoires internes (cache, scratchpad)
+ Emémoires externes
45
Consommation logicielle
E = i Ei Ni + i,j Oi,j Mi,j + k Ek [Ti98]
Avec Ei : énergie propre à l’instruction i, Ni : nombre d’instruction de type i,
Oi,j : overhead entre les deux instructions de type i,j (changement de chemin de donnée)
Ek : énergie due aux défauts de cache, et aux ruptures de pipeline.
46
Consommation logicielle : Instruction Level Power Analysis
AIi, Ii,jIi, Ii,j
Calcul de E et Ppic
Calcul de E et Ppic
Ni, Mi,j, Ek?
Ni, Mi,j, Ek?
Programme asm ou C
Intégration du parallélisme
Ii, Ii,j : Mettre 150 à 200 (E(200.Ei)>> Erebouclage) fois la même instruction i (ou la paire d’instruction i,j) dans une boucle. Effectuer ces mesures sans puis avec commutation de données.
Ces mesures peuvent être effectuées par classe d’instructions.
VESTIM-LP [Gu01]
47
Consommation logicielle : Fonctional Level Power Analysis
1- Analyse fonctionnelle de l’architecture => paramètres architecturaux significatifs pour la consommation et définition du modèle de E et P.2 – Mesures caractéristiques
Exemple : SoftExplorer (N. Julien – Lester – AS-LP) : taux de parallélisme, : taux d ’utilisation des
unités de traitement : taux d ’accès en
mémoire externe : taux de défaut de
cache : taux d ’utilisation du
DMA PSR : taux de rupture de
pipelineItotal = f(mode mémoire, F, , , )
Exe
mp
le :
TI
TM
S32
0C62
01
48
Architecture du système mémoire et consommation
Mémoires locales :
Mémoires cache : flexibles mais consommatrice,
Mémoires Scratch_pad : SRAM localisée sur laquelle on mappe les variables les plus fréquemment accédées,
Mémoire externe ou principale : DRAM, MRAM, Flash ...
Temps d’accés aux données
49
Architecture du système mémoire et consommation
1 cycle, Temps d’accès : 3 ns, 0. 565 nJ
5 à 10 cyclesTemps d’accès :20 ns, 5. 83 nJ
Processeur L1 Cache(SRAM)
L2 Cache(SRAM)
MémoirePrincipale
20 à 50 cyclestemps d’accès 75 ns, 100 mW
N-1
P-1
0
P
1 cycle
ScratchPad Mem
Cache de données
Processeur
Mémoire externe
Espacemémoireadressable
Cellule SRAM : 6Trs
Cellule DRAM : 2 Trs
50
Architecture du système mémoire : scratch-pad
Espacemémoireadressable
N-1
P-1
0
P
1 cycle
ScratchPad Mem
Cache de données
Processeur
Mémoire externe
Calcul de l’histogramme d’une image :
Char Image[512][512];
Int Histo[256];
…
For (i=0;i<512;i++)
For (j=0;j<512; j++)
level = Image[i][j];
Histo[level]=Histo[level]+1;
Configuration 1 - Cache 2K : cache misses dues aux conflits d’adresse entre Image et Histo. Optimisation difficile car l’adresse de Histo est dépendant de la valeur du pixel.Configuration 2 – cache 1K-Scratchpad 1K :Histo est placé dans le scratchpad.
51
Consommation des SRAM (cache, scrachtpad)
Ecache = F(Line size, associativity, cache size, word size, techno)
Estimation : CACTI [CA]
0,64
0,65
0,66
0,67
0,68
0,69
16 32 64
Taille d'un mot du cache (Byte)E
ner
gie
(n
J)0
0,2
0,4
0,6
0,8
1
1 2 4
Degré d'associativité
En
erg
ie (
nJ)
0
0,1
0,2
0,3
0,4
0,5
0,6
2 4 8 16
Taille du cache (Kbyte)
Ene
rgie
(nJ
)
52
Consommation des DRAM
SDRAM : ESDRAM =ESTBY + EREFRESH + EREAD + EWRITE
Typiquemment le refresh intervient toute les 64 ms.Benchmarks : SPEC95
RDRAM (Rambus DRAM)[Le00] :
Power down(3mW)
Active(300mW)
Standby(180mW)
Nap(30mW)
+6000ns +6ns
+60ns
Read/writeTransaction
capacité : 64 Mbits répartie en 4 bancs
53
Consommation des DRAM : Mémoire multi_bancs
ProcessorCache
Chip 1 Chip 4Chip 3Chip 2
16 16 16 16
ProcessorCache
Chip 1 Chip 4Chip 3Chip 2
16 16 16 16
NAP, STB, PDN
54
Consommation de la hiérarchie mémoire
Ememorysystem = Ecaches + Escratchpad + Emain memory
Ecaches = n Ecache i n : nombre de caches (données + instructions)
Ecache i = m Ehit + p Emiss + l Enoaccess
Emain memory = k Eaccess + j Enoaccess + … ( si différents modes )
P+m+l = k+ i : durée d’exécution de l’application
55
Réduction de la consommation : transformation de code
E = i Ei Ni + i,j Oi,j Mi,j + k Ek
Ei :Ei : Utiliser des formats adaptés à l’échelle de numération souhaitée :Utiliser des formats adaptés à l’échelle de numération souhaitée :
Exemple : type « int », + 18.2% sur P que pour « char » ou Exemple : type « int », + 18.2% sur P que pour « char » ou « short ». « short ». Favoriser l’utilisation des opérations consommant moins d’énergie.
Exemple : A*2 => A+A.Exemple : A*2 => A+A.
Oi,j : Réordonner les instructions après ordonnancement :
Principe : Réordonner les instructions afin de réduire les commutations entre deux instructions consécutives.
Exemple pour le processeur Fujitsu DSP :1. LDI Séquences : 1,2,3 => 87.3 mA2. MOV2 2,1,3 => 71.4 mA gain de 22%3. ADD
56
Réduction de la consommation : transformation de code
Ek : Réduction du nombre de rupture de pipelineBasé sur les probabilités de passage dans les séquences d’instructions. Exemple : IF (…)
Then <= Prob=0.3seq instr 1 …
Else <= Prob =0.7seq instr 2 …
END IF;Pour le pentium 4, taille du pipeline : 20
Ei, Ek : Réduction du nombre d’accés mémoire et de défaut de cache :
Modifications algorithmiques : favoriser l’utilisation des registres. Modifications architecturales, Combinaison des deux.
Beq seq instr1Seq instr 2Jump END IFSeq instr 1END IF
Bne seq instr2Seq instr 1Jump END IFSeq instr 2END IF
57
Réduction de la consommation : transformation de code
for(i=0;i<N;i++) for(j=0;j<N;j++)
A[j][i] = A[j][i] +1;
for(j=0;j<N;j++) for(i=0;i<N;i++)
A[j][i] = A[j][i] +1;
for(i=0;i<N;i++) B[i]=A[i] +1; for(i=0;i<N ;i++) C[i]=A[i] * 3;
for(i=0;i<N;i++) B[i]=A[i] +1;
C[i]=A[i] * 3;
for(i=0;i<N;i++) B[i]=A[i] + A[i+1];
for(i=0;i<N;i++) B[i]=A[i] + A[i+1]; B[i+1]=A[i+1] + A[i+2];
Loop Interchange
Loop Fusion
Loop Unrolling
Hypothèse : les données sont stockées par ligne, A[j][i] et A[j][i+1] sont à des adresses consécutives.
Cette transformation réduit le nombre de défauts de cache. Si A peut_être affectée à un registre => une seule lecture mémoire.
Si A[i+1] peut_être affectée à un registre => une seule lecture mémoire. Pb : Augmente la taille du code (cache d’instruction).
58
Réduction de la consommation : transformation de code
for(i=0;i<N;i++) for(j=0;j<N ;j++) for(k=0;k<N ;k++) C[i][j]= C[i][j] + A[i][k] * B[k][i];
for(j’=0;j’<N;j’+T) for(k’=0;k’<N ;k’+T)/* un block de taille T */ for(i=0;i<N;i++) for(j=j’;j< min(j’+T-1,N-1);j++) for(k=k’;k< min(k’+T-1,N-1);k++) C[i][j]= C[i][j] + A[i][k] * B[k][i]; A, B, C ne rentrent pas dans
le cache => décomposition par bloc dont la taille rentre dans le cache (Tile size).
=> Autre solution : modification du calcul d’adresse associé à un code de gray
Multiplication de matrice
Loop Tiling Transformation
Tile 1
Tile 2
Tile 3 Tile 4
Tile 1 : A[0][0], A[0][1], A[1][0], A[1][1],
Tile 2 : A[0][2], A[0][3], A[1][2], A[1][3],
…
59
Réduction de la consommation : Architecture du système mémoire
Système embarqué : Architecture mémoire adaptée à l’application afin de diminuer le nombre de défaut de cache : degré d’associativité, niveau de cache, taille de ces différents niveaux de cache … => dépend de l’application ?
60
Réduction de la consommation : DVFS, ABB, modes repos
Pour les processeurs DVFS (Xscale, Transmetta, StrongArm, Lparm …) : on adapte la vitesse de fonctionnement en fonction des contraintes temporelles (problème d’ordonnancement).
Modes repos : idle, sleep …
IDLE SLEEP
50 mW160 mW
RUN400 mW
10ms10ms 160ms
90ms
90msProcesseur StrongArm : (59 Mhz, 0.8 V) -> (206 Mhz, 1.5 V)
ABB (Adaptative Body Biaising) : VTH variable
61
Quelques chiffres
Echelle de V,F P(V,F) Modes repos (Pénalités)
StrongArm SA110
0.8V,59Mhz 1.5V,206Mhz
_400mW
Idle : 160mW (10 µs)Sleep : 50mW (160
ms)
LParm (base : ARM8)
1.1V,10Mhz)(3.3V,100Mhz)
1.8 mW220 mW
Idle : 500µW (1 cycle)
PXA255(Xscale) 1V,200Mhz1.3V,400Mhz
0.9 W1.5 W
Pidle(F,V) = 45 à 939 mW
Sleep : (P=45µA)
Arm1176 (130µm)
De 330 Mhz à 550 Mhz
0.8mW/Mhz avec cache
0.6 mW sans cache
_
Transmetta 0.8V, 300Mhz1.3V,1GHz
_ _
FPGA-Actel F<400Mhz 1000nW/MHz/porte stby : 100µA(800ns,200µs)
62
E processeur : DVFS ou mode repos ?
Tâche1
F1,V1Processeur inactif
WCET (Worst Case Execution Time)
Tâche1
F1,V1
Processeur en mode repos
WCET
Tâche1
F2<F1,V2<V1
WCET
E = Etâche1,F1,V1 + Einactif
E’ = Etâche1,F2,V2 + EtransitionDVS
E’ < Etâche1,F1,V1 < E
E et Ppic réduit.
E’’ = Etâche1,F1,V1 + Etransitionrepos + Emode
repos
E’’ > Etâche1,F1,V1(>E’) < E
Ppic inchangé, Prepos => rechargement de la batterie ?
63
DVFS ou modes repos
Exploitation des modes repos lorsque F n’est plus disponible.=> Et la mémoire ????
Recherche des différentes vitesses de fonctionnement du ou des processeurs.
T1 (V,F)PE1
Echéance
T3 (V3,F3)Mode repos
T6 (V,F)
F CPU (Mhz) ECPU Emem Etotal
50 1.04 37.71 38.75
200 1.58 9.51 11.09
600 3.63 3.25 6.88
1000 7.88 2.02 9.9
Exemple : décodeur MPEG
(Processeur intel XSCALE) [Le00]
P en mW, E en mJ
64
E processeur + Emémoire : DVFS ou mode repos ?
Tâche1
F1,V1
Processeur en mode repos
WCET
Tâche1
F2<F1,V2<V1
WCET
E’proc = Etâche1,F2,V2 + EtransitionDVS
Sans cache : E’mem = Pmactive . (T3-T1)
Avec cache - sans défaut de cache
E’mem = Pmstby . (T3 - T1)
Avec cache - Avec défaut de cache
E’mem = Pmstby . T.F1/F2 + Pmactive . T’’
E’’proc = Etâche1,F1,V1 + Etransition + Emode repos
E’’mem = Pmactive . (T2-T1) + Pmstby . (T3 -T2)
E’’mem = Pmstby . (T3 - T1)
E’’mem = Pmactive.T’’ + Pmstby.T + Pmstby.(T3 –T2)
T1 T2T3 T1 T3
65
DVFS + Gestion des modes repos du système mémoire (RDRAM) [Le00]
F CPU
(Mhz)ECPU Emem Etotal
50 1.04 37.71
38.75
200 1.58 9.51 11.09
600 3.63 3.25 6.88
1000 7.88 2.02 9.9Exemple : décodeur MPEG (Processeur intel XSCALE)
P en mW, E en mJ
F CPU
(Mhz)P CPU P mem ECPU Emem Etotal
50 16.5 31.5 1.04 1.98 3.02
200 98.5 35.6 1.58 0.57 2.15
600 639 43.5 3.63 0.25 3.88
1000 2169 50.1 7.88 0.18 8.06
Exploitation des modes
STBY, NAP, PDN
66
Considérons un ensemble de tâches définies par :Ci (Worst Case Execution Time : WCET) : pire temps d’exécution d’une tâche i,AETi : temps effectif d’exécution d’une tâche i,Ai : Date d’activation d’une tâche i,Ti : Période d’une tâche i = Echéance d’une tâche i (Di).
Principe de la politique RM (Rate Monotonic) [Gru02] : Priorité à la tâche qui a la plus petite période.
(à priorité fixe) Pour N tâches :
Ordonnancement basse consommation (monoprocesseur)
)12.(N Ti
CiU :ment ordonnanced'Test N/1
N
1i
67
1. Recherche d’un facteur de ralentissement global
=> Rechercher : S = Fref/F : facteur de ralentissement (S>1).
Ordonnancement RM-LP hors ligne
)12.(N Ti
CiU :ment ordonnanced'Test N/1
N
1i
On cherche un facteur de ralentissement Ci’=Ci*S tel que :
U
)12.(N S )12(*N U* S
Ti
Ci*S
Ti
i'C N/1N/1
N
1i
N
1i
68
Ordonnancement RM-LP hors ligne
Exemple :
42.10,583
0.828 S 1)-(2*2
12
7
4
1
3
1 U 1/2 Tâch
eWCET Périod
e
T1 1 3
T2 1 4
Ordonnancement RM
Choix de Emin
(E = Eproc + Emem)
Parmi EDVFS et Emoderepos
Modes repos
PHyperpériodePréemption
[Ki04]
P
t
Hyperpériode
P Hyperpériode
t3 4 6 8 9 12
3 4 6 8 9 12
3 4 6 8 9 12 t
69
Ordonnancement RM-LP hors ligne
Solution ?
Recherche d’un facteur de ralentissement localSi il reste du temps, recherche d’un facteur de ralentissement local.
E
FnominaleFmin
F
DVFS
DVFS+Modes repos
t
P
P
t3 4 6 8 9 12
3 4 6 8 9 12
70
Ordonnancement en ligne
Principe : redistributions des gainsLorqu’une tâche termine, on calcule la différence entre le WCET et le AET et on redistribue le temps gagné soit :
à la tâche qui débute son exécution, à toutes les tâches en attente.
Tâche
WCET Période
Exécution 1
T1 1 3 0.5
T2 1 4 1
T1 (V1,F1)CPU
Deadline
Si T1 finit avant son WCET
T2 (V2’,F2’)
Idle
71
Ordonnancement CC-RM [SH03]
ii i
1jj
)AET puis WCET(
DDS
Tâche WCET Période Exécution1 Execution2
Execution3
Exécution4
T1 1 3 0.5 0.5 0.5 0.5
T2 1 4 1 0.5 1
Dj : deadline
En ligne => EDF ...Modes repos ?? Prédiction ?Coût de l’ordonnancement en ligne Power-aware ???
P
t
D1D2 D3 D4D5
3 4 6 8 9 12
3/2
9/4
72
DVFS et ABB [Je04]
1. Modélisation de Pleakage (V) de façon à valider le gain attendu : P = Pdynamique(Vdd,F) + Pleakage (Vdd) à Vth constant.
2. Gestion du DVFS et du ABB (Adaptive Body Biaising)P = Pdynamique(Vdd,F) + Pleakage (Vdd,Vth)
avec Vth = Vth1 – K1. Vdd – K2.Vbs
Pleakage = [Vdd. (K3. eK4Vdd.eK5Vbs) + |Vbs|.Ij. Exemple : processeur crusoe 70 µm
Vdd=1V, Vbs =0V => E =93.5µJ, Vdd=0.85, Vbs =0V => E = 73.8µJ, Vdd=1V, Vbs =-0.66V => E =50.6µJ.
Politique d’ordonnancement ?
73
Réduction de la consommation : Autres mémoires
• Mémoire 1T-SRAM (proposée par MoSys [Mo]) :
• Cellule de base : un transistor et une capacité (MOS).
• Une petite taille de cellule (1/3-1/4 d’une cellule SRAM)• Facilité de leur intégration • de très grandes vitesses, 220Mhz pour une technologie 0.25 µm, plus de 300 Mhz pour une technologie 0.18 µm. Ces mémoires surpassent les mémoires DRAM en terme de densité ?
Mémoire MRAM (proposée par Cypress) : Capacité : actuellement 2 Mo par chip, en 2006, 32Mo. Forte consommation en écriture, faible consommation en lecture, Quelques chiffres : Documentation cypress
32Kx8, Read and write access : 70 ns, active power : 495 mW, standby mode : 825 µW.
74
Autres mémoires
Victim Buffer [Zh04] : mémorise les lignes récemment expulsées du cache.
Frequent Value [Va04] : les données du cache sont divisées en deux catégories : FV pour « Frequent value » et « NFV » pour « Non frequent value ». Les FVs sont stockées sous un format encodé dans un petit bloc tandis que les NFVs occupent un bloc plus large sous un format non encodé.
20 Cycles1 Cycle CacheCache CacheCache
MainMainMemoryMemory
MainMainMemoryMemory ProcessorProcessor ProcessorProcessor
Victim bufferVictim buffer Victim bufferVictim buffer
1 Cycle
75
Conclusion
Evolution des techniques d’ordonnancement hors ligne et en ligne afin de réduire la consommation processeur + système mémoire en tenant compte du DVFS/ABB et des modes repos du processeur et des mémoires,
Impact de l’allocation mémoire ?
Gestion du RTOS complexe => réalisation de certains services en HW.
Systèmes Multiprocesseurs ?
NOC (Network On Chip) ?
76
Conclusion : ITRS 2004
année 03 04 05 06 07 08 09 12 15 18
SOC Dynamic power reduction
0 0.1
0.1
0.2
0.2
0.2
0.2
6 4.7 8.1
SOC Static power reduction
0.37
1.4
2.4
3.4
5.1
6.4
8.7
18.8
44.4 232
Manufacturable solutions exist.
Manufacturable solutions are known.
Manufacturable solutions are not known.
77
Bibliographie
[Ac03] A. Acquaviva, T. Simunic, L. benini, « LP-ECOS : An energy efficient RTOS », HP Lanoratories, April 2003.
[Be98] Luca Benini, Giovanni De Micheli , « Dynamic Power Management, Luca Benini, Giovanni De Micheli», Kluwer Academic Plublishers,1998.
[Be00] L. Benini, A. Bogliolo, G. De Micheli, « A survey of design technique for system Level dynamic power Management », IEEE transactions on VLSi Systems, vol. 8, No. 3, Juin 2000, pp. 299-316.
[Bo02] Bokar, www.intel.com. [Ca04], B.H. Calhoun, F.A. Honoré, A. P. Chandrakasan, » A Leakage
Reduction Methodology for distributed MTCMOS », proceeding of IEEE Joiurnal of Solid-state circuits, vol.39, no.5, may 2004.
[Ch02] P. H.Chou, J. Liu, D. Li, N. Bagherzadeh, « IMPACCT : Methodology and tools for Power-Aware Embedded Systems », Design Automation for Embedded Systems, Kluwer Academic Plublishers, pp.205-232, 2002.
[Da99] P. dave, G. Lakshminarayana, N. Jha, « COSYN: Hardware-Software Co-Synthesis of heterogeneous distributed Embedded Systems, IEEE Transactions on VLSI systems, Vol. 7, No. 1, mars 1999.
[Do94] M. Doyle, J. Newman, J. Reimers, « A quick method for measuring the capacity versus the discharge rate for a dual Lithium-ion insertion cell undergoing cycling », Journal of pwoer sources, Vol. 52, No. 2, décembre 1994, pp. 211-216.
[Ge01] Jun fei Geng, Battery Modeling: a Longer Lifetime, (duke University). [Gr02] F. Gruian, « Energy centric Scheduling for Real Time Systems », PhD
thesis Lund Institute of Technology, 2002.
78
Bibliographie
[Gu01] Guitton-Ouhamou Patri cia, Belleudy Cécile, Auguin Michel, «Power consumption Model for the DSP OAK Processor», proceedings of 11th IFIP International Conference on Very Large Scale Integration-System-On Chip 2001, December 3-5 2001, Montpellier, France, pp73-78.
[Gu03] P. Guitton-Ouhamou, K. Ben Chehida, C. Belleudy, M. Auguin, «Automatical architecture exploration : Energy optimisations of a codesign tool for embedded HW/SW systems», first Northeast Workshop on Circuits and Systems (NEWCAS'2003), sponsored by IEEE June 17 - 20, 2003, in Montréal, Canada.
[FEL03] Xiaobo Fan, Carla Ellis, and Alvin Lebeck. Interaction of power-aware memory systems and processor voltage scaling. In Proceedings of the Workshop on Power-Aware Computer Systems PACS'03, December 2003.
[In01] T. Inukai, T. Hiramoto, T. sakurai, « VTCMOS in Seris Connected circuits », Proceedinf of ISPLED 2001.
[Je04] R. Jejurikan, C. Pereira, R. Gupta, « Leakage Aware Dynamic Voltage Scaling For Real-Time Embedded Systems », Proceeding of Design Automation Conference 2004.
[Ki04] W.Kim, J.Kim, S.L Min « Preemption-awware dynamic voltage scaling in hard real time systems », ISLPED 2004.
[Le00] X. Fan, C. Ellis, A. Lebeck, « The synergy between Power-Aware Ssystems and Processor Voltage Scaling », Proceedings of the International Symposium on Low-Power Electronics and Design ISLPED'01, August 2001.
[Lu01] Jiong Luo, Niraj K. Jha "Battery-Aware Static Scheduling for Distributed Real-Time Embedded Systems", in proceedings of 38th Design Automation Conference 2001 [p. 444] June 18-22, 2001 Las Vegas.
[Lu02] J. Luo and N. K. Jha, ‘‘Static and dynamic variable voltage scheduling algorithms for real-time heterogeneous distributed embedded systems,’’ Int. Conf. on VLSI Design, Jan. 2002.
79
Bibliographie
[Ma99] Thomas Martin and Daniel Seiwiorek, "Non-Ideal Battery Behavior and Its Impact on Power Performance Trade-offs in Wearable Computing," Proceedings of the 1999 International Symposium on Wearable Computers, San Francisco, October 18-19, 1999; pp. 101-106.[Ti98] V.Tiwari, Reducing power in High performance microprocessors, Design Automation Conference , 1998, pp. 732-737 [Va04] Chuanjun Zhang, Jun Yang and Frank Vahid, “ Low static power frequent value data caches” Date 2004.[Wu03] Dong Wu and Bashir M. Al-Hashimi, Petru Eles, "Scheduling and Mapping of Conditional Task Graphs for the Synthesis of Low Power Embedded Systems", in proceedings of Design Automation Test in Europe 2003 Munich, Germany, March 3-7, 2003, p.90-95.[Zh03] D. Zhu, R. Melhem, and B. Childers; "Scheduling with Dynamic Voltage/Speed Adjustment Using Slack Reclamation in Multi-Processor Real-Time Systems", IEEE Trans. on Parallel & Distributed Systems, vol. 14, no. 7, pp. 686 - 700, 2003.[Zh04] Chuanjun zhang, Frank Vahid, “ Using a victim buffer in application-specific memory hiearachy”, DATE 2004.AS-LP : http://lester.univ-ubs.fr:8080/~julien/AS%20conso/AS%20conso2.htm[Ca] CACTI : http://www.ece.ubc.ca/~stevew/cacti.html[Mo] Mosys low power design –don’t forget about the memory, http://www.mosys.com