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.