Advanced Configuration and Power Interface

Advanced Configuration and Power Interface

LAdvanced Configuration and Power Interface (ACPI) (« interface avancée de configuration et de gestion de lénergie » en anglais) est une norme co-développée par Hewlett Packard, Intel, Microsoft, Phoenix Technologies et Toshiba, très largement répandue dans les ordinateurs personnels.

Le but de cette norme est de réduire la consommation dénergie dun ordinateur en mettant hors tension certains éléments (tels que les lecteurs CD-ROM, les disques durs, lécran…).

Pour cela, une interface a été spécifiée qui permet au système dexploitation denvoyer des signaux à ces différents périphériques matériels (il faut que ces périphériques prennent en charge également lACPI). Cette interface permet aussi au matériel denvoyer des signaux au système dexploitation, par exemple lorsque lutilisateur appuie sur le bouton de mise en route sur le clavier ou que le modem reçoit un appel.

Cette norme est utilisée aussi bien sur les ordinateurs portables que sur les ordinateurs de bureau récents. La toute dernière spécification qui date du 16 juin 2009 porte la version 4.0[1].

Sommaire

Présentation

Le point le plus important de cette spécification est que cest le système dexploitation qui est responsable de la gestion de lalimentation des composants de lordinateur, cest une évolution importante par rapport aux normes précédentes comme APM le BIOS était responsable de la gestion dalimentation.

Un autre élément important est que la gestion optimisée de lalimentation (depuis toujours vitale pour lautonomie des ordinateurs portables) est maintenant une norme qui est mise en œuvre dans dautres matériels informatiques (jusquaux serveurs) et permet doptimiser leur consommation électrique en fonction de la charge.

ACPI ne fonctionne quavec les matériels prévus pour et requiert de la part des constructeurs la gestion dun langage informatique spécifique (AML, pour ACPI Machine Language) pour la gestion des événements.

La première version de Microsoft Windows à avoir géré ACPI était Windows 98. La première version de FreeBSD à avoir géré ACPI était la version 5.0. Linux, NetBSD et OpenBSD DragonFly BSD ont aujourdhui tous une gestion au moins partielle dACPI.

Concepts

La norme définit les états du système tout entier (G0G3 et S0S5) et aussi des périphériques (D0D3) et des processeurs (C0C3). La règle étant que létat x0 (G0/S0, D0 ou C0) correspond à un équipement en service et consommateur dénergie et les états suivants à des équipements nécessitant de plus en plus dopérations pour être remis en état x0.

La norme définit également la gestion des niveaux de performance (P0…), de la configuration des périphériques et de la découverte PnP, des événements du système, de lénergie des batteries, des zones thermiques

Global states / Sleep states (états du système et sommeil)

Ces états sont classés par la norme en partant de celui lordinateur est totalement en service et allant vers des situations lordinateur est autorisé à mettre de plus en plus longtemps à (re)devenir utilisable.

  • G0/S0 en service : lordinateur est entièrement en service.
  • G1 sommeil : aucun processeur nexécute dinstruction, pourtant lutilisateur na pas demandé un arrêt complet de lordinateur. Pour quitter cet état le système dexploitation na pas à réexécuter toute la séquence damorçage mais reprend son fonctionnement à partir de létat il était avant cet arrêt. Cet état est subdivisé en plusieurs sous états.
    • G1/S1 power on suspend : aucun processeur nexécute dinstruction mais aucun contexte dexécution nest perdu et lordinateur pourra quitter cet état très rapidement. Dans cet état, lalimentation est toujours en service mais les disques sont stoppés (comme dans tous les états suivants).
    • G1/S2 suspend to RAM : état de sommeil plus profond, les processeurs devront être réinitialisés au réveil, le système dexploitation devra ensuite restaurer les différents contextes dexécution. Cet état est documenté dans la spécification ACPI mais rarement implémenté.
    • G1/S3 standby : dans cet état lordinateur éteint lalimentation principale, mais létat de la mémoire centrale est maintenu en employant une alimentation permanente (appelé 5VSB) ainsi il restaurera son état plus rapidement quen G1/S4.
    • G1/S4 hibernate : létat du système (en particulier le contenu de la mémoire et les contextes dexécution des processeurs) a été sauvegardé (le plus souvent dans un fichier dhibernation sur un disque dur). Lensemble des composants de lordinateur est sans alimentation. À sa remise en service le système dexploitation devra recharger ce fichier dhibernation et restaurera alors létat de lordinateur.
  • G2/S5 arrêt piloté (soft off: la consommation électrique est la plus réduite possible et aucun état courant de lordinateur na été sauvegardé (lutilisateur a demandé au système de sarrêter complètement) cependant lalimentation bien que stoppée est toujours connectée à une source électrique et fournit lalimentation permanente 5VSB (dailleurs le clavier reste souvent alimenté car la pression dune touche permet de démarrer à nouveau). Lors de la remise en service le système dexploitation devra exécuter toute la séquence damorçage avant dêtre disponible.
  • G3 arrêt mécanique : dans cet état un interrupteur mécanique a été manœuvré et seule une manœuvre humaine peut permettre de démarrer lordinateur. On pourrait croire que dans cet état plus aucun composant nest alimenté, mais cest inexact : dans un PC par exemple une pile (le plus souvent au lithium) alimente encore un petit circuit CMOS et permet de maintenir quelques informations de configuration ainsi quune horloge.

Device states (états des périphériques)

Ces états sont classés du plus consommateur dénergie (périphérique en cours dutilisation ou D0) jusquau moins consommateur (périphérique éteint ou D3).

Un périphérique en état D3 aura besoin dun cycle dinitialisation complète avant de redevenir utilisable (il peut par exemple nécessiter le chargement dun micrologiciel effectué par son pilote avant dêtre utilisé).

CPU states (états des processeurs)

La norme définit également quatre niveaux dénergie pour les processeurs gradués selon la consommation énergétique. En état C0, le processeur est en service et exécute des instructions puis dans les états suivants il nexécute plus dinstruction et voit sa consommation électrique réduite au prix dun retour à létat C0 de plus en plus long.

Létat C1 peut être obtenu sur un processeur de la famille x86 en lui faisant exécuter linstruction HALT. À partir de létat C2, lhorloge na même plus besoin de lui être fournie. Dans létat C3, le processeur peut être éteint électriquement et devra être réinitialisé avant dexécuter de nouveau des instructions.

Tables ACPI

Ces tables sont utilisées par le système dexploitation pour obtenir les informations sur le matériel quil contrôle.

  • RSDP (Root System Description Pointer)
  • RSDT (Root System Description Table)
  • DSDT (Differentiated System Description Table)
  • XSDT (Extended System Description Table)
  • FADT (Fixed ACPI Description Table)
  • FACS (Firmware ACPI Control Structure)
  • SBST (Smart Battery Table)
  • ECDT (Embedded Controller Boot Resources Table)
  • MADT (Multiple APIC Description Table)
  • SRAT (System Resource Affinity Table)
  • SLIT (System Locality Distance Information Table)
  • SLIC (Software Licensing Description Table)
  • SSDT (Secondary System Descriptor Tables)
  • THRM (CPU Thermal)

Notes et références

  1. Développeur : Publication des spécifications de ACPI v4.0, sur linuxfr.org, publié le 23 juin 2009, modifié le 24 juin 2009.

Annexes

Articles connexes

Liens externes