Index [index] Back [back] Next [next]




2. ACPI - Advanced Configuration and Power Interface

Power Management mit ACPI

Der größte Teil der ACPI-Spezifikation beschäftigt sich mit dem Thema Power Management. Die Idee besteht darin, das komplette Power Management in das Betriebssystem zu verlagern. Dieses weiß am besten über die gerade benötigte Rechenleistung Bescheid, so dass es die Energiesparmaßnahmen am effizientesten koordinieren kann.
Dieser Ansatz ist sicher nicht falsch, doch birgt er auch einige Risiken: Sobald ausschließlich das Betriebssystem für elementare Dinge wie die Lüfter- und Temperaturkontrolle des Prozessors verantwortlich ist, läuft man Gefahr, dass der Rechner beschädigt wird, wenn das System abstürzt. Es kann einen abgeschalteten CPU-Lüfter nicht mehr einschalten, wenn der Prozessor zu heiß wird.
Einige Hersteller implementieren deshalb eigene Schutzmechanismen, die solch ein Desaster verhindern sollen. Eine vom Betriebsystem und sonstiger Software unabhängige Hardware hat hier also Priorität vor den Power-Management-Maßnahmen des Betriebssystems.
Bei strenger Auslegung der ACPI-Spezifikation sind solche Lösungen nicht zulässig. Bei sicherheitsrelevanten Systemen sind sie aber allemal notwendig und sinnvoll.
ACPI berücksichtigt eine Vielzahl unterschiedlicher Zustände des Systems als Ganzes, des Prozessors, diverser Komponenten und Peripherie-Geräte, die zum Teil etwas verwirrend miteinander verwoben sind. Die im Text folgenden Grafiken sollen einen groben Überblick über die Zusammenhänge liefern.
Auf der obersten Ebene kennt ACPI vier globale Power-Management-Zustände, die als G0 bis G3 bezeichnet werden. Zustand G3 ist ein mechanisch abgeschalteter, vom Netz getrennter Rechner. G2 steht für ein per Software abgeschaltetes System, bei dem die 5-Volt-Standby-Leitung noch Spannung liefert. Ein schlafender Rechner, der sich per Mausbewegung oder Tastendruck aufwecken lässt, befindet sich im Zustand G1. G0 schließlich kennzeichnet einen vollständig aktiven PC.

Globale Power Management - Zustände


Eine Sonderrolle außerhalb der ACPI-Spezifikation spielt der Legacy-Modus. Er ist direkt nach dem Kaltstart aktiv und sorgt für das Booten des Systems. Nur wenn Mechanismen wie 'Suspend to Disk' oder 'Suspend to RAM' verwendet wurden, erfolgt ein direkter Übergang vom G3- oder G2-Modus in den Betriebszustand G0 über einen ACPI-Boot.
Die grobe Einteilung der Systemzustände wird durch die sechs Sleep-States S0 bis S5 feiner untergliedert. Für jedes angeschlossene Gerät wie Modem, Festplatte, CD-ROM, Monitor oder Drucker gibt es zusätzlich noch je vier vom sonstigen System unabhängige Stromspar-Zustände.
So erreicht ACPI einen möglichst geringen Energieverbrauch - ein Drucker muss schließlich nur dann Energie verbrauchen, wenn er wirklich benötigt wird. Den Rest der Zeit kann er bei möglichst niedrigem Energieverbrauch vor sich hinschlummern. Ähnliches gilt auch für andere externe Geräte.
Da der Prozessor einerseits zu den größten Energiefressern im Rechner gehört, sich aber auf der anderen Seite auch am leichtesten vom Betriebssystem kontrollieren lässt, hält die ACPI-Spezifikation für ihn eine Sonderbehandlung bereit.

Prozessor - Power Management - Zustände


Innerhalb des globalen Zustands 'System arbeitet' (G0) kann der Prozessor selbst vier Leistungs- bzw. Energieverbrauchs-Niveaus einnehmen. Der Grundzustand 'Arbeiten' (C0) gliedert sich bereits in zwei Modi: Der Prozessor läuft entweder mit voller Geschwindigkeit oder er befindet sich im sogenannten Throttling-Mode bei verminderter Leistungsfähigkeit. Throttling heißt hier, dass die CPU den Prozessortakt nur für eine begrenzte Zeit erhält. Die übrige Zeit wird die Taktzufuhr über das STPCLK-Signal unterbunden, und alle Prozessor-Register frieren ein. Der Energieverbrauch der CPU lässt sich auf diese Weise drastisch senken, weshalb der ACPI-Treiber das Throttling vornehmlich dann einsetzt, wenn die CPU zu heiß wird, etwa weil der CPU-Lüfter ausgefallen ist. Wie lange der Prozessor den Takt erhält, bestimmt das Duty-Setting im drei Bit breiten Duty Width Register.

Throttling mittels Duty Width


Wenn der Prozessor auf Benutzereingaben wartet oder eine Idle-Task ausführt, begibt er sich via HALT-Befehl in den C1-Modus. Der Energieverbrauch sinkt deutlich, der Prozessor ist aber noch in der Lage, die Integrität des L1- und L2-Cache sicherzustellen.
Snoop-Zyklen, etwa PCI-Mastern werden noch ausgeführt. Jeder Interrupt (Mausbewegung, Tastendruck) beendet bereits umgehend das Nickerchen des Prozessors. Zusätzliche Unterstützung durch den Chipsatz ist nicht erforderlich.
Der C2-Power-Status des Prozessors wurde speziell für die Multiprozessoren-Systeme eingeführt. Hier wird ein unbeschäftigter Prozessor in den Schlafmodus versetzt, während andere CPUs noch mit voller Leistung arbeiten. Wie im C1-Zustand ist der Prozessor nach wie vor in der Lage, die Cache-Integrität sicherzustellen und erwacht bei jedem ihn betreffenden Interrupt. Im Unterschied zum C1-Zustand ist der C2-Modus nur mit entsprechend ausgelegten Chipsätzen nutzbar. Sie müssen sich unter anderem darum kümmern, dass eingehende Interrupts nur den Prozessor wecken, der sie auch bearbeiten soll (I/O-APIC).
C3 schließlich ist ein Energiespar-Modus, in dem die CPU die Cache-Integrität nicht mehr aufrecht erhalten kann. Das Betriebssystem ist daher verpflichtet, die betroffenen Caches zu leeren, bevor es den Prozessor in den C3-Modus schickt. In Single-Prozessorsystemen kann man auf diese zeitaufwendige Maßnahme auch verzichten, indem man vor dem Eintritt in den C3-Modus alle Busmaster-Devices abschaltet.
Je weiter das Energie-Niveau des Prozessors sinkt, desto länger dauert es, bis die CPU wieder die volle Leistungsfähigkeit erreicht. Aus dem Halt-Zustand (C1) erwacht ein Pentium je nach Systemkonfiguration innerhalb von 20 bis 30 Takten, die Rückkehr aus dem C3-Zustand und das anschließende Reinitialisieren der Caches können dagegen mehrere hundert Takte in Anspruch nehmen. Die meisten derzeit existierenden ACPI-Implementierungen pendeln nur zwischen den Modi C0 und C1.

Abschließend nochmals alle Power-Management-Zustände gemäß ACPI in einer Tabelle:

 Globale Systemzustände
G0 Working Der Rechner arbeitet normal.
G1 Sleeping Der Rechner ist im Sleep-Modus und verbraucht wenig Energie.
G2 Soft Off Der Rechner ist abgeschaltet, 5V-Standby führt noch Spannung.
G3 Mechanical Off Der Rechner ist komplett abgeschaltet und vom Netz getrennt.
 Sleep-Modi
S1 Das System schläft, ist aber mit einem Interrupt wieder aufzuwecken. Weder CPU noch Chipsatz müssen reinitialisiert werden.
S2 Wie S1, die CPU und ihr Cache sind abgeschaltet, das Betriebssystem ist für das Reinitialisieren zuständig.
S3 Wie S1, die CPU, alle Caches und der Chipsatz sind abgeschaltet. Die Board-Hardware sorgt dafür, dass alle Speicherinhalte erhalten bleiben, und das Betriebssystem restauriert die restlichen Systemzustände. (Suspend to RAM)
S4 Das System verbraucht kaum noch Energie, alle Board-Komponenten sind abgeschaltet. Das Betriebssystem ist für die Reinitialisierung des Systemzustandes verantwortlich. (Suspend to Disk)
S5 Soft Off wie G3
 Device-Modi
D0 Full On Das Gerät ist betriebsbereit.
D1/ D2 Das Gerät ist im Sleep-Modus. Der Unterschied zwischen D1 und D2 liegt lediglich in dem niedrigeren Energieverbrauch und der höheren Einschalt-Latenz bei D2.
D3 Off Das Gerät ist per Software, nicht aber mechanisch abgeschaltet. Das Betriebssystem reinitialisiert bei Bedarf.
 Prozessor-Modi
C0 Der Prozessor führt Befehle aus.
C1 Der Prozessor befindet sich im Halt-Modus und kümmert sich weiterhin um die Cache-Integrität.
C2 Speziell für MP-Systeme. Eine CPU befindet sich im Halt-Modus, alle anderen arbeiten weiter.
C3 Der Prozessor ist quasi abgeschaltet. Er kümmert sich nicht mehr um die Cache-Integrität. Das Betriebssystem muss alle CPU-Register und die Caches restaurieren, wenn ein Interrupt oder ein Busmaster-Zugriff auf den Hauptspeicher erfolgt.



Index [index] Back [back] Next [next]