estimation et optimisation de la consommation dans les...
TRANSCRIPT
Estimation et Optimisation de la consommation dans les SOCs : Processeur & ordonnancement
Master ESA
1
C. Belleudy ([email protected])
PLAN
1. Généralités sur la consommation électrique des circuits numériques
1. Introduction2. Rappel des formules de base3. Comment réduire la consommation
2
3. Comment réduire la consommation
2. Estimation et Optimisation de la consommation des processeurs et des mémoires
3. RTOS et ordonnancement Basse consommation
4. Systèmes de récupération d’énergie et traitement de données
Système faible consommation : objectifs
- Facture électrique = Energie- Autonomie- Echauffement thermique- aspects environnementaux : consommation mondiale, traitement des piles, équipement, …
2015 – 2020 :-Nombre de souscriptions au haut débit 3,6 -> 7,7 milliards- Volume de données Échangées : Multiplication par un facteur 10 Santé, Transport, Ville et Maison
3
Consommation des équipements portables (ITRS 2015)
0
500
1000
1500
2000
2500
3000
3500
2009 2010 2012 2014 2016 2018 2020
P e
n m
W
Année
JNRDM 2016, 5G : Tendances et Perspectives pour la Conception d'Amplificateurs de Puissance, Florent Torres, Eric Kerhervé, Andreia Cathelin
Santé, Transport, Ville et Maison intelligente, ….
Conception faible consommation
�� Contrainte d’énergie et/ou de puissance Contrainte d’énergie et/ou de puissance ::� Autonomie souhaitée + contrainte taille/poids Batterie� Systèmes de récupération d’énergie
⇒ Par scénario applicatif => E, P⇒ Exemple téléphonie mobile :⇒ Exemple téléphonie mobile :
⇒ Exigences ados : 1 journée, nb sms, accès réseau sociaux, jeux,Journée école ou vacances⇒ …⇒ Senior : qq jours, info, application GPS, googlemaps, WAZE
�� Packaging, … Packaging, … : Pmoyen, Ppeak à ne pas dépasser�� Aucune contrainte Aucune contrainte => déterminer la solution qui consomme le moins pour
une application ou un jeu d’applications donné.
4
Qui consomme - partie numérique ?
Exigence croissante en termes de traitements, de capacité de mémorisation, de transmission
Unités de traitement (Processeur,
5
Unités de traitement (Processeur, ASICs, FPGA) : ⇒ Course à la fréquence,⇒ ParallélismeLe nombre de coeur double tous les 2 ans (Patterson, 2007)
Mémoire externe : Capacité x 2 tous les 3 ans
Architecture multiprocesseur
La consommation ?
Conception faible consommation⇒ Répondre aux exigences applicatives
⇒ compromis performance/consommation
6Problème majeur
Autonomie prolongée, Rechargement moins
fréquent (1500 à 2000 cycles )
Quelques ordres de grandeurProcesseur type PC (7th génération) :
Core I7 : actif : 91 W, => portable : 15 W
Core I5 : actif : 65 W, => portable : 15 W
Capacité de la batterie : 220 Wh/Kg, poids : 400gr
Processeur Tablette/notebook :
ATOM : 5 W, TEGRA : 8 W
7
ATOM : 5 W, TEGRA : 8 W
Capacité de la batterie : 220Wh/Kg, poids : 200gr
Processeur téléphonie mobile :
Cortex A7, A9, A15, TEGRA, Exynos… : W – 28nm
Capacité de la batterie : 220Wh/Kg, poids : 60gr -> 140gr
Autonomie de ces équipements ?
Au bout de 1000 rechargements, perte de 30% de la capacité de charge,
Un site à visiter : http://www.eu-energystar.org/fr/fr_008b.shtml
Communication, débit et consommation : ordre de grandeur
Consommation de quelques protocoles de communication :
� LORA : 10kbps, Zigbee : 15 mW (250kbps), Bluetooth LE: 50 mW (1Mbps), WIFI : 300mW (-> 50Mbps),
� 3G : 870 mW, 4G : 430mW par Mbps ->(Gbps), 5G : (->10 Gbps)
QQ Batteries de mobile : 2300mAh (Galaxy A3) -> 2900 mAhQQ Batteries de mobile : 2300mAh (Galaxy A3) -> 2900 mAh(Galaxy A5), 4000mAh (Archos 50 Power)
Autres : Oukitel K10000, 1,4cm d’épaisseur, 316gr, 10 000mAh
Application SmartViser, simulation des usages (navigation Internet, appels, SMS, lecture de vidéos, calculs basiques et 3D...).
Galaxy A3 : 14h, Galaxy A5 : 18hArchos 50 Power : 17h, Oukitel K10000 : 40 h
http://www.lesnumeriques.com/telephone-portable/notre-selection-smartphones-android-plus-autonomes-a2365.html
8
Les sources de dissipation : Puissance et Energie
P = Pstatique+ Pdynamique
9
Puissance de reposDue aux commutations
en sortie de la porte CMOS
Pdynamique ~ Cl.Vdd2.F
P = Vdd. Istatic
Istatic ~ Ileakage ~ (W/L) e(-VTH
/T)
Courant de fuites & type de circuit
Comment Réduire la consommation ?
�� Couper la tension d’alimentation : Couper la tension d’alimentation : P= (P= (IdynamicIdynamic++IstaticIstatic).).VddVdd
Mode repos Mode repos ((idleidle, , sleepsleep, , deepsleepdeepsleep) des ) des processeurs,processeurs, des mémoires, ...
Principe : séparer les tensions d’alimentation des circuits d ’E/S et du cœur du circuit => power domain
�� Adapter la tension d’alimentation (voltage Adapter la tension d’alimentation (voltage scalingscaling) ) T = K’. C .V /(/(/(/(V -V )2
0
10
T = K’. Cout.Vdd/(/(/(/(Vdd-Vth)2
Se traduit par des « operating point » sur les processeurs : couple tension/fréquence
� Baisser Baisser la fréquence du circuit la fréquence du circuit ((FrequencyFrequency scalingscaling) : ) :
PpicPpic et et PmoyenPmoyen diminuent, E reste inchangée diminuent, E reste inchangée => => permet de limiter la dissipation thermique et de maîtriser le pic de puissance (permet de limiter la dissipation thermique et de maîtriser le pic de puissance (PpicPpicdétermine le prix du packaging).détermine le prix du packaging).
0
5
10
15
20
25
30
1 2 3 4 5
Vdd(V)
Tem
ps d
e ré
pons
e
(nor
mal
isé)
Comment Réduire la consommation ?
� Réduction du nombre de commutations soit l’activité: processeur, bus et mémoire.
� Plusieurs VTH [In01] : Variable Treshold CMOS Transistor (VTCMOS)
11
Sub=1 : VTH haut
Sub=0 : VTH bas
Transistor off : VGS =0V, Transistor on : VGS = Vdd.
⇒ ABB (Adaptative Body Biasing)
⇒ Operating point : Vdd, F, Vth ?
Du coté des batteries
�Choix d’une batterie adaptée : Wh/Kg ,
�Le temps de décharge de la batterie : à courant constant
L’énergie totale C fournie par une batterie idéale est :
12
A Typical Discharge Profile (Li/MnO2
DL2/3A Cells) [Ge01]
Quelle sera la durée de vie d’une batterie pour un courant de1 A et 0,125 A ?Seuil de tension : 2,5V.
C = In .Tl (formule de Peukert)n : constante propre à la batterie ,Tl : temps de décharge ,I : courant de décharge.
La consommation dans un SOC
DSP
RISC
Fonction Matérielle
(IP)
FPGAFPGAS/DRAM
Bus/Réseau
T1
C1 C2
T5
T3 T4 T2
DSP
RISC
Bus
13
RISC USB
DSPASIC
PCI
DRAM
SRAM
Bibliothèques
Architecture du SOC
Ordonnancement
PLAN
1. Généralités sur la consommation électrique des circuits numériques
2. Estimation et Optimisation de la consommation des processeurs et des mémoires
14
1. Estimation de la consommation d’un core
2. Estimation de la consommation mémoire
3. Techniques de réduction de la consommation
3. RTOS et ordonnancement Basse consommation
4. Systèmes de récupération d’énergie et traitement de données
Processeur et mémoire
http://www.cse.wustl.edu/~jain/cse567-11/ftp/multcore/
15
E = Ecores + Ebus + E mémoires
Estimation niveau architecturale : Extension de la méthode probabiliste
Librairie pour les unités de traitement, de contrôle, registres, compteurs,
mémoires …
Estimation niveau logique
Estimation niveau
architecturale
Lois de composition de modèles
16
� P = Σi {unités fonctionnelles} Pi*AiAvec : Pi : énergie moyenne consommée par l’unité (dépend de Vdd, F),Ai : pourcentage moyen de commutations 0->1.Concepteur :
⇒ Exige de nombreuses simulations, ⇒ Simulation de l’ensemble
Pb : pas de description fine de l’architecture⇒ Autres solutions :
ILPA : Instruction Level Power Analysis
FLPA : FunctionalLevel Power Analysis
Consommation logicielle : Instruction Level Power Analysis
E = Σi Ei Ni + Σi,j Oi,j Mi,j + Σk Ek
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)Mi,j : nombre de pair d’instruction de type i,j
17
Mi,j : nombre de pair d’instruction de type i,jEk : énergie due aux défauts de cache, et aux ruptures de pipeline.
Les données (les instructions) ne sont pas dans le cache. Le processor attend : Eproc ~ Enop
Decode I1I1 Fetch Execute I1 Rupture de Pipeline
Decode I2I2 Fetch Execute I2
Decode I4I4 Fetch Execute I4
Decode I3I3 Fetch Execute I3Programme :Instr 1Instr 2 : BNE Instr 4Instr 3Instr 4
Consommation logicielle : Instruction Level Power Analysis
Ni, Mi,j, EkProgramme C Assembleur
Simulation, Analyse
Isoler l’alimentation du processeur
18
A Ii, Ii,j Calcul de E, Ppic, Pmoyen
Pi = Ii.Vdd, Ei = Ii.Vdd.Nci.1/FNci : nombre de cycles nécessaire pour exécuter l’instruction i, F : fréquence du processeur.
Consommation logicielle : Instruction Level Power Analysis
Calculer l’énergie consommée par un filtre FIR :Y[n] = b0.X[n] + b1.X[n-1] + b2.X[n-2] + b3.X[n-3].
Dans le cas idéal (pas de pénalité)
Dans le cas pire (cache miss + rupture de pipeline, 5 étages de pipeline).
19
Hypothèse : les instructions s’exécutent en un cycle d’horloge.
On prendra F= 1Ghz, PCore= 500 mW
Deux cas de figure : - I constant, - I variable par instruction
Estimation logicielle
Ni, Mi,j, Ek?
Programme C Assembleur
IF …Then
instr …Else
instr’ …END IF;
N= AxB + C
20
A
Ii, Ii,j Calculer E et Ppic
N= AxB + CFor (I=1 TO N){ instr 1
instr …
}END FOR;
Problème : if … then… else… , Loop for, while … temps d’éxecution ? => problème identique aux estimateurs de performance.Exemple de solution : Profiling sur un ensemble de vecteurs de test. On détermine la probabilité d’exécuter un bloc d’instructions => Valeur moyenne de Ni, Mi,j, le nombre de Ek.
Consommation logicielle : Instruction Level Power Analysis
Calculer l’énergie consommée dans les deux cas qui suiventFor n in 0 to 15 remplacer par Wait Y[n] < SeuilLoopY[n] = b0.X[n] + b1.X[n-1] + b2.X[n-2] + b3.X[n-3].
End loop
21
End loop
Dans le cas idéal (pas de pénalité cache, pipeline, …).
Hypothèse : les instructions s’exécutent en un cycle d’horloge.
On prendra F= 1 Ghz, PCore= 500 mW
Estimation logicielle : principe du FLPA
1- Analyse fonctionnelle de l’architecture => paramètres architecturaux qui interviennent dans le calcul de E et P.
22
calcul de E et P.
2 – Mesures Spécifiques
Functional Level Power Analysis (FLPA)
Estimation logicielle : FPLA – SoftExplorer (Labsticc)
� Paramètres algorithmiques:(valeurs à déterminer)
� Exemple pour 1 core classique :� α : taux de parallélisme, � β : taux d ’utilisation des
unités de traitement
23
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
pipeline
Exemple de core I (α, β, τ, γ, ε, PSR )
Estimation logicielle : FLPA – SoftExplorer (Labsticc)
Calculer l’énergie consommée par un filtre FIR :Y[n] = b0.X[n] + b1.X[n-1] + b2.X[n-2] + b3.X[n-3].
Identifier les paramètres importants
24
P et E = ?
importantsExtraction de la valeur des paramètres pour le filtre FIR
Influence du parallélisme sur la consommation
Calculer l’énergie consommée par un filtre FIR :Y[n] = b0.X[n] + b1.X[n-1] + b2.X[n-2] + b3.X[n-3].
Instructions parallèles : 2
25
Calculer le gain obtenu pour l’exécution de 8 instructions en parallèle en comparaison d’une exécution séquentielle.
Instructions parallèles : 2 lectures/écritures, 2 opérations Int/Float.
Evaluer la consommation d’énergie et de puissance entre un exécution séquentielle puis parallèle.
Architecture multicore et SIMD
Reprendre l’exemple du filtre FIR et calculer pour différents type d’exécution la consommation.
26
la consommation.
Evaluer le nombre d’opération par seconde.
Architecture du système mémoire et consommation
1 cycle, Temps d’accès: 3 ns,
5 à 10 cyclesTemps d’accès:20 ns, 5. 83 nJ
Data processing
L1 Cache
(SRAM)
L2 Cache(SRAM)
MémoirePrincipale
20 à 50 cycles
27
d’accès: 3 ns, 0. 565 nJ
20 ns, 5. 83 nJ 20 à 50 cyclestemps d’accès 105 ns, 100 mW
Cellule SRAM : 4 à 6Trs
Cellule DRAM : 2 Trs
E = Ecores + Ebus + E mémoires
Consommation de la hiérarchie mémoire
Ememorysystem = Ecaches + + Emain memory
� Ecaches = Σn Ecache i n : nombre de caches hors core (données + instructions)
Ecache i = Σm Ehit + Σp Emiss + Σl Enoaccess + E cache_repos
28
Ecache i = Σm Ehit + Σp Emiss + Σl Enoaccess + E cache_repos
� Emain memory = Σk Eaccess + Σj Enoaccess + Emodes_repos …
P+m+l = k+ i : durée d’exécution de l’application
=> Estimation du nombre d’accès en mémoire, du nombre de cache miss …
Défauts de cache et principeTrois catégories :
- Obligatoires : Chaque premier accès à une ligne de cache (ou donnée) n’ai pas dans le cache.- De capacité : le cache ne peut pas contenir tous les blocs nécessaires. Au cours d’exécution d’un programme, des lignes de cache seront écrasées puis rappelées plus tard.- De conflit : Une ligne de cache est écartée (puis rappelée)
29
- De conflit : Une ligne de cache est écartée (puis rappelée) car elle est placée à des adresses similaires à d’autres, lignes de cache utilisées par un programme.
Char A[64][64], B[64][64], C[64][64]; /* char = 1 octet */for (j=0; j<64; j++)
{for (i=0; i<64; i++) {A[j][i] = B[j][i] * C[j][i]; }}
Indiquer le nombre de défaut de cache ainsi que le type de défaut pour une mémoire cache : 4Ko, taille de la ligne de cache =8 Octets.
Défauts de cache et pénalités sur T, P et E
Core de processeur : P= 500 mw à 1 Ghz,
Mémoire cache :
� Direct mapped, 4Kbytes,
� taille de la ligne de cache = 8 Octets,
Mémoire externe :
30
Mémoire externe :
� Paccès = 300 mW, Prepos =2,6 mW.
En cas de cache miss, l’accès à la mémoire externe nécessite 45 ns.
Pour le programme donné page précédente et le système complet core +mémoire décrits ci-dessus, donner l’expression de la consommationénergétique en introduisant le nombre de cache miss et de cache hitcomme paramètres. En déduire la consommation d’énergie.
Algorithme d’écriture
� write-through :
la donnée est écrite à la fois dans le cache et dans la mémoire principale. La mémoire principale et le cache ont à tout moment une valeur identique.
� write-back :
la donnée est écrite dans la mémoire principale lorsque la ligne la donnée est écrite dans la mémoire principale lorsque la ligne disparaît du cache. Un bit nommé dirty bit est activé quand une donnée de la ligne a été modifiée.
� write buffer :
� données à écrire stockées temporairement, � écriture différée pour ne pas bloquer le processeur
� Exercice : reprendre l’exemple précédent
31
Réduire la consommation
Choix architecturaux :
� Parallélisme intra/inter core : structuration en Power Domain, Clock Domain
� Pipeline� Configuration des caches 0,3
0,4
0,5
0,6
Ene
rgie
(nJ
)
� Configuration des caches
32
Ecache = F(taille de la ligne de cache, associativité, taille du cache, taille du mot, technologie).
0,64
0,65
0,66
0,67
0,68
0,69
16 32 64
Taille d'un mot du cache (Byte)
Ene
rgie
(nJ
)
0
0,2
0,4
0,6
0,8
1
1 2 4
Degré d'associativité
Ene
rgie
(nJ
)
0
0,1
0,2
2 4 8 16
Taille du cache (Kbyte)
Ene
rgie
(nJ
)
Consommation des DRAM : SDRAM
La commande ACTIVATE ouvre une ligne pour une opération de lecture ou d’écriture. La commande PRECHARGE ferme la ligne.Typiquement le refresh intervient toute les XX ms.
33
les XX ms. ESDRAM =ESTBY + EREFRESH + EREAD + EWRITE
Consommation des DRAM : Mémoire multi_bancs
ProcessorCache
16 16 16 16
ProcessorCache
16 16 16 16
34
Chip 1 Chip 4Chip 3Chip 2Chip 1 Chip 4Chip 3Chip 2
16 16 16 16
Low power modePower down(3mW)
Active(300mW)
Standby(180mW)
Nap(30mW)
+6000ns +6ns
+60ns
Réduction de la consommation : transformation de code
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-1;i+2)
Loop Fusion
Loop Unrolling
Cette transformation réduit le nombre de défauts de cache. Si A peut être affectée à un registre => une seule lecture mémoire.
35
for(i=0;i<N;i++) B[i]=A[i] + A[i+1];
for(i=0;i<N-1;i+2) B[i]=A[i] + A[i+1]; B[i+1]=A[i+1] + A[i+2];
Loop Unrolling
Si A[i+1] peut être affectée à un registre => une seule lecture mémoire. Pb : Augmente la taille du code (cache d’instruction).
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];
Tile 1 Tile 2
Tile 3 Tile 4
Loop Tilling
A, B, C ne rentrent pas dans le cache => décomposition par bloc.
PLAN
1. Généralités sur la consommation électrique des circuits numériques
2. Estimation et Optimisation de la consommation processeurs + mémoires
36
processeurs + mémoires
3. RTOS et ordonnancement faible consommation1. Principe d’un ordonnancement2. Ordonnancement faible consommation : DVFS, DPM3. Cas des architectures multicores
4. Systèmes de récupération d’énergie et traitement de données
Système temps réel : Application => ensemble de tâches Ti
Système temps réel & débit
Téléphone mobile : lecture vidéo⇒ Audio : 96 kbps⇒ vidéo : 30 fps (QVGA)
Vidéo : Pv : 1/30 s, Cv : 20 msAudio : Pa : 1/44100 s, Ca : 7 µsAccrochage réseau :Pr : 1/21 s, Cr : 577 µs
37
Système temps réel : Application => ensemble de tâches Ti caractérisées par :
Ci : Worst Case Execution Time (WCET), Pi : Period of the task i,Ai : Actual (real) execution time of the task i,
Problème : Ordonnancer (définition des dates d’exécution) afin de satisfaire les contraintes temporelles.
Système temps réel : Application => ensemble de tâches ticaractérisées par :
Ci : Worst Case Execution Time (WCET), Pi : Period of the task i,Ai : Actual (real) execution time of the task i,Charge de travail/processeur : Ui = Ci/Pi
Exemple : Traitement vidéo : 10 ms pour décoder une frame,
Système temps réel faible consommation
38
Exemple : Traitement vidéo : 10 ms pour décoder une frame, Période pour 25 fps : 40ms => charge core : 10/40 = 25%
Problème : Ordonnancer (définition des dates d’exécution) afin de satisfaire les contraintes temporelles + minimiser la consommation.
Technique Hors ligne(Statique)
Technique En ligne(dynamique)
Contrainte temporelle Hard, soft, best effort
Ordonnancement EDF hors ligne
Principe de la politique (Earliest Deadline first) [Gr02] : Priorité à la tâche dont l’échéance est la plus proche.Pour N tâches :
1 :ment ordonnanced'Test 1
≤=∑=
N
i Pi
CiU
Unité : 10 ms
39
112
7
4
1
3
1 U <=+=
Tâche WCET Période
T1 1 3
T2 1 4
P Hyperpériode
t3 4 6 8 9 1211 22
Charge liée à T1 : 1/3Charge processeur liée à T2 : 1/4
Ordonnancement en ligne
Tâche WCET Période Exécution 1
T1 1 3 0.5
T2 1 4 1
40
P Hyperpériode
t3 4 6 8 9 1211 22
⇒Augmentation des périodes d’inactivités⇒ Quelles sont les techniques pour réduite la consommation ?
Réduction de la consommation : DVFS, ABB, modes repos
� DVFS :
On adapte la vitesse de fonctionnement en fonction des contraintes temporelles => problème d’ordonnancement.
� Modes repos : idle, sleep …L’alimentation d’une partie plus ou moins importante des
41
L’alimentation d’une partie plus ou moins importante des unités qui composent le processeur est coupée.Idle : sauvegarde des données dans le cache,Sleep : pas de sauvegarde des données dans le cache.
� ABB (Adaptative Body Biasing) : Vdd et VBS (=>VTH) variables => problème qui se rapproche du DVFS.
DVFS et modes faible consommation de quelques processeurs
Scale of V,F P(V,F) LP Modes (Penalities)
StrongArm SA110 0.8V,59Mhz 1.5V,206Mhz
-400mW
Idle : 160mW (90 µs)Sleep : 50mW (160 ms)
LParm (base : ARM8)
1.1V,10Mhz3.3V,100Mhz
1.8 mW220 mW
Idle : 500µW (1 cycle)
Equivalent arm from 200 Mhz to 0.8mW/Mhz with cache Wait, Doze, State
42
Equivalent arm from 200 Mhz to 1 Ghz
0.8mW/Mhz with cache0.6 mW without cache
Wait, Doze, State retention, Deep Sleep,
Hibernate
Autre 0.8V, 300Mhz - 1.3V,1GHzPas de 25 mv
_ DeepSleep : 100mW
Pénalité pour le DVFS :
qq dizaine de µs => dizaine de ms
Mode faible consommation des processeurs
�� Couper la tension d’alimentation : Couper la tension d’alimentation : On coupe la tension d’alimentation de certaines parties du processeurOn coupe la tension d’alimentation de certaines parties du processeur
Exemple Exemple de mode repos :de mode repos :
Idle : les données dans le cache sont sauvegardées,
Sleep : les données dans le cache sont perdues.
Pénalités de réveilPénalités de réveil
43
�� Pénalités de réveilPénalités de réveil
T1 T2 T3 T1 …Pénalités
T > Tréveil + Tmise_en_reposDonnées dans le cache ?
.1 *S:DPM DVFS1
mod_1
≤++ ∑∑==
m
jejlp
N
i
CPi
Ci
Choix du couple V,F ou mode repos
Tâche1
F1,V1Processeur : nop
Echéance
E = Etask1,F1,V1 + Einactif
44
Task1
F1,V1
Processeur mode repos
Echéance
Task1
F2<F1,V2<V1Echéance
E’ = Etask1,F2,V2 + EtransitionDVSE’ < Etask1,F1,V1 < ERéduction de E et Ppic.
E’’ = Etask1,F1,V1 + Etransition + Elp mode reposE’’ > Etask1,F1,V1(>E’) < E
Ppic inchangé, PLP => rechargement de la batterie ?
DVFS, Modes repos : exemple
IDLE SLEEP
50 mW160 mW
RUN
400 mW
10µs10µs 160ms
90µs
90µs
Core de processeur: (200 Mhz, 0.8 V) -> (800 Mhz, 1.5 V)
Tâche1 Tâche2
Vitesse nominale
45
50 mW160 mW
Tâche1 Tâche2
Tâche1 Tâche2Idle Idle
F, V = ?
0 1500 2550 4050 5100 cycles
Pour ces trois ordonnancements, Calculer E et P pic ?
Recherche des différentes vitesses de
fonctionnement du ou des cores.Exploitation des modes repos lorsque F n’est plus disponible.
Favorable pour les batteries
Linux et ACPI
Application
Operating System
ACPI : Advanced Configuration and Power Interface
Indépendant du système d’exploitation
46
Driver
Component HWCPU
Configuration and Power Interface
Initiative developped by Intel, Microsoft, Toshiba …
Représentation des “power states” dans l’ACPI
G3
Legacy
G1G1
G1S4
S3
Mechanical off
Working
Power failure Device 1 Device n CPU
D2D1
D4D3
D2D1
D4D3
C2C1
C4C3
P decreases, But the wake up time increases
47
LegacyG0(S0)
G2(S5)
G1G1
S2S1
S3
Soft off
SleepingPoint d’entrée sans ACPI Wake event
Gi : global stateSi : system state - Points de fonctionnement :
couples V,F (core + bus)- Gestion basée sur des statistiques du système (PMU),- Infrastructure générique- Gestion multicoeur
- Points de fonctionnement : couples V,F (core + bus)- Gestion basée sur des statistiques du système (PMU),- Infrastructure générique- Gestion multicoeurLinus : CPUfreq
Ordonnancement EDF hors ligne & VFS
Principe de la politique EDF (Earliest Deadline first) [Gr02] :
Priorité à la tâche dont l’échéance est la plus proche.
.1
S 1 S.U *S ' ≤=>≤== ∑∑
NN CiCiOn cherche un facteur de ralentissement Ci’=Ci*S tel que :
48
.U
S 1 S.U *S 11
≤=>≤== ∑∑== ii PiPi
Tâche WCET Période
T1 1 3
T2 1 4
7.10,583
1 S 1
12
7
4
1
3
1 U ≅≤=><=+=
P
t
Hyperpériode
P Hyperpériode
t3 4 6 8 9 12
3 4 6 8 9 12
Ordonnancement en ligne &DVFS
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.
49
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
Inconvénient du DVFS : préemption ?
42.10,583
0,828 S 1)-(2*2
12
7
4
1
3
1 U 1/2 ≅≤=><=+=
Tâche WCET Période
T1 1 3
T2 1 4Hyperpériode
P Hyperpériode
t3 4 6 8 9 12
50
P
t
Hyperpériode
3 4 6 8 9 12
Augmentation du nombre de préemption
Cout d’une préemption :
� Changement de contexte : sauvegarde des registres et mise à jour du TCB (Task Control Block)
� Exemple sous linux => qq µsec
� Cache et TLB (Translation Look-aside Buffers : translation d’adresses virtuelles en adresses physiques) => pertes des références locales => augmentation du nombre de défaut de cache.
Inconvénient du DVFS : Energie mémoire ?
Tâche1
F1,V1Processeur : nop
Echéance
Task1
F2<F1,V2<V1
Echéance
Activité prolongée de la mémoireDoit être couplée avec une gestion
51
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
F CPU (Mhz) ECPU Emem Etotal
50 1.04 1.98 3.02
200 1.58 0.57 2.15
600 3.63 0.25 3.88
1000 7.88 0.18 8.06
Doit être couplée avec une gestion des bancs mémoire
Avec RDRAM + mode repos par banc
Tex = Tcore (Fcore) + Tmem
Gestion des modes repos : Hors ligne
Tâche WCET Période
T1 1 3
T2 1 4
P Hyperpériode
t3 4 6 8 9 12
52
P Hyperpériode
t3 4 6 8 9 12
Prolonger la durée Prolonger la durée des modes reposdes modes repos
Modes repos plus profondModes repos plus profond
Trepos > Tdésactivation + Tréveil
.1 1
mod_1
≤+∑∑==
m
jejlp
N
i
CPi
Ci
Gestion des modes repos : En ligne
Tâche WCET Période
T1 1 3
T2 1 4
P Hyperpériode
t3 4 6 8 9 12
53
Trepos > Tdésactivation + Tréveil
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
⇒⇒ Prédiction des temps moyens de repos afin de choisir les modes repos Prédiction des temps moyens de repos afin de choisir les modes repos adaptésadaptés
Réduction de la puissance statique : VTCMOS [In01]
Variable Treshold CMOS Transistor (VTCMOS) : VTH variableIleak =K1.exp(K2.Vdd) .exp(K3.VBS)
Tinv = K/(VTH0 – K4.Vdd – K5.VBS)α
=> ABB (Adaptative Body Biasing)
Ileakage ~ K. e(-VTH
/T)
54
Exemple : processeur crusoe 70 nm [Je04]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
Problème : Ordonnancer afin de satisfaire les contraintes temporelles et de
Ordonnancement faible consommation & multicores
Application + contraintes Caractéristiques de l’architecture
55
Problème : Ordonnancer afin de satisfaire les contraintes temporelles et de minimiser la consommation en sélectionnant :� le nombre de processeur en mode actif,� la vitesse de fonctionnement des processeurs� le mode repos des processeurs non actifs.
Vitesse globale Vitesse Locale Modes repos
Systèmes multicores
� Systèmes homogènes :� Couple V,F identique pour chaque processeur� Architecture big-Little => groupe de cores� Couple V, F local à chaque processeur
Modes repos : local à chaque processeur . nPi
CiN
≤∑� Modes repos : local à chaque processeur
� Systèmes hétérogènes :� DPM,� Unités avec ou sans DVFS.
+ environnement de travail (charge de la batterie, état d’un réseau …)
56
. 1
nPii
≤∑=
� Approche statique :� Ajustement des vitesses, � Réduction du pic de puissance, � Ordonnancement statique,� Allocation, ordonnancement statique
Multiprocesseurs et faible consommation
.1 1
≤∑=
P
j Pj
Cj
57
� Allocation, ordonnancement statique
�� Approche dynamique :Approche dynamique :
� Ordonnancement dynamique� Allocation, ordonnancement dynamique locale� Allocation, ordonnancement dynamique (migration de tâches)
. 1
nPi
CiN
i
≤∑=
Ordonnancement Global ou allocation + ordonnancement local
Exemple de multicore & Consommation
P en mW
0,95V300 MHz
1,08V600Mhz
1,2v900 Mhz
1,35V1200 Mhz
No activity
93 156 241 361
1 core 160 270 415 633
2 cores 225 380 587 885
Décodeur H264 - treize images par seconde :4 processeurs actifs,F=300Mhz (0.95V) P=335 mW, 2 processeurs actifs, F=1200Mhz (1.35V) P=880 mW.
58
2 cores 225 380 587 885
3 cores 276 462 701 1034
4 cores 335 561 841 1256
P = (K1. Vdd + K2 .V2DD. Fclk) + Ncpu. (K3. Vdd + K4. V2
dd .Fclk)
Nombre de processeurs en mode actif
Erreur < 10%
F=1200Mhz (1.35V) P=880 mW.
=> Stratégies faible consommation
�� Approche statique :Approche statique :
� Ordonnancement à fmax puis on raffine : � Ajustement des vitesses, � Réduction du pic de puissance,
� Ordonnancement statique faible consommation,
Ordonnancement Multicores faible consommation
59
� Ordonnancement statique faible consommation,� Allocation + ordonnancement statique
� Approche dynamique :� Ordonnancement dynamique� Allocation, ordonnancement dynamique locale
� Allocation, ordonnancement dynamique (migration de tâches)
Hypothèse :- ensemble de tâches Ti indépendantes définies par ci, pi
Allocation et ordonnancement dynamique & DVFS
T1 T2 T3 T4 T5 T6File : (globale)
(WCET décroissant)
Approche dynamiqueApproche dynamique
Exemple : T1(5), T2(4), T3(3), T4(2), T5(2), T6(2).
60
(globale)
La file des tâches exécutables est donnée par l’algorithme du list scheduling ou autre … 1 - Allocation des tâches aux processeurs => Ordonnancement local2 – Ordonnancement global
T1 T3
T6
Core 1
T2 T4
T5
Core 2Deadline
Core 1 : T1, T2
Core 2 : T3, T4, T5, T6
Ajustement des vitesses processeur [Luo]
T1
E1
T2
T3
T4
E2
T1
E1 E2
T5
T3 T4 T2
PE1
PE2
Bus
D(T2) D(T5)
Ordonnancement vitesse nominale
6 3
6
3
4
3
Approche statiqueApproche statique
61
Deadline(T2)=19
T5Deadline(T5)=22
Ti : tâche iEi : Communication entre unités
Pour chaque chemin critique, calcul du Facteur de Ralentissement :
FRchemin critique = ((Tfin - Tdébut – Σi WCETi)/ Σi sur processeur WCETi ) + 1
3
T1
E1 E2
T5
T3 T4 T2
PE1
PE2
Bus
D(T2) D(T5)
T1 T2 T3 T4 T5
FR 8/6 8/6 5.5/3 5.5/3 7/3
Réduction du pic de puissance Ppicmin
T1
T2
T6
T7
T8
T3
T4 T5
e1 e2e3 e4
e5
Approche statiqueApproche statique
P en mW
0,95V300 MHz
1,08V600Mhz
1,2v900 Mhz
1,35V1200 Mhz
No activity
93 156 241 361
1 core 160 270 415 633
2 cores 225 380 587 885
62
2 cores 225 380 587 885
3 cores 276 462 701 1034
4 cores 335 561 841 1256
Evaluation de U global pour les différentes fréquences Calcul du nombre de coresOrdonnancement
Allocation, ordonnancement + VFS [Chen]
� Hypothèses : � Vitesse variable par processeur, Tâches indépendantes� Pas de migration, tous les jobs d’une tâche sont sur le même processeur
avec la même vitesse
� Deux phases (M processeurs) : � Phase de relaxation (programmation convexe) :
Minimize Σ Ei(ti), Subject to Σ ti/pi = M, avec 0 < ti ≤ pi (ti=ci*s)
Approche statiqueApproche statique
63
Minimize Σ Ei(ti), Subject to Σ ti/pi = M, avec 0 < ti ≤ pi (ti=ci*s)⇒ À l’issu de cette phase, on déduit le temps d’exécution ti (s=ci/ti) de
chaque tâche Ti qui minimise l’énergie
� Phase de rounding :
� algorithme LEUF (Largest-Estimated Utilization First) : les tâches sont affectées au core ayant le plus faible taux d’utilisation (Uj), on commence par les tâches ayant le plus grand taux d’utilisation (UTi = ti/pi).
� ordonnancement EDF par processeur à la vitesse correspondant à ti’ = ti x 1/Um
GAIN ?
Allocation, ordonnancement + VFS [Lan]
� Approche prenant en compte la consommation statique� Tâches dépendantes� Choix optimal du nombre de processeurs + voltage scaling
� Borne min (Mlwb) et max (Mupb) du nombre de processeur� Pour M =(Mlwb + Mupb)/2 processeurs, ordonnancement de type
list scheduling qui utilise les priorités de l’EDF => si l’ordonnancement est possible, exploration de Mlwb à M, sinon de
Approche statiqueApproche statique
64
list scheduling qui utilise les priorités de l’EDF => si l’ordonnancement est possible, exploration de Mlwb à M, sinon de M à Mupb.
� Recherche du nombre de processeur Mmin qui satisfait les échéances => Mmin
� Ensuite pour Mmin, Mmin+1, …, recherche du nombre de processeur et d’une fréquence de travaille qui minimise l’énergie (ordonnancement List scheduling + ralentissement global pour tous les processeurs). On arrête la recherche dès que l’énergie ne décroit plus.
� Rmq : n’utilise pas les modes repos sur les processeurs actifs (temps de réveil trop long).
� Approche statique :� Ajustement des vitesses, � Réduction du pic de puissance, � Ordonnancement statique,� Allocation, ordonnancement statique
Multiprocesseurs et basse consommation
65
� Allocation, ordonnancement statique
�� Approche dynamique :Approche dynamique :
� Ordonnancement dynamique� Allocation, ordonnancement dynamique locale� Allocation, ordonnancement dynamique (migration de
tâches)Extension des approches statique => dynamiqueDanger des changements de couple V,F fréquents
Allocation, ordonnancement, Température [Mer]
� Problème couplé de la température et de l’énergie (P est liée à T).� Système homogène, chaque Core a sa propre file des tâches
exécutables� Basé sur la présence d’un compteur d’activité HW (souvent présent
dans les processeurs actuels) => mesures de température (différence de courant)=> profile d’énergie pour les tâches
Approche dynamiqueApproche dynamique
66
=> profile d’énergie pour les tâches
� Equilibre des tâches hot et cool sur les processeurs� Si un processeur s’approche de sa température haute (pour éviter le
throttling) => migration de la tâche hot vers un processeurs cool (soit idle, soit en train d’exécuter une tâche cool, dans ce dernier cas, échange des tâches)
� Coût de la migration : P est directement proportionnel à la composition de la file des tâches exécutables
� Intégration dans Linux� Temps réel ?
Stratégie d’ordonnancement faible consommation
Limitation du DVFS + Evolution de la technologie :• Pstatique en augmentation,• Vdd plus bas.
Recherche hors ligne du couple ou par scenario:• points de fonctionnement (V,F) • nombre de processeurs qui minimise l’énergie.
67
• nombre de processeurs qui minimise l’énergie.
Stratégie d’ordonnancement faible consommation
Module MPSched (Minimun Processors for Schedulability) adjoint à l’ordonnanceur : décide si les tâches prêtes peuvent entrer dans la file d’attente d’exécution de l’ordonnanceur.
68
Principe du MPsched : - extraction des intervalles d’inactivité des processeurs, - groupement de ces intervalles sur une partie des processeurs :
=> augmenter la taille des intervalles d’inactivité, voir ne pas activer certains processeurs.
- module indépendant de la politique d’ordonnancement globale utilisée.
Exemple à 6 six taches (EDF)
Couples (V,F)
Application à 6 tâches
69
EDF
EDF-ASDPM
Conclusion : ITRS 2015
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 0.37 1.4 2.4 3.4 5.1 6.4 8.7 18.8 44.4 232
70
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.