Menu Fermer

ACPI (Advanced Configuration and Power Interface)

L’ACPI (Advanced Configuration and Power Interface) est une interface abstraite mais flexible pour le matériel qui permet d’intégrer des fonctions de gestion de l’énergie dans un système informatique standard.
En d’autres termes, il s’agit plus précisément d’une spécification industrielle créée pour garantir une meilleure consommation et une meilleure gestion de l’énergie dans les systèmes informatiques de bureau et mobiles.

Ce dernier vise à remplacer le très ancien ACPI (Advanced Configuration and Power Interface) comme gestion avancée de l’alimentation.

Dans ce guide, je vous explique ce qu’est ACPI et je vous donne les grandes lignes de son fonctionnement.

ACPI (Advanced Configuration and Power Interface)

Qu’est-ce que ACPI

L’ACPI (Advanced Configuration and Power Interface) est une spécification industrielle ouverte qui permet aux concepteurs de logiciels d’intégrer des fonctions de gestion de l’énergie dans l’ensemble d’un système informatique, y compris le matériel, le système d’exploitation et les logiciels d’application.

Contrairement, à l’ancien système de gestion d’énergie, APM (Advanced Power Management) qui était centré sur le BIOS, dans lesquels les microprogrammes spécifiques à la plate-forme déterminent la gestion de l’alimentation et les politiques de configuration, l’ACPI place la gestion de l’alimentation sous le contrôle du système d’exploitation.
Elle se présente sous la forme d’une interface abstraite mais flexible pour le matériel qui permet d’intégrer des fonctions de gestion de l’énergie dans un système informatique standard.
Sur un PC, elle peut se trouver dans le chipset.

L’ACPI a été créé pour effectuer les opérations suivantes :

  • Découverte du matériel
  • Surveillance de leur consommation d’énergie
  • Les configurer pour une meilleure organisation de la puissance

L’ACPI est notamment en charge de la manière dont l’énergie est utilisée durant les phases de mise en veille ou arrêté grâce à des états du système ou matériel.
Les fonctions principales de l’ACPI consiste à :

  • Déterminer l’heure à laquelle un périphérique doit s’allumer ou s’éteindre
  • Aider à passer à un niveau de consommation d’énergie plus faible si la batterie commence à se décharger
  • Conserver les programmes essentiels et bloquer les applications moins importantes
  • Réduire la vitesse de l’horloge en fonction des besoins réels des applications
  • Réduire les besoins en énergie de la carte mère et des périphériques sans activer les appareils à l’avance
  • Activer l’alimentation du modem pour recevoir les fax entrants afin de conserver le mode veille
  • L’ACPI est en mesure de contrôler votre lecteur dès qu’il est correctement connecté au PC

Enfin l’ACPI fonctionne avec les sous-systèmes et les périphériques d’une large gamme de plates-formes mobiles, de bureau et de serveur. L’ACPI est également à la base de l’initiative industrielle OnNow, qui permet aux ordinateurs de démarrer par simple pression sur le clavier.

Comment ACPI fonctionne

L’ACPI au niveau du micrologiciel possède trois composants principaux : la table ACPI, le BIOS ACPI et le registre ACPI. Contrairement aux versions précédentes telles que l’APM ou le BIOS PnP, l’ACPI n’implémente pratiquement pas ses fonctionnalités dans le code du BIOS ACPI, et le rôle principal du code du BIOS ACPI est de charger les tables ACPI dans la mémoire du système.

L’ACPI utilise ensuite la machine virtuelle minimale intégrée pour effectuer les opérations requises écrites en langage machine ACPI (comme l’initialisation des composants matériels).

En interne, l’ACPI utilise la liste d’instructions (“méthodes”) fournie par le microprogramme du système (UEFI ou BIOS), que le noyau analyse, pour informer le noyau du système d’exploitation des composants disponibles et de leurs fonctions.
La spécification ACPI définit un certain nombre de types de périphériques pour représenter et contrôler les fonctions typiques d’une plate-forme. Par exemple, l’ACPI définit un bouton d’alimentation, un bouton de mise en veille et des indicateurs système.

Les méthodes de contrôle ACPI sont des objets logiciels qui déclarent et définissent des opérations simples pour interroger et configurer des appareils ACPI. Les méthodes de contrôle sont stockées dans le BIOS ACPI et sont encodées dans un format de code d’octet appelé langage machine ACPI (AML).

Cependant, de nombreuses plates-formes matérielles sont livrées avec des microprogrammes ACPI bogués ou non conformes aux spécifications, ce qui peut entraîner un certain nombre de problèmes non spécifiés. Si la machine s’éteint de manière aléatoire ou ne démarre pas, la désactivation de l’ACPI peut aider.

Les états ACPI

Les états du système et sommeil

La spécification ACPI comprend également quatre états d’alimentation différents, également appelés modes ou états globaux, qui contrôlent l’alimentation de chaque composant du système informatique. Ces états sont les suivants :

  • l’état de fonctionnement (G0)
  • L’état de veille (G1)
  • L’état d’arrêt progressif (G2)
  • L’état d’arrêt mécanique (G3)

Il existe également différents états de sommeil à l’intérieur de ces états globaux.

Etat de veilleNom de l’étatDescription
S0En cours de fonctionnementLe PC est allumé.
Rétroéclairage vidéo désactivé / disque dur désactivé.
S1Veille (mise sous tension)Aucun contexte système n’est perdu.
L’état d’alimentation système S2 est similaire à S1, sauf que le contexte du processeur et le contenu du cache système sont perdus car le processeur perd de l’alimentation.
S2VeilleLe contexte du processeur et du cache système est perdu.
Moins de consommation que dans l’état S2 car le processeur est éteint et certaines puces de la carte mère peuvent également être éteintes
S3Suspension dans la RAMLe contexte de la mémoire système est conservé, tous les autres contextes système sont perdus.
Rétroéclairage vidéo désactivé / disque dur désactivé,
vidage du cache, mise à jour lente de la mémoire, processeur arrêté
S4Mode hibernation et veille hybrideLes périphériques de stockage sont arrêtes.
Avant d’entrer en S4, le contexte du système d’exploitation est conservé dans un fichier de mise en veille prolongée (hiberfil.sys pour Windows).
Au redémarrage, le chargeur lit ce fichier et saute à l’emplacement précédent d’interdiction du système.
Dans Windows, Le PC redémarre rapidement grâce au démarrage rapide de Windows 11/10.
S5Arrêt complet du PCDans l’état S5, ou arrêt, la machine n’a pas d’état de mémoire et n’effectue aucune tâche de calcul.
La seule différence entre les états S4 et S5 est que l’ordinateur peut redémarrer à partir du fichier de mise en veille prolongée à l’état S4, tandis que le redémarrage à partir de l’état S5 nécessite le redémarrage du système.
Par défaut Windows 11/10 ne propose pas ce mode, pour un arrêt complet, suivre ce tutoriel : Comment éteindre/arrêter complètement Windows 10
Remarque: certains appareils restent alimentés par une tension de veille (LAN, ME-AMT, USB) pour permettre le réveil
Les états de veille et de sommeil en ACPI

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

La spécification PCI PM définit 4 états de fonctionnement pour les périphériques (D0-D3) et pour les bus (B0-B3). Plus le chiffre est élevé, moins le périphérique ou le bus consomme d’énergie dans cet état.
Cependant, plus le nombre est élevé, plus le temps de latence pour que le dispositif ou le bus revienne à l’état de pleine puissance (D0 ou B0, respectivement) est long.

États des périphériques (Device states)Description
D0 L’état de fonctionnement. L’appareil est entièrement alimenté
D1/D2Les états de veille intermédiaires. Ces états permettent à l’appareil d’être armé pour un réveil à distance
D3L’état de sommeil le plus profond. Les appareils dans l’état D3 ne peuvent pas être armés pour un réveil à distance.
Deux déclinaisons sont possibles.
D3hotaccessible par logiciel, car les dispositifs peuvent être programmés pour y accéder.
D3coldL’état dans lequel se trouvent les dispositifs PCI lorsque la tension d’alimentation (Vcc) leur est retirée.
États des périphériques (Device states) dans l’ACPI

Plus de détails : https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/device-power-states

États des processeurs (CPU states ou C State)

ModeNomDescription
C0Operating StateCPU fully turned on
C1HaltStops CPU main internal clocks via software; bus interface unit and APIC are kept running at full speed.
C1EEnhanced HaltStops CPU main internal clocks via software and reduces CPU voltage; bus interface unit and APIC are kept running at full speed.
C1EStops all CPU internal clocks.
C2Stop GrantStops CPU main internal clocks via hardware; bus interface unit and APIC are kept running at full speed.
C2Stop ClockStops CPU internal and external clocks via hardware
C2EExtended Stop GrantStops CPU main internal clocks via hardware and reduces CPU voltage; bus interface unit and APIC are kept running at full speed.
C3SleepStops all CPU internal clocks
C3Deep SleepStops all CPU internal and external clocks
C3AltVIDStops all CPU internal clocks and reduces CPU voltage
C4Deeper SleepReduces CPU voltage
C4E/C5Enhanced Deeper SleepReduces CPU voltage even more and turns off the memory cache
C6Deep Power DownReduces the CPU internal voltage to any value, including 0 V
États des processeurs (CPU states ou C State) dans ACPI

Détails : https://hardwaresecrets.com/everything-you-need-to-know-about-the-cpu-c-states-power-saving-modes/

L’ACPI dans Windows

Microsoft Windows prend en charge l’ACPI depuis Windows 98.
Si Windows détermine qu’un tel BIOS présente des problèmes ACPI, le chargeur désactive ACPI et utilise à la place la gestion avancée de l’alimentation (APM)
Mais à compter de Windows Vista, le système d’exploitation prend uniquement en charge un ordinateur doté d’un BIOS compatible ACPI daté du 1er janvier 1999 ou ultérieur.

Le pilote WINDOWS ACPI (Acpi.sys), est un composant de boîte de réception du système d’exploitation Windows. Les responsabilités de Acpi.sys incluent la prise en charge de la gestion de l’alimentation et de l’énumération d’appareils Plug-and-Play (PnP).

Les périphériques ACPI sont visibles dans le gestionnaire de périphériques > périphériques systèmes.

Les périphériques ACPI dans le gestionnaire de périphériques de Windows

Plus de détails : https://learn.microsoft.com/fr-fr/windows-hardware/drivers/kernel/acpi-driver

L’ACPI dans Linux

La série de noyaux Linux 2.4 était la moins compatible avec l’ACPI, qui a été implémentée depuis la version 2.6.0 du noyau (activée par défaut) pour une meilleure prise en charge. Les anciennes implémentations du BIOS ACPI comportent souvent de nombreuses erreurs, de sorte que les futurs systèmes d’exploitation ne les prennent pas en charge.

C’est le daemon acpid est un programme simple qui exécute des scripts en réponse aux événements ACPI du noyau.
Il est aussi en charge de notifier les programmes de l’espace utilisateur des événements ACPI. Ce service doit être lancé au démarrage du système et s’exécute par défaut en tant que processus d’arrière-plan.

Liens