ACPI und APIC
Auf der Suche nach Informationen zur PC-Konfiguration bin ich auf die Akronyme ACPI und APIC gestoĂźen. Haben die etwas miteinander zu tun?
Auf der Suche nach Informationen zur PC-Konfiguration bin ich auf die Akronyme ACPI und APIC gestoĂźen. Haben die etwas miteinander zu tun?
Theoretisch nicht, aber praktisch doch. Das Advanced Configuration and Power (Management) Interface (ACPI), das Ende der 90er-Jahre federfĂĽhrend von Microsoft und Intel spezifiziert wurde, liegt mittlerweile in der dritten Revision vor und ist in allen aktuellen Betriebssystemen (leider nicht einheitlich) implementiert. Bekannt geworden ist ACPI vor allem im Zusammenhang mit der Windows-Energieverwaltung, etwa als Voraussetzung zur Nutzung der PC-Energiesparmodi Suspend-to-RAM (ACPI S3) oder Suspend-to-Disk (Windows-Ruhezustand, ACPI S4).
Per ACPI steuern moderne Betriebssysteme auch Taktfrequenz und Betriebsspannung des Hauptprozessors (Performance- oder P-States) und nutzen so deren Energiesparfunktionen wie AMD Cool’n’Quiet (CnQ) oder Enhanced Intel SpeedStep Technology (EIST). Doch auch viele andere Bereiche der Systemkonfiguration funktionieren mittlerweile per ACPI, etwa die Koordination der Advanced Programmable Interrupt Controllers (APIC) in x86-/x64-Computern mit mehreren Prozessoren oder Prozessorkernen.
Bei Systemen mit genau einer CPU und einem CPU-Kern ist klar, dass genau dieser einzige Kern für die Verarbeitung aller Interrupt-Anforderungen zuständig ist. Solche Rechner kommen mit dem „alten“ Programmable Interrupt Controller (PIC) aus, der seit Einführung der ersten AT-Rechner 16 IRQ-Kanäle zur Verfügung stellte. Kommen mehrere CPU-Kerne ins Spiel, ist ein mächtigeres Kommunikationswerkzeug für die Übertragung von Interrupt-Anforderungen von einem oder mehreren I/O-APICs zu den sogenannten Local APICs eines jeden Prozessorkerns nötig. Bei Prozessoren mit virtuellen Kernen – etwa solchen, die das von Intel Hyper-Threading genannte Simultaneous Multi-Threading (SMT) beherrschen –, hat jeder logische CPU-Kern einen Local APIC. Der I/O-APIC steckt typischerweise im Chipsatz und verwaltet etwa die IRQ-Leitungen von PCI-Bausteinen.
Ältere Rechner (und Betriebssysteme) folgen bei der APIC-Konfiguration den Vorgaben der veralteten „MultiProcessor Specification“ von Intel, die 1997 in ihrer letzten Version 1.4 (MPS 1.4) erschienen ist. Windows 2000 und XP bringen noch Hardware Abstraction Layer (HAL) für MPS-Multiprozessormaschinen mit. Doch die MPS-HAL funktioniert nur bei „klassischen“ Multiprozessor-Maschinen mit mehreren physischen Prozessoren (CPU Packages beziehungsweise Sockets), die jeweils einen Kern aufweisen; von Prozessoren mit mehreren (logischen) Kernen oder gar veränderlichen Taktfrequenzen weiß MPS 1.4 nichts. Deshalb lassen sich mehrere Kerne von Multi-Core-Prozessoren unter Windows nur nutzen, wenn auch ACPI zum Einsatz kommt. (ciw) (ciw)