Dans l'architecture matérielle x86, HLT (abréviation de halt qui signifie arrête) est une instruction en langage assembleur qui arrête l'unité centrale de traitement (CPU) jusqu'à la prochaine interruption externe[1]. Les interruptions sont des signaux envoyés par des dispositifs matériels à l'unité centrale de traitement pour l'avertir qu'un événement est survenu auquel elle doit réagir. Par exemple, une minuterie envoie des interruptions à l'unité centrale à intervalles réguliers.
L'instruction HLT est exécutée par le système d'exploitation lorsqu'il n'y a pas de travail immédiat à faire, et que le système entre dans son état idle. Sur les processeurs x86, le code opération de HLT est 0xF4.
Histoire
Tous les processeurs x86 à partir du 8086 avaient l'instruction HLT, mais elle n'était pas utilisée par MS-DOS avant la version 6.0[2] et n'était pas spécifiquement conçue pour réduire la consommation d'énergie jusqu'à la sortie du processeur Intel 80486DX4 en 1994.
Presque tous les jeux d'instructions des processeurs modernes incluent une instruction HLT ou un état de veille qui arrête le processeur jusqu'à ce qu'il ait besoin de reprendre le travail. Dans les processeurs gérés par interruptions, l'instruction HLT arrête le processeur jusqu'à ce qu'une interruption externe soit reçue. Sur la plupart des architectures, l'exécution d'une telle instruction permet au processeur de réduire considérablement sa consommation d'énergie et sa production de chaleur, c'est pourquoi elle est couramment utilisée au lieu l'attente active en mode de veille.
Utilisation
Comme l'émission de l'instruction HLT nécessite un accès à l'anneau 0, elle ne peut être exécutée que par un logiciel système privilégié tel que le noyau de système d'exploitation. Pour cette raison, il est souvent préférable, en matière de programmation d'applications, d'utiliser l'interface de programmation d'applications (API) fournie à cet effet par le système d'exploitation lorsqu'il n'est plus possible d'exécuter des instructions. Cela permet à l'ordonnanceur du système d'exploitation de lancer d'autres applications si cela est possible ou, si ce n'est pas possible, de lancer l'instruction HLT pour couper la consommation d'énergie.
Références
- « Intel 64 and IA-32 Architectures Software Developer's Manual: Instruction Set Reference A-Z » (consulté le )
- « Why does DOS use 100% CPU under Virtual PC? », sur microsoft.com (consulté le )
Voir aussi
Articles connexes
- Halt and Catch Fire, une instruction non documentée à effets secondaires inhabituels, incluse dans le processeur à des fins de test
- Instruction nulle, une instruction particulière, qui dicte à l'ordinateur de n'effectuer aucune action