Mise au point d'un système Windows polyvalent et plus économe en énergie

Conception de Windows 8

Vision en coulisses de l'équipe d'ingénierie Windows

Mise au point d'un système Windows polyvalent et plus économe en énergie

  • Comments 1

Dans ce billet, nous abordons un vaste sujet, celui du développement d'un système d'exploitation conçu pour consommer moins d'électricité. La gestion de l'alimentation au sein des systèmes d'exploitation fait l'objet d'un intérêt sans précédent à tous points de vue. En premier lieu, au moment où Windows 8 sera commercialisé, environ deux tiers des PC vendus seront des appareils mobiles fonctionnant sur batterie, de façon ponctuelle ou continue. Par ailleurs, à l'heure où tout le monde cherche à faire des économies d'énergie, les entreprises veulent elles aussi réduire l'empreinte carbone de leurs ordinateurs de bureau. Dans tous les cas, il faut aller bien au-delà des simples dispositifs de mise en veille, d'hibernation et de reprise, ce qui nous mène au cœur de notre sujet : comment réduire la consommation électrique globale du système d'exploitation et rendre ce système compatible avec les fonctionnalités d'économie d'énergie intégrées aux composants électroniques et périphériques modernes ? Ce billet a été rédigé par Pat Stemen, chef de projet au sein de notre équipe Noyau.
--Steven

L'autonomie des batteries et la consommation électrique font partie des grandes problématiques de l'industrie informatique. À travers ce billet, nous souhaitons présenter notre démarche vis-à-vis de la gestion de l'alimentation dans Windows 8, ainsi que la manière dont nous mesurons la consommation électrique chaque jour. De notre point de vue, la gestion de l'alimentation est une fonctionnalité fondamentale du système, indispensable sur tous les PC, quels que soient les formats et l'architecture processeur.

Nos objectifs

Lors de la conception de l'infrastructure de gestion de l'alimentation de Windows 8, nous nous sommes fixé trois objectifs :

  • Exploiter les fonctionnalités intégrées aux composants et périphériques. Nous avons conçu Windows 8 de sorte que l'efficacité énergétique de la plateforme matérielle puisse être exploitée au mieux, quel que soit le type de plateforme (tablette Windows SoC (System-on-a-chip, système monopuce) ou PC pour joueurs équipé d'une carte graphique SLI, par exemple). Nos interfaces de gestion de l'alimentation ont ainsi été conçues de façon cohérente et standardisée sur l'ensemble des plateformes. Les fabricants et développeurs d'applications partenaires peuvent ainsi se concentrer sur leurs innovations et leurs expériences utilisateur spécifiques et n'ont pas à se préoccuper des différences existant entre les plateformes matérielles et les infrastructures de gestion de l'alimentation.
  • Continuer à optimiser l'autonomie des batteries. Windows 7 a permis de réduire de façon significative la consommation électrique et d'améliorer l'efficacité énergétique, avec à la clé une meilleure autonomie sur les ordinateurs portables. Pour plus d'informations à ce sujet, consultez ce billet sur le blog e7 (en anglais). Pour Windows 8, nous avons voulu conserver le même niveau d'efficacité sur les PC existants, tout en réimaginant les autres composants de Windows.
  • Prendre en charge le modèle d'alimentation des smartphones. Au cours du CES et de la conférence //BUILD/ nous avons évoqué l'une des fabuleuses fonctionnalités offertes par les plateformes SoC : leur capacité à basculer très rapidement dans des modes d'inactivité basse consommation. Nous souhaitons profiter de cette consommation réduite en période d'inactivité, afin de transposer aux PC Windows 8 la connectivité permanente et les fonctionnalités de mise en route instantanée offertes par le modèle d'alimentation des smartphones.

La gestion de l'alimentation : un enjeu important

La plupart d'entre nous connaissent certainement l'une des conséquences directes d'une bonne gestion de l'alimentation : l'amélioration de l'autonomie des appareils mobiles. L'autonomie de la batterie des appareils mobiles est au cœur des préoccupations, à juste titre : nous utilisons ces appareils sur batterie plus souvent qu'auparavant. Pour offrir une autonomie suffisamment longue en toutes circonstances, la coordination entre les composants matériels sous-jacents, le système d'exploitation et les applications doit être parfaite. La capacité de la batterie et la qualité de cette dernière à long terme influent également sur l'autonomie.

En dehors de l'autonomie des batteries, les conséquences les plus mesurables d'une bonne gestion de l'alimentation sont la réduction des coûts énergétiques et de l'impact environnemental. En général, la gestion d'alimentation sur les PC de bureau des entreprises et les serveurs des centres de données visent à réduire les coûts liés à l'alimentation et au refroidissement de ces systèmes, et par extension à réduire les émissions de gaz à effet de serre requis pour produire l'énergie correspondante. Ces conséquences ne doivent pas être sous-estimées : en raison du nombre d'ordinateurs exploitant Windows, la moindre amélioration apportée au système peut avoir un impact très positif sur l'environnement. Dans de nombreux pays du monde, l'augmentation de la consommation électrique globale pousse les entreprises à réduire leur consommation énergétique à tous les niveaux. Les PC constituent une source importante d'économies potentielles.

La gestion de l'alimentation consiste également à trouver un juste équilibre entre performances et réactivité. Par exemple, nous pouvons limiter facilement les performances du processeur pour réduire sa consommation électrique, mais cela se fait au détriment du temps requis pour traiter une charge de travail donnée. Aussi, il est indispensable d'équilibrer au plus juste la consommation et les performances, à tous les niveaux de l'expérience utilisateur de Windows.

Les nombreux blogs techniques testant les dernières nouveautés en matière de processeurs et de plateformes matérielles n'examinent pas seulement la quantité de gigahertz et les performances : ils analysent également la consommation requise pour exécuter telle ou telle charge de travail. Ces mesures agrègent des données de consommation et de performances dans un critère d'efficacité énergétique : quelle est la puissance requise pour exécuter une charge de travail fixe ? Ce concept est similaire à la notion de « performances par watt ».

Quant à nous, nous sommes ravis de constater à quel point la gestion de l'alimentation joue un rôle crucial dans tous les aspects liés à la conception des plateformes PC. La gestion de l'alimentation influe directement sur différentes caractéristiques : épaisseur, poids, bruit (type et vitesse des ventilateurs), température de surface, coût, taille d'écran, résolution, quantité de mémoire vive, etc. Un appareil fin, léger, connecté en permanence et fonctionnant toute sur une journée sur batterie constitue un idéal. Nous sommes ravis de contribuer à concrétiser cet objectif pour l'écosystème Windows.

L'électricité en tant que ressource

La consommation électrique fait partie des ressources système critiques, au même titre que le taux d'utilisation du processeur, l'activité du disque dur ou la consommation de mémoire. Puisqu'il s'agit d'une ressource fondamentale, nous surveillons la consommation électrique de Windows, à chaque fois que nous compilons un nouveau build de Windows 8, c'est-à-dire tous les jours. Nous pouvons ainsi surveiller rapidement l'évolution de la consommation et travailler main dans la main avec l'équipe de développement pour déterminer la cause du problème, essayer d'y remédier et tester les modifications requises. En réduisant la consommation électrique, nous disposons ainsi d'une nouvelle base de comparaison pour les builds que nous compilons chaque jour.

La consommation électrique brute (nombre de milliwatts) d'un PC sous Windows dépend de plusieurs facteurs liés à la plateforme : processeur et chipset, type et quantité de mémoire vive, vitesse, type et capacité du lecteur de stockage, taille de l'écran, etc.

Pour définir une base de comparaison cohérente, nous avons défini un ensemble de plateformes de référence et nous mesurons leur consommation électrique tout au long du processus de développement de Windows 8. Nos plateformes de référence sont représentatives des types d'ordinateurs couramment utilisés par nos clients. Nous étudions notamment les plateformes proposées par chacun de nos grands partenaires fabricants de puces en silicium. Nous prenons comme base la consommation électrique de Windows 7 et Windows 7 SP1, que nous comparons aux mesures issues des builds de Windows 8 compilés au cours du processus de développement.

Le graphique montre que la consommation en période d'inactivité des différents builds (8074 à 8144) de Windows 8 est comprise entre 9 000 et 10 000 mW, avec un pic supérieur à 10 500 mW pour le build 8114.
Consommation totale du système en période d'inactivité, mesurée dans notre laboratoire sur une plateforme de référence.
Vous pouvez remarquer qu'une modification a provoqué une augmentation d'environ 1,25 W, corrigée dans un build suivant.
Les légers écarts entre les exécutions et les builds sont normaux.

Nous mesurons la consommation électrique de nombreuses charges de travail applicatives sur chacun de nos systèmes de référence. Les mesures de charge de travail que nous effectuons sont similaires aux tests de batteries réalisés par des tiers, dans le sens où elles sont conçues pour représenter au mieux nos usages informatiques quotidiens. Nos principales charges de travail incluent notamment les scénarios suivants : période d'inactivité, navigation Internet, lecture de vidéos, lecture audio et veille.

Vous pensez peut-être qu'il est inutile de perdre du temps à essayer d'optimiser la charge de travail pendant les périodes d'inactivité : après tout, peu d'utilisateurs allument leurs ordinateurs pour le simple plaisir d'afficher la page Démarrer et de ne rien faire d'autre. Néanmoins, nous envisageons la charge de travail en période d'inactivité comme la valeur de consommation plancher du système : il s'agit en effet de l'activité minimale gérée par le système lorsqu'il est actif. La réduction de la consommation électrique en période d'inactivité réduit la consommation de base de la plupart des autres charges de travail, en particulier celle des activités de lecture vidéo et audio. En outre, de nombreuses charges de travail intègrent des périodes d'inactivité relativement importantes, qu'il s'agisse des quelques millisecondes qui s'écoulent entre des frappes de touches lors de la saisie, ou des minutes séparant certaines diapositives lors d'une présentation.

En général, la mesure de la consommation électrique d'un PC portable sous Windows consiste à effectuer un test de décharge de batterie : la batterie est chargée à 100 %, puis déchargée entièrement en réitérant la charge de travail. Cette méthode fonctionne, mais elle est source d'erreurs, car la capacité de la batterie se dégrade naturellement avec le nombre de cycles de charge et décharge. Chaque test de décharge consiste en un cycle de charge/décharge supplémentaire, et le test est réalisé chaque jour. Par conséquent, nos mesures peuvent dévier au fil du temps, en raison de la dégradation de la batterie.

Le dispositif de mesure de consommation installé dans notre laboratoire de performances nous permet de disposer de plateformes de référence équipées d'une alimentation continue directe et d'en mesurer la consommation. Nous avons déjà parlé de ce laboratoire et de son rôle dans notre billet consacré à la consommation électrique induite par les navigateurs, sur le blog IE (en anglais), mais nous n'avons pas mentionné dans ce billet les différents ordinateurs portables « réels » que nous utilisons chaque jour pour mesurer la consommation électrique de Windows. Les blocs d'alimentation et leur fonction de mesure sont automatisés par le biais de logiciels de test, de sorte que nous puissions installer Windows de façon continue, mesurer la consommation pour différents scénarios, puis analyser les résultats à chaque nouveau build de Windows 8.

Armoire rack contenant de nombreux équipements surveillant la consommation des alimentations continues
Alimentations continues avec fonctionnalité intégrée de mesure

Ordinateur portable sous Windows 8, branché à un appareil mesurant la consommation électrique
Plateforme de référence équipée d'une alimentation continue avec dispositif de mesure

Influence des logiciels sur la consommation électrique

Les logiciels influent sur la consommation électrique, car ils consomment des ressources (processeur, disque, mémoire, etc.). À chaque ressource correspond un coût en termes de consommation électrique. Les logiciels influent également sur la consommation électrique, par le biais du système et des pilotes chargés de gérer les états d'alimentation du matériel.

Windows 8 offre trois innovations majeures visant à améliorer la façon dont les logiciels influent sur la consommation électrique : le modèle des applications de style Metro, le mode d'inactivité optimisé, ainsi qu'une nouvelle infrastructure de gestion de l'alimentation des périphériques en cours de fonctionnement. Dans la suite de ce billet, nous allons vous expliquer brièvement comment ces innovations permettent d'optimiser la consommation électrique.

Le modèle des applications de style Metro

La plupart d'entre nous ont déjà pu constater directement l'influence des logiciels sur la consommation électrique. Vous avez peut-être installé sur votre téléphone une application qui décharge très rapidement votre batterie, ou remarqué le bruit du ventilateur qui s'allume sur votre ordinateur portable lorsque vous jouez ou que votre tableur traite une feuille de calcul complexe. Ces applications consomment directement des ressources processeur, des ressources graphiques, du temps réseau, de l'espace disque et/ou de la mémoire.

L'une des innovations les plus notables de Windows 8 en matière de gestion de l'alimentation n'est pas directement liée à l'infrastructure de gestion de l'alimentation : il s'agit du modèle des applications de style Metro. Ce modèle a dès le départ été conçu pour consommer peu d'électricité. En termes de gestion de l'alimentation, ce modèle permet aux développeurs de faire en sorte que leur application soit exécutée uniquement quand il le faut : les applications en arrière-plan sont suspendues, de sorte qu'elles ne consomment ni ressources, ni électricité lorsqu'elles ne sont pas utilisées.

Nous sommes bien conscients que les activités d'arrière-plan font partie intégrante des applications qui doivent être réactives et connectées en permanence. Le modèle d'applications de style Metro et la plateforme WinRT sous-jacente prennent en charge les activités d'arrière-plan via un nouveau jeu de fonctionnalités appelé tâches d'arrière-plan (pour plus d'informations à ce sujet, voir Introduction to Background Tasks (Présentation des tâches d'arrière-plan, en anglais)). Les tâches d'arrière-plan facilitent l'exécution des activités d'arrière-plan de façon optimisée sur le plan de la consommation. Les développeurs peuvent également continuer à concevoir des applications réactives et innovantes, bien que les mécanismes diffèrent du modèle Win32 actuel, en raison de notre volonté de proposer une interface rapide et fluide, et des autres caractéristiques essentielles des applications de style Metro (voir 8 traits of great Metro style apps (Huit caractéristiques présentées par des applications de style Metro idéales)).

Nous avons conçu les tâches d'arrière-plan et l'ensemble du modèle des applications de style Metro de façon à repousser les limites actuelles en matière de réactivité, tout en prenant en compte les caractéristiques générales du système, dont la consommation électrique et la consommation de ressources.

 L'onglet Processus (vue détaillée) montre plusieurs applications de style Metro en mode suspendu, consommant 0 % de ressources processeur et entre 17 et 85,1 Mo de mémoire.
Gestionnaire de tâches montrant des applications de style Metro suspendues

Mode d'inactivité optimisé

Les logiciels peuvent aussi influer à la baisse sur la consommation électrique, lors des périodes d'inactivité intermittentes. Nous désignons ces améliorations par l'expression mode d'inactivité optimisé.

La plupart des plateformes PC offrent des états d'inactivité au niveau du processeur et du chipset. Ceux-ci permettent à la plateforme matérielle d'arrêter l'horloge ou de mettre entièrement hors tension certaines parties des puces en silicium lorsqu'elles ne sont pas utilisées. Ces états d'inactivité sont indispensables pour assurer une bonne autonomie de batterie, mais elles nécessitent une durée de résidence minimale : la période d'inactivité doit être suffisamment longue pour rendre le basculement depuis et vers le mode d'inactivité efficace en termes de consommation électrique. En effet, une certaine quantité d'électricité est consommée lors du basculement de l'état d'inactivité vers un autre mode (et inversement). Les logiciels utilisent ces états d'inactivité le plus efficacement lorsque les possibilités de sortie de l'état d'inactivité sont les moins nombreuses possible et lorsque la durée de l'état d'inactivité est aussi longue que possible.

L'efficacité de Windows 8 en période d'inactivité est mesurée à l'aide de la fonctionnalité intégrée de suivi ETW, de diverses améliorations apportées à l'Analyseur de performances Windows et d'un histogramme élémentaire. Le graphique ci-dessous montre les différences de durée existant entre les périodes d'inactivité de Windows 7 et celles de Windows 8. Lorsque l'écran est allumé, la différence est déjà importante : la durée d'inactivité maximale dans Windows 7 était de 15,6 ms, alors que 35 % des périodes d'inactivité de Windows 8 durent plus de 100 ms ! Lorsque l'écran est éteint et que l'ordinateur est en veille connectée, les durées d'inactivité sont encore plus longues, de l'ordre de quelques dizaines de secondes actuellement.

Graphique comparant la durée des périodes d'inactivité sous Windows 7 et Windows 8, écran allumé. Sous Windows 7, environ 95 % des périodes d'inactivité durent entre 10 et 16 ms. Sous Windows 8, elles représentent environ 35 % des périodes d'inactivité.

Gestion de l'alimentation des périphériques en cours de fonctionnement

L'autonomie des PC est plus longue lorsque l'ensemble du matériel (processeur, dispositif de stockage, périphériques externes, etc.) est en mode « basse consommation ». De nos jours, la quasi-totalité des composants des PC intègrent une technologie plus ou moins évoluée de gestion de l'alimentation. La gestion de l'alimentation des périphériques en cours de fonctionnement détermine la manière dont nous pouvons utiliser ces technologies de façon transparente, sans effet sur l'expérience utilisateur. L'atténuation automatique de l'éclairage de l'écran au bout d'un certain temps dans Windows 7 est un très bon exemple de ce principe de gestion de l'alimentation des périphériques en cours de fonctionnement.

Rappelons qu'une bonne gestion de l'alimentation des périphériques est indispensable : nous avons constaté que sur de nombreux systèmes, le fait de ne pas activer les fonctionnalités de gestion de l'alimentation d'un seul composant matériel ou périphérique peut réduire d'environ 25 % l'autonomie totale de la batterie. Remarquons également que le fait de désactiver un périphérique dans le Gestionnaire de périphériques n'a presque aucun intérêt : lors de leur initialisation par le microprogramme, la plupart des périphériques sont initialisés dans leur mode de consommation le plus élevé et ils nécessitent un pilote pour consommer moins d'électricité. Vous pouvez diagnostiquer certains problèmes de gestion de l'alimentation des périphériques à l'aide de l'utilitaire powercfg.exe intégré à Windows 7, en utilisant le paramètre /ENERGY. Le paramètre /ENERGY fournit en sortie un fichier HTML permettant d'identifier les périphériques et les logiciels susceptibles de fonctionner dans un état qui consomme beaucoup d'électricité. Bien évidemment, pour faire en sorte que les périphériques de votre PC soient correctement configurés pour la gestion de l'alimentation, la meilleure solution consiste à utiliser l'image d'usine de votre PC, qui contient les pilotes OEM et les pilotes des fabricants.

La gestion de l'alimentation des périphériques est assurée par le pilote concerné, en coordination avec le gestionnaire d'alimentation du noyau Windows et le microprogramme de la plateforme. Grâce au gestionnaire d'alimentation, les pilotes de ces périphériques peuvent mettre en œuvre plus facilement leurs routines de gestion de l'alimentation et coordonner les éventuelles transitions d'état d'alimentation, aux côtés des autres périphériques connectés à la plateforme.

Pour Windows 8, nous avons conçu une nouvelle infrastructure d'alimentation des périphériques, qui permet à ces derniers de diffuser leurs fonctionnalités de gestion de l'alimentation et de les intégrer à un pilote spécifique appelé Power Engine Plug-in ou PEP, spécialement conçu pour les systèmes SoC. Fourni par le fabricant, le PEP connaît l'ensemble des exigences propres au système SoC en termes de gestion de l'alimentation. Ainsi, les pilotes des périphériques (contrôleur hôte USB, pilote de clavier, etc.) ne sont compilés qu'une seule fois, mais ils assurent une gestion optimale de l'alimentation sur toutes les plateformes, qu'il s'agisse de PC de type SoC ou de serveurs de centre de données.

Nous travaillons main dans la main avec l'ensemble des partenaires de notre écosystème pour intégrer aux PC Windows 8 les technologies de réduction de la consommation et d'amélioration de l'autonomie dont nous rêvons tous.

--Pat Stemen

  • Loading...
Leave a Comment
  • Please add 2 and 8 and type the answer here:
  • Post