1. Introduction

Transcription

1. Introduction
Adaptation dynamique de la puissance des systèmes embarqués :
Les systèmes asynchrones surclassent les systèmes synchrones
Mohammed Es Salhiene, Laurent Fesquet et Marc Renaudin
Laboratoire TIMA - groupe CIS, 46 Avenue Félix Viallet - 38031 - Grenoble - France
{Mohammed.Essalhiene, Laurent.Fesquet, Marc.Renaudin}@imag.fr, http://tima.imag.fr/cis
Résumé
Réduire la consommation d’énergie des systèmes embarqués
est devenue la principale priorité des concepteurs de ces
systèmes. Cet article présente une nouvelle méthode de
réduction de la consommation dans les systèmes embarqués
asynchrones. Elle combine des processeurs asynchrones et
des algorithmes d'adaptation dynamique de la tension
d'alimentation. Nous proposons deux algorithmes
d'adaptation dynamique de la tension et montrons que la
combinaison
processeur
asynchrone-algorithmes
d'adaptation
dynamique
de
la
tension
réduit
considérablement l'énergie consommée (jusqu'à plus de 70%
d'économie). De plus, nous mettons en évidence
l’inefficacité de l'adaptation dynamique de la tension dans le
cas des systèmes synchrones.
Au niveau logiciel, les études récentes proposent
d'adapter dynamiquement la vitesse du processeur, par
le système d'exploitation, pour réduire le coût en
énergie de l'exécution des applications. Toutes ces
études ciblent des processeurs synchrones. Dans cet
article nous nous intéressons aux processeurs
asynchrones et présentons une nouvelle méthode de
réduction de la consommation combinant des
processeurs asynchrones et des algorithmes
d'adaptation dynamique de la tension d'alimentation de
ces processeurs. Nous montrerons aussi que les
processeurs asynchrones s’adaptent mieux à
l’adaptation dynamique de puissance que les
processeurs synchrones.
1.
Cet article est organisé comme suit. Le paragraphe 2
expose deux techniques de réduction de gestion de
l'énergie au niveau système d'exploitation : la mise en
veille des périphériques et l'adaptation dynamique de
la tension d'alimentation. Le paragraphe 3 présente
l'architecture du processeur asynchrone cible et décrit
les algorithmes d'adaptation dynamique de la tension
d'alimentation ainsi que les résultats de simulation des
stratégies de gestion de puissance adoptées. Le
paragraphe 4 compare la gestion de l’énergie des
processeurs asynchrones et des processeurs
synchrones. Le paragraphe 5 conclut l’article.
Introduction
Avec l'essor de l'informatique mobile et le
développement des systèmes portables, tels que les
PDAs et les téléphones cellulaires de troisième
génération capables de transmettre images et sons en
temps réel tout en étant connecté en permanence [1],
réduire la consommation d'énergie est devenu une
préoccupation fondamentale des concepteurs de
systèmes embarqués [2]. L'évolution actuelle de ces
systèmes tend à leur faire intégrer un nombre de
fonctionnalités et par conséquence une puissance de
traitement de plus en plus importante, au prix d’une
hausse considérable de leur consommation. Cet
accroissement de la consommation diminue la durée
de vie de leurs batteries limitées en poids et en
encombrement par le type d'applications, pose des
problèmes de fiabilité (une forte chaleur augmenterait
le risque de panne) et augmente les coûts (nécessité de
dispositifs de refroidissement plus complexes).
Réduire la consommation est donc impératif pour
assurer une autonomie raisonnable et garantir la
fiabilité de ces systèmes [3], [4].
La réduction de la consommation électrique fait l'objet
de nombreux travaux de recherche tant au niveau
matériel que logiciel. Toutefois, les efforts ont été
jusqu’à présent consentis soit sur le matériel, soit sur
le logiciel, mais très rarement sur les deux
simultanément. Au niveau matériel, les travaux de
recherche ont abouti à la réalisation d'architectures et
de composants moins consommants. Les circuits
asynchrones en sont un parfait exemple [5], [6].
2.
Gestion de l'énergie par le système
d'exploitation : état de l’art
La réduction de la consommation au niveau système
d'exploitation est basée sur une collaboration entre le
matériel, les applications et le système d'exploitation
constituant le système. Les applications possèdent des
comportements et des contraintes qui influencent
l'activité et donc la consommation globale du système.
Le système d'exploitation peut exploiter les propriétés
des applications pour gérer la consommation d'énergie
par des mises en veille ou par l'adaptation de la tension
d'alimentation de tout ou partie du système. Il peut, par
exemple, adapter la puissance de traitement du
processeur aux besoins de l'application et le mettre en
veille lorsqu'il n'a aucun traitement à effectuer [2]. En
effet, le fonctionnement d'un processeur n'est pas
toujours constant. Il comporte des périodes d'inactivité
pendant lesquelles ce dernier n'effectue aucun
traitement utile pour le système (exécution de la tâche
idle) mais continue à consommer inutilement de
l'énergie. Mettre en veille le processeur pendant ces
périodes permettrait d'éviter cette perte. Cependant, la
façon la plus fructueuse et la plus efficace
d'économiser de l'énergie est d'adapter la puissance de
traitement du processeur aux besoins de l'application
[7]. La figure 1 illustre bien ce principe.
Lorsqu’aucune technique d'adaptation de puissance
n'est appliquée, le processeur fonctionne à vitesse
maximale, SMAX, et achève les traitements avant
l’expiration du temps qui leurs est imparti. En
réduisant la vitesse, on met à profit ce temps pour
économiser de l'énergie tout en respectant les
échéances.
Vitesse
échéances des tâches. Le but est de terminer
l'exécution de chacune des tâches avant ou à l'arrivée
de son échéance. Cependant, comme le processeur
fonctionne souvent à vitesse réduite, toutes ces études
assument que des échéances soient manquées. Du
compromis énergie économisée-tâches inachevées
dépendent les performances des algorithmes proposés.
L’autre problème posé par ces algorithmes provient
des hypothèses sur les temps de transition d'une vitesse
à une autre, qu'ils considèrent négligeables, et sur la
variation de la vitesse du processeur, qu'ils estiment
pouvoir fixer à n'importe quelle valeur. Ces
hypothèses ne sont pas réalistes. Les processeurs
synchrones actuels autorisant des changements de
fréquence et de tension, ciblés par tous les algorithmes
de variations de vitesse, ont un temps de transition
loin d'être négligeable et ne permettent souvent que
des changements de vitesse par pallier.
SMAX
Temps
Traitement sans
adaptation de puissance
Traitement avec
adaptation de puissance
Fig. 1 Illustration de l'adaptation de puissance.
Une technique appelée adaptation dynamique de la
tension d’alimentation (Dynamic Voltage Scaling ou
DVS en anglais) permet à un processeur de modifier
dynamiquement sa tension d'alimentation et sa
fréquence de fonctionnement [8]. Cela suppose que le
processeur soit capable d'ajuster à la demande sa
tension et sa fréquence, donc sa vitesse de
fonctionnement et sa consommation. En outre, cela
nécessite des algorithmes d'adaptation dynamique des
paramètres tension et fréquence. Ces algorithmes, qui
font partie du système d'exploitation, prévoient la
quantité de traitement à effectuer en se basant sur le
fonctionnement passé du processeur et déterminent
quelle doit être le couple (fréquence, tension).
L'algorithme PAST [9], par exemple, divise le temps
en intervalles réguliers de 10 à 50 millisecondes,
considère que l'activité du processeur pendant le
prochain intervalle sera identique à celle du précédent
puis fait varier la vitesse du processeur en
conséquence. Si le temps d'activité du processeur
pendant le précédent intervalle était plus important que
son temps d'inactivité, le système d'exploitation
augmente la vitesse. A l'inverse, si le processeur est
resté plus longtemps inactif (dans la boucle idle)
qu’actif, la vitesse est diminuée. D'autres algorithmes
basés sur des intervalles de temps sont proposés dans
[10].
Les études récentes tiennent aussi compte des
contraintes temps réel des applications [11], [12]. La
vitesse du processeur est estimée en fonction de la
quantité prédite de traitement à effectuer et des
Le processeur StrongARM-1100, conçu à l'origine
pour fonctionner à une tension fixe de 1.3V mais
supportant le "frequency Scaling", fonctionne, grâce à
l'utilisation d'un régulateur de tension, entre 59MHz 0.79V et 251MHz - 1.65V [13]. Un changement de
fréquence prend 140µs. Ce délai, nécessaire pour
stabiliser l'Horloge interne à la nouvelle fréquence
(resynchroniser la PLL), est indépendant de la valeur
de la fréquence désirée. L'augmentation de la tension
quant à elle se fait plus rapidement: 40µs pour passer
de 0.79V à 1.65V. Sa diminution prend 5.5ms à cause
des capacités du régulateur qui ont besoin de se
décharger. La mise en veille (resp. le réveil) du
processeur nécessite 90µs (resp. 160 ms). Lorsqu’il est
inactif (mode sleep), le StrongARM consomme 0.16
mW [2].
Un autre processeur à variation de vitesse décrit dans
[11],[8] et [14] est le lpARM. Ce processeur est une
version de Berkeley de l'ARM8 conçu en technologie
CMOS 0.6µm. Ses performances sont estimées à
6Mips à 5MHz - 1.2V et 85Mips à 80MHz - 3.8V.
Lorsqu'il est en mode "Idle" (en veille), le lpARM
consomme 0.8mW et prend un cycle pour se réveiller
si sa fréquence de fonctionnement avant la mise en
veille est de 5MHz. Une commutation de la fréquence
d'horloge de 5MHz à 80MHz nécessite, d'après les
auteurs, approximativement 70µs, soit environ 1250
cycles.
Enfin, les processeurs Transmeta Crusoe comme le
5600, conçu en technologie 0.18 micron, peut
fonctionner entre 300MHz - 1.2V et 600 MHZ - 1.6V
avec un pas de variation de 33MHz pour la fréquence
et de 25mV pour la tension [15]. Sa consommation est
de 0.7 W à 300MHz, 6.8 W à 600MHz et 50 mW en
mode sleep (processeur inactif). Un changement de
fréquence de 200 MHz à 700 MHZ nécessite 300 µs.
La mise en veille et le réveil de ce processeur
nécessitent respectivement 10 µs et 25 µs [16].
3.
Adaptation de la tension
processeurs asynchrones
des
Tous les travaux sur l'adaptation dynamique de la
vitesse du processeur présentés dans la littérature
ciblent des processeurs synchrones. Dans cet article
nous nous intéressons aux processeurs asynchrones.
Nous allons présenter dans ce paragraphe l'architecture
du processeur asynchrone que nous ciblons (ASPRO
[17], [18]) ainsi que deux algorithmes d'adaptation
dynamique de la tension d'alimentation. Les résultats
de simulation des stratégies de gestion de puissance
adoptées seront aussi exposés dans ce paragraphe.
Le premier algorithme d'adaptation dynamique de la
tension traite les tâches sporadiques. Le second traite
les tâches périodiques. Ces deux algorithmes
déterminent dynamiquement la vitesse du processeur
nécessaire à l'exécution des tâches (réévaluent la
vitesse à chaque activation ou fin d'une tâche).
3.1
Processeur asynchrone
Les processeurs asynchrones, comme le processeur
ASPRO que nous avons développé, sont plus adaptés à
la variation dynamique de la vitesse que les
processeurs synchrones. Ils s'affranchissent des
problèmes posés par la variation de fréquence à savoir
les problèmes de stabilisation des PLLs présentes dans
le circuit de contrôle du signal d'horloge et les surcoûts
temporels induits. De plus, comme ces processeurs
sont sans horloge, l'adaptation de leur vitesse en est
simplifiée et n'occasionne aucun surcoût temporel
et/ou énergétique. Elle se fait par simple variation de
la tension d'alimentation du processeur et ce dernier
peut continuer les traitements pendant la variation de
sa tension. En outre, cette variation se fait de manière
continue: on peut fixer la tension, et donc la vitesse, à
une valeur quelconque (du 0.65V à 2.5V dans le cas
d'ASPRO). Ceci garantit une meilleure gestion de la
consommation. De plus, ces circuits offrent des
propriétés remarquables en termes de robustesse vis-àvis des conditions de variation de la tension
d’alimentation. Ainsi les contraintes de conception du
système de contrôle de la tension sont fortement
relâchées.
3.2
Modèle des tâches considérées
Les systèmes temps-réel ont souvent à traiter des
tâches périodiques et des tâches sporadiques. Les
tâches périodiques sont généralement utilisées pour les
envois et réceptions de signaux ainsi que pour des
opérations de contrôle. Les tâches sporadiques sont
spécialisées dans le traitement des erreurs du système
et des événements asynchrones. Cependant, la plupart
des algorithmes d'adaptation dynamique de la tension
exposés dans la littérature ne considèrent que des
systèmes avec des tâches périodiques. Peu d'études ont
abordé le problème des tâches sporadiques. Aussi,
pour nos travaux, nous nous intéressons à la fois aux
tâches périodiques et aux tâches sporadiques. Chaque
tâche est modélisée par un triplet < NIi, Di, Ti > où NIi
représente le nombre d'instructions de la tâche à
exécuter, Di son échéance et Ti sa période ou
l'intervalle minimal séparant deux requêtes (cas des
tâches sporadiques).
Nous considérons aussi que:
• toutes les tâches sont indépendantes
• les tâches périodiques sont à échéances sur
requêtes (Di = Ti), et que les périodes de tâches
sont différentes,
• à la vitesse maximale du processeur (tension
d'alimentation égale à VMax), toutes les tâches
périodiques et sporadiques considérées peuvent
être traitées.
• le coût de la variation de la tension est
négligeable puisque le traitement peut continuer
pendant que cette variation s'opère.
2.3
Algorithmes d'adaptation de la tension
Ces algorithmes se basent sur l'ordonnancement
Earliest Deadline First (EDF) [19]. Les tâches sont
ordonnancées selon leurs échéances et un calcul
supplémentaire est effectué pour déterminer la tension
et donc la vitesse du processeur nécessaire pour leurs
exécutions. Cependant, ces algorithmes peuvent
fonctionner
avec
tout
autre
politique
d'ordonnancement par priorité, qu’elle soit statique ou
dynamique. En effet, seul le nombre d'instructions, les
échéances et les priorités des tâches interviennent dans
le calcul de la vitesse.
NB: La réduction de la consommation des processeurs
asynchrones se fait par diminution de la tension
d'alimentation. Cependant, il est plus facile de
raisonner en terme de vitesse. En effet la vitesse de
fonctionnement d'un processeur asynchrone est limitée
par sa tension d'alimentation. Aussi, dans la suite de
ce chapitre le terme «variation de vitesse» sera utilisé
pour désigner une «adaptation de la tension
d'alimentation». Etant donné un processeur
asynchrone, on peut définir la relation tension-vitesse
Premier algorithme: cas d'un système avec tâches
sporadiques
Dans ce sous-paragraphe, nous considérons que toutes
les tâches du système sont sporadiques.
Nous
supposons que dès qu'une tâche est activée, elle passe
à l'état Prête pour être exécutée.
Lorsqu'une nouvelle tâche τi est activée, un test
d'acceptation est effectué pour s'assurer qu'à vitesse
maximale, le processeur sera capable d'exécuter la
nouvelle tâche sans remettre en cause l'exécution des
autres tâches précédemment acceptées. Ce test est
donné par l'équation 1 :
NI j
∑ td
j ≤i
j
−t
≤
SMAX
(1)
Où NI j représente le nombre d'instructions de la tâche
τj restant à exécuter, tdj son échéance, t le temps
courant et SMAX la vitesse maximale du processeur en
MIPS correspondant à la tension VMAX.
Si la tâche est acceptée, le système d'exploitation
l'insère dans la file d'attente des tâches prêtes ordonnée
par priorité selon l'ordonnancement EDF, puis
l'algorithme d'adaptation de la tension détermine la
nouvelle vitesse du processeur nécessaire pour
exécuter toutes les tâches prêtes. A cet effet, pour
chaque tâche τl de la file d'attente, l'algorithme calcule
le plus petit facteur d'utilisation du processeur (noté Sl)
permettant de respecter l'échéance de cette tâche ainsi
que les échéances des tâches qui lui sont plus
prioritaires (cf. équation 2).
NI l +
Sl
∑ NI
(2)
j
j ≠ l / Pl ≤ Pj
=
td l − t
où N I l représente le nombre d'instructions de la
tâche τl restant à exécuter, tdj son échéance, Pl sa
priorité selon l'ordonnancement EDF et t le temps
courant .
Lors de l'exécution des tâches, l'algorithme fixe la
vitesse de fonctionnement à la plus grande valeur de Sl
des tâches restant à exécuter (cf. équation 3).
 NI l + ∑ NI j 


j ≠ l / Pl ≤ Pj
S = MAX 

l∈Q
td l − t




(3)
NIj
τ1
1 106
τ2
τ3
Vitesse
τ1
τ2
τ3
SMAX
où Q représente la file d'attente des tâches sporadiques
prêtes.
La vitesse du processeur est réévaluée lors de
l’activation ou l’achèvement d'une tâche. Comparé à
l'algorithme proposé dans [11], notre algorithme évite
une surestimation du traitement à effectuer conduisant
ainsi à une économie d'énergie plus importante. Notre
approche ne tient compte pour le calcul de la vitesse
du processeur que de la tâche courante et des tâches
prêtes.
Pour illustrer l'efficacité de l'algorithme proposé, nous
considérons trois tâches sporadiques de la table 1,
leurs nombres d'instructions, leurs échéances et leurs
dates d'activation respectives.
Tâches
La figure 2.a montre l'exécution des trois tâches
sporadiques. La valeur SMAX de la vitesse du
processeur et la valeur PMAX de la puissance
consommée sont celles correspondant à la tension
d'alimentation maximale.
Ainsi quand aucune
technique de réduction de la consommation d'énergie
n'est appliquée, le processeur fonctionne à SMAX et
consomme PMAX. Toutes les valeurs de vitesse et de
puissance indiquées sont basées sur des mesures
réelles effectuées sur une carte mère du processeur
asynchrone ASPRO alimentée
par différentes
tensions.
En utilisant la technique de mise en veille, le
processeur peut être arrêté à la fin de l'exécution de la
tâche τ2, réveillé au moment de l'activation de la tâche
τ3 et arrêté quand celle-ci aura terminé son exécution.
La puissance consommée sera alors 42% PMAX. En
outre, comme le processeur asynchrone peut être arrêté
et réveillé instantanément, toutes les échéances des
tâches seront respectées. Dans les systèmes
synchrones, cette technique est inefficace. En effet,
les tâches sporadiques ont des instants d'activation non
réguliers; il est difficile de prévoir les durées des
périodes d'inactivité du processeur pour anticiper son
réveil. L'arrêt et le réveil des processeurs synchrones
occasionnent des surcoûts énergétique et temporel qui
rendent inapplicable la méthode à ce niveau de
granularité. En outre, ils peuvent conduirent au non
respect des échéances de certaines tâches.
Dj
Date
d'activation
2
0
0.5 10
6
4
1
0.2 10
6
3
2
Table 1 paramètres de tâches sporadiques
0
1
2
4 Temps
3
2.a. Exemple d'exécution de 3 tâches sporadiques sans adaptation de
la vitesse.
Vitesse
SMAX
τ1
τ3
50%
35%
0
1
2
τ2
3
4 Temps
2.b. Exécution des 3 tâches sporadiques avec adaptation de la vitesse.
Fig. 2 Illustration de l’adaptation de la vitesse
d'exécution pour des tâches sporadiques
L'adaptation dynamique de la vitesse du processeur est
plus efficace que la mise en veille pour réduire
l'énergie consommée. Lorsqu'elle est appliquée, le
processeur fonctionne à vitesse variable comme le
montre la figure 2.b. Dans cette figure, le processeur
fonctionne à 50% SMAX jusqu'à la fin de la tâche τ1.
Puis elle est réévaluée et fixée à 35% SMAX pour
l'exécution des tâches τ2 et τ3. La puissance
consommée est alors de 14% PMAX. Soit une réduction
d’un facteur 3 par rapport à la mise en veille et d’un
facteur 7 sans la mise en veille. Quand il n'y a plus de
tâche à exécuter, le processeur est mis en sommeil.
Dans cet état il ne consomme aucune énergie.
Deuxième algorithme: cas d'un système avec tâches
périodiques
Dans ce sous-paragraphe, nous considérons un
système où toutes les tâches sont périodiques (i.e.
aucune des tâches n'est sporadique). Nous supposons
qu'au début (instant t = 0), il y a n tâches périodiques
prêtes dans la file d'attente des tâches
prêtes
ordonnées par priorité selon l'ordonnancement EDF.
La vitesse du processeur est fixée à :
S =
n
∑ NID
(4)
j
τ1
τ3
τ2
Vitesse
j
j =1
Quand le processeur fonctionne à vitesse maximale,
SMAX, il existe des périodes d'attente entre la fin de
certaines tâches, avant leurs échéances, et le début de
l'exécution des tâches suivantes (cf. figure 3.a).
L'énergie consommée pendant cette attente active
constitue une perte pure pour le système puisqu'elle ne
participe à la production d'aucun résultat. Par
conséquent, la vitesse du processeur peut être réduite
en diminuant la tension d'alimentation de sorte que les
délais impartis à l'exécution des tâches soient
pleinement utilisés.
Dans la figure 3.b, la vitesse du processeur est
diminuée afin de réduire la puissance dissipée. Au
début, elle est fixée à 33% SMAX selon l'équation 4. À t
= 4, la tâche 3 devient prête et la vitesse de processeur
est réévaluée, selon l'équation 5, à 49% SMAX. La
puissance moyenne consommée est alors 14% PMAX.
SMAX
Lorsqu'une nouvelle tâche périodique τi est créée, elle
est insérée dans la file d'attente des tâches prêtes, puis
l'algorithme d'adaptation de la tension réévalue la
vitesse de processeur afin que toutes les tâches dans la
file d'attente soient exécutées avant leurs échéances.
La nouvelle vitesse est donnée par l'équation 5 :
S = NIi +
Di
(5)
n
∑
NI j
j −t
td
j =1
0
2
4
S =
(6)
∑ tdNI−t
j
τ1
τ3
Pour illustrer la mise en œuvre de cet algorithme,
considérons les trois tâches de la table 2 avec une date
d'activation, un nombre d'instruction et une échéance
assignée à chacune d'elle. La valeur SMAX de la vitesse
du processeur et la valeur PMAX de la puissance
consommée sont celles correspondant à la tension
d'alimentation maximale.
NIj
τ1
0.25 106
τ2
τ3
1 10
6
0.5 10
6
0
2
4
τ
6
8 Temps
3.b Exécution des 3 tâches périodiques avec adaptation de la vitesse.
Fig. 3 Illustration de l’adaptation de la vitesse
d'exécution pour des tâches sporadiques
j
j =1
Tâches
Temps
Vitesse
49%
33%
n = n −1
8
3.a Exemple d'exécution de 3 tâches périodiques sans adaptation de
la vitesse.
SMAX
où NI j représente le nombre d'instructions de la
tâche τj restant à exécuter, tdj son échéance, NIi le
nombre d'instructions de la tâche τi, Di son délai
critique et t le temps courant.
De même, si une tâche périodique est supprimée, la
vitesse de processeur est mise à jour selon l'équation 6:
6
Dj
Tj
Date
d'activation
2
2
0
5
5
0
3
3
4
Table 2: paramètres de tâches périodiques
4.
Illustration
et
synchrone - asynchrone
comparaison
La mise en œuvre de l'adaptation dynamique de vitesse
ainsi que la mise en veille et le réveil des processeurs
synchrones ont des surcoûts temporels pendant
lesquels le système continue à consommer et peuvent
conduire au non respect des échéances de certaines
tâches (cas des systèmes temps réel). Ces surcoûts sont
négligeables dans le cas des processeurs asynchrones.
Ce paragraphe propose une simulation comparative
des deux classes de processeurs (ASPRO lpARM/StrongARM/Crusoe).
4.1
Mise en veille
Activité - PMAX
Vitesse
(a)
≈
SMAX
≈
τ1
τ2
Veille - 0 mW
Veille - 0 mW
≈
≈
Temps (µs)
Vitesse
(b)
PMAX
PMAX
≈
SMAX
≈
τ1
τ2
0 mW
0 mW
≈
≈
Temps (µs)
Vitesse
PMAX
≈
(c)
PMAX
≈
SMAX
≈
τ1
τ2
0.16 mW
90µs
Vitesse
PMAX
PMAX
≈
(d)
90µs T (µs)
160ms
≈
SMAX
≈
≈
≈
τ1
τ2
0.8 mW
≈
≈
70µs
Vitesse
(e)
PMAX
70µs
T (µs)
PMAX
≈
SMAX
70µs
≈
τ1
τ2
50 mW
50 mW
25µs
≈
≈
Dans ce paragraphe nous considérons le cas d'une
période d'inactivité des quatre processeurs. Nous
considérons aussi que les quatre processeurs
fonctionnent à leurs vitesses maximales. La figure 4
montre le résultat de la simulation de la mise en veille
et du réveil des processeurs.
La figure 4-a représente les zones de mise en veille et
de réveil d’un processeur. Les délais de mise en veille
et de réveil ainsi que la consommation électrique
durant la période d’inactivité sont nuls. Ce cas
correspond à celui du processeur asynchrone ASPRO
(cf. figure 4-b). Sa mise en veille et son réveil sont
instantanés et n’induisent aucun surcoût temporel. En
effet, la mise en veille se fait par l’exécution d’une
seule instruction (sleep) et le réveil se fait par une
simple interruption (réveil événementiel) entraînant la
reprise des traitements. Aucun algorithme de
prédiction de la durée de la période d’inactivité n’est
nécessaire, contrairement aux cas des processeurs
synchrones. De plus, durant les périodes d’inactivité,
le processeur asynchrone ne consomme pas. Cela
constitue l’une des principales caractéristiques des
circuits asynchrones : lorsqu’ils n’effectuent aucun
traitement, leur consommation est nulle (on exclut ici
les courants de fuite).
Les figures 4-c, 4-d, et 4-e montrent les mise en veille,
les réveils et la consommation de trois processeurs
synchrones. Les mise en veille et les réveils ont des
surcoûts temporels, correspondant à des milliers de
cycles d’horloge, pendant lesquels les processeurs sont
actifs et donc continuent à consommer. Ces surcoûts
vont de dizaines de microsecondes pour le lpARM
(figure 4-d) et le Crusoe (figure 4-e) jusqu’à des
centaines de millisecondes pour le StrongARM (160
ms pour le réveil, cf. figure 4-c [2]).
La prédiction de la fin de la période d'inactivité peut
permettre d'anticiper le réveil du processeur pour qu'il
soit opérationnel lorsque le système reprendra son
activité [20], [21]. Cependant, la mise en œuvre d’une
politique prédictive a un coût énergétique non
négligeable (exécution de l’algorithme de prédiction).
En outre, une mauvaise estimation de la durée de
l'inactivité aura comme conséquence un réveil trop
tardif du processeur pénalisant le système (estimation
d'une durée trop lente) ou un réveil trop tôt manquant
une occasion d'économiser plus d'énergie (estimation
d'une durée trop courte). De plus, la mise en veille
resterait inapplicable dans les cas où la période
d’inactivité ne serait pas supérieure à la somme des
délais de mise en veille et de réveil du processeur.
Cela constitue un autre inconvénient des processeurs
synchrones. Dans le cas des processeurs asynchrones,
la mise en veille est toujours applicable quelque soit la
durée de la période d’inactivité (même pour des
périodes d’inactivité de très courte durée).
Enfin, la consommation énergétique des processeurs
synchrones pendant les périodes de sommeil
(inactivité) est loin d’être négligeable; 0.16 mW pour
le StrongARM [2], 0.8 mW pour le lpARM [14] et 50
mW pour le Crusoe [15], [16].
10µs
25µs
Temps (µs)
Fig. 4 Comparaison de mise en veille des processeurs
asynchrones et des processeurs synchrones : (a) cas
idéal ; (b) processeur asynchrone ASPRO ; (c)
StrongARM-SA 1100 ; (d) lpARM ; (e) Transmeta
Crusoe
4.2
Adaptation dynamique de la vitesse
Dans ce paragraphe nous considérons le cas de trois
tâches sporadiques et appliquons l'algorithme
d'adaptation de la tension, défini dans le paragraphe
3.2, aux quatre processeurs. La figure 5 montre le
résultat de la simulation de l'adaptation dynamique de
la tension. Le temps dû à l'algorithme d'adaptation de
la tension appliqué aux quatre processeurs n’est pas
reporté sur cette figure (étant donné qu’on appliqué le
même algorithme aux les quatre processeur).
La figure 5-a présente le cas idéal d’une adaptation de
la tension d’alimentation d’un processeur. La
réduction de la vitesse du processeur puis son
augmentation
se
font
instantanément.
Malheureusement, dans la pratique, le temps de
transition d’une vitesse à une autre n’est jamais nul.
s’agit d’une augmentation de la vitesse (cf. figure 5-b).
Ces quelques microsecondes peuvent être négligées ou
prises en compte dans le calcul de la vitesse.
L’équation deviendra alors dans ce dernier cas :
Vitesse
≈
τ3
≈
τ1
≈
≈
50%
≈
SMAX
τ2
(a)
≈
 NI l + ∑ NI j 


j ≠ l / Pl ≤ Pj
S = MAX 
l∈Q
td l − t − tv 




Temps (µs)
Vitesse
τ1
≈
≈
50%
τ3
≈
SMAX
τ2
(b)
≈
≈
≈
6µs
Temps (µs)
6µs
Vitesse
τ1
≈
≈
50%
≈
SMAX
≈
≈
τ3
τ2
(c)
≈
≈
≈
≈
≈
3.74ms
Temps (µs)
166µs
Vitesse
τ1
≈
≈
50%
τ3
≈
SMAX
τ2
(d)
≈
≈
≈
37µs
Temps (µs)
37µs
Vitesse
τ1
≈
≈
50%
τ3
≈
SMAX
τ2
(e)
≈
≈
≈
300µs
300µs
Temps (µs)
Fig. 5 Comparaison de l’adaptation dynamique de la
vitesse des processeurs asynchrones et des processeurs
synchrones : (a) cas idéal ; (b) processeur asynchrone
ASPRO ; (c) StrongARM-SA 1100 ; (d) lpARM ; (e)
Transmeta Crusoe
Toutefois, ce temps est négligeable dans le cas des
processeurs asynchrones comparé à celui des
processeurs synchrones. En effet la variation de la
vitesse des processeurs synchrones nécessite à la fois
une variation de la tension d’alimentation du
processeur et une variation de sa fréquence de
fonctionnement. Ce qui occasionne des surcoûts
temporels et énergétiques (stabilisation de la PLL,
propagation du nouveau signal d’horloge à tous les
composants du système). La variation de la vitesse des
processeurs asynchrones se fait simplement par
variation de la tension d’alimentation. De plus, le
traitement continue pendant la variation de la tension.
Le délai de transition d’une vitesse à une autre est
donc mis à profit pour effectuer une partie du
traitement. Ainsi le retard que peut introduire une
variation de la vitesse est nul lorsqu’il s’agit d’une
diminution de celle ci, et n’est que de quelques
microsecondes (inférieur à 12 µs selon [6]) lorsqu’il
(9)
avec tv le temps de variation de la vitesse du
processeur.
Dans le cas des processeurs synchrones, le lpARM mis
à part, (figures 5-c, 5-d et 5-e) le traitement est arrêté
pendant que le changement de la vitesse s’opère. De
plus, comme cette variation nécessite à la fois un
changement de la tension et de la fréquence, le temps
de transition d’une vitesse à une autre, pour tous ces
processeurs (le lpARM compris), est supérieur à celui
que nécessite une simple variation de la tension (cas
du processeur ASPRO). Le retard pris par certaines
tâches est donc conséquent et atteint 3.74
millisecondes pour le StrongARM [13], [2]. Ce retard
peut être pris en compte dans le calcul de la vitesse
mais cela aura pour conséquence une augmentation
très sensible de la vitesse et donc de la consommation.
En outre, pour les tâches de courte durée (tâches dont
l’échéance est de l’ordre du temps de transition),
l’adaptation de la vitesse resterait inapplicable
contrairement aux cas des processeurs asynchrones.
5.
Conclusions
La réduction de la consommation d’énergie revêt un
caractère primordial dans la conception des systèmes
embarqués. Elle fait l'objet de nombreux travaux de
recherche tant au niveau matériel que logiciel.
Toutefois, les efforts ont été jusqu’à présent consentis
soit sur le matériel, soit sur le logiciel, mais très
rarement sur les deux simultanément. Dans cet article,
nous avons présenté une nouvelle méthode de
réduction de la consommation qui allie des recherches
au niveau matériel et au niveau logiciel. Cette méthode
combine des processeurs asynchrones et des
algorithmes d’adaptation dynamique de la tension.
Des simulations basées sur des mesures réelles que
nous avons effectuées montrent, d’une part l’efficacité
des algorithmes proposés et, d’autre part la réduction
considérable de la consommation grâce à la
combinaison processeur asynchrone – adaptation
dynamique de la tension.
De plus, nous avons réalisé des simulations
comparatives des techniques de gestion de l’énergie
des processeurs synchrones et asynchrones (mise en
veille et adaptation de la vitesse). Ces simulations
montrent clairement que la gestion d’énergie des
systèmes synchrones, de par ces surcoûts temporels et
énergétiques, est moins efficace que celle des
processeurs asynchrones.
Bibliographie
[1]
Mudge, T.: “Power: A First-Class
Architectural Design Constraint”, IEEE Computer, pp.
52–58, 2001.
[2]
Benini, L., Bogliolo, A., De Micheli, G.: “A
Survey of Design Techniques for System-Level
Dynamic Power Management”, IEEE Transactions on
Very Large Scale Integration (VLSI) Systems, Vol. 8,
N° 3, pp. 299–316, June 2000.
[3]
Pedram, M.: “Design Technologies for Low
Power VLSI”, Encyclopedia of Computer Science and
Technology, Vol. 36. Marcel Dekker, Inc., pp. 73–96,
1997.
[4]
Sentieys O., “Réduction de la consommation
d’énergie en életronique embarquée”, Lannion,
Journées SEE Électronique Embarquée, Avril 1997.
[5]
Nielsen, L.S., Niessen, C., Sparso, J., Van
Berkel, J.: “Low Power Operation Using Self-Timed
Circuits and Adaptative Scaling of the Supply
Voltage”, IEEE Transaction on Very large Scale
Integration (VLSI) Systems, Vol. 2, N°4, December
1994.
[12]
Kumar, P., Srivastava, M.: “Predictive
Strategies for Low-Power RTOS Scheduling”, IEEE
pp. 343–348, 2000.
[13]
Pouwelse J., Langendoen K., Sips
H.,“Dynamic Voltage Scaling on a Low Power
Microprocessor”, Proceedings of the 7th Int.
Conference on Mobile Computing and Networking,
Mobicom'01, July 2001.
[14]
Burd, T., Pering, T., Stratakos A.,
Broderesen, R, "A Dynamic Voltage Scaled
Microprocessor System”, ISSCC 2000.
[15]
Fleischmann M.,"Crusoe LongRun Power
Management", Transmeta Corporation, January 17,
2001.
[16]
Transmeta Corporation. “Crusoe Processor
System
Design
Guide”,
http://www.transmeta.com/.
[17]
Renaudin, M., Vivet, P., Robin, F.: “ASPRO:
an Asynchronous 16-Bit RISC Microprocessor with
DSP Capabilities”, ESSCIRC 99, Duisburg, Germany,
pp. 28–31, 21-23 Sept.1999.
[6]
Renaudin, M.: “La conception de systèmes
asynchrones”, traité Electronique, Génie Electrique,
Microsystèmes, Série No.4: Méthodologie de
conception, May, Hermes, 2002.
[18]
Renaudin, M., Vivet, P., Robin, F.: “ASPRO216: a standard-cell Q.D.I. 16-bit RISC asynchronous
microprocessor”, Proc. of the Fourth International
Symposium on Advanced Research in Asynchronous
Circuits and Systems, IEEE pp. 22–23, 1998.
[7]
Flautner, K.: “Automatic Monitoring for
Interactive Performance and Power Reduction”,
Dissertation, Michigan University, 2001.
[19]
Liu C., Layland J., “Scheduling algorithms
for multiprogramming in a hard real-time
environment” CACM 20, 1973.
[8]
Pering, T., Burd, T., Broderesen, R.:
“Dynamic Voltage Scaling and the Design of a LowPower Microprocessor System”, Power-Driven
Microarchitecture Workshop, in conjunction with Intl.
Symposium on Computer Architecture, Barcelona,
Spain, June 1998.
[20]
Lu, Y.H., De Micheli, G.: “Comparing
System-Level Power Management Policies”, IEEE
Design & test of Computers, pp. 10–19, 2001.
[9]
Weiser, M., Welch, B., Demers, A., Shenker,
S.: “Scheduling for reduced CPU energy”, USENIX
Symposium on Operating Systems Design and
Implementation, pp. 13–25, 1994.
[10]
Govil, K., Chan, E., Wassermann, H.:
“Comparing algorithms for dynamic speed-setting of a
low-power CPU”, ACM International Conference on
Mobile Computing and Networking, pp. 13–25, 1995.
[11]
Pering, T., Burd, T., Brodersen, R.: “Voltage
Scheduling in the lpARM Microprocessor System”,
ISLPED‘00, Rapallo, Italy pp. 96–101, 2000.
[21]
Srivasta,
M.B.,
Chandrakasan,
A.P.,
Brodersen, R.W.: “Predictive System Shutdown and
Other Architectural Techniques for Energy Effcicient
Programmable Computation”, IEEE Transactions on
very Large Scale Integration (VLSI) Systems, Vol. 4,
N°1, pp. 42–55, March 1996.
[22]
Dhar S., Maksimovic D., "Switching
Regulator with Dynamically Adjustable Supply
Voltage for Low Power VLSI", Proc. IEEE Industrial
Electronics Society Annual Conference (IECON 01),
Nov. 2001.

Documents pareils