www.ctmagazin.de - ciw - Mail an ciw

Tipps zur ACPI-Konfiguration:

Literaturhinweise:

Zwei grundlegende c't-Artikel beschreiben ACPI und sind im Wesentlichen auch für Windows XP noch gültig:

c't-Hotline-Tipps zum Thema ACPI

Einführung ACPI

Tipps

Beschreibung einiger Standby-Modi


www.heise.de/ct - ciw - Mail an ciw

Einführung

Seit der Version 98 SE bietet Windows die Möglichkeit, den PC per ACPI (hier und hier viele Infos) vom Betriebssystem zu steuern.

Das Advanced Configuration and Power Management Interface zur Steuerung der Hardware-Ressourcen ermöglicht fortschrittliche und komfortablere Energiespar-Modi wie den Zustand Suspend-to-RAM (STR, ACPI S3) oder Suspend-to-Disk (STD, ACPI S4), aus denen sich ein PC schneller wieder in den arbeitsbereiten Zustand versetzen lässt als durch einen gewöhnlichen Boot-Vorgang. Intel sieht ACPI daher auch als einen Teil der seit Jahren laufenden Initiative für den "Instantly Available PC" IAPC (IA steht auch oft für "Intel Architecture").

Damit ACPI funktioniert, benötigt man außer voll ACPI-tauglicher Hardware (Mainboard, ATX-Netzteil mit genügend Standby-Leistung und AGP- und PCI-Erweiterungskarten sowie USB-Geräte) ein ACPI-taugliches Betriebssystem (alle Microsoft-Windows-Versionen seit 98 SE und Windows 2000, leider bisher nur rudimentärer Support in Linux) sowie dazu passende, ACPI-taugliche Treiber. Wenn nur ein einziges Gerät oder dessen Treiber sich querstellt, funktioniert beispielsweise der S3-Modus nicht. Das kann sich bestenfalls derart äußern, dass der PC gar nicht erst in den S3-Zustand schaltet, sondern nur den S1-Modus wählt, in dem je nach BIOS sogar der CPU-Lüfter, immer aber der Netzteillüfter weiterläuft (weil das Netzteil eben eingeschaltet bleibt). Fehlerhafte BIOSse und schlechte Treiber führen häufig auch dazu, dass das System zwar in den S3-Modus geht, aber nicht mehr daraus erwacht. Auch kommt es vor, dass der PC nach dem Wiederaufwachen aus STR langsamer arbeitet als vorher. 

Viele Probleme rühren daher, dass die ACPI-Spezifikation sehr umfangreich (ACPI 1.1: 397 Seiten, ACPI 2.0: 481 Seiten) und kompliziert ist. Die Hardware-Hersteller und Treiber-Programmierer tun sich sehr schwer mit der korrekten Implementierung aller ACPI-Funktionen. Intel selbst beklagt in einer FAQ, dass es mit ACPI noch häufig Ärger gibt, weil es oft schon im BIOS falsch umgesetzt wurde.

ACPI, BIOS und APM

Schon das BIOS älterer Mainboards beherrschte gewisse Steuerungsfunktionen für die PC-Komponenten. Dazu konnte es per Advanced Power Management (APM) beispielsweise nach einer gewissen Zeit der Inaktivität die Festplatten und das Monitorsignal abschalten, den CPU-Takt drosseln (Throtteling, per STPCLK#-Signal wird der interne CPU-Takt moduliert) oder den PC komplett Ein- und Ausschalten. Die APM-Spezifikation ("Theory of Operation" laut Microsoft bei Windows 2000) beschreibt nicht nur die nötigen Hardware-Funktionen, sondern auch die Interaktion zwischen Betriebssystem und BIOS. Über genau definierte BIOS-Befehlsaufrufe ist das Betriebssystem in der Lage, zum Beispiel den PC nach dem Herunterfahren automatisch abzuschalten. Linux "lernte" die APM-Unterstützung vergleichsweise spät, auch Windows NT beherrschte weder APM noch ACPI. Unter NT konnte man aber gewisse Funktionen nachrüsten (siehe dazu: Peter Siering, Not-Aus, PCs softwaremäßig abschalten, c't 5/1999, S. 234). Speziell für NT-Laptops haben auch kommerzielle Firmen APM-Tools angeboten.

Ein grundlegendes Problem von APM liegt in der schlechten Zusammenarbeit zwischen Betriebssystem und BIOS. Damit sollte die bereits 1997/1998 veröffentlichte ACPI-Spezifikation aufräumen (Georg Schnurer, Alles unter Kontrolle, Power Management und PC-Konfiguration neu spezifiziert, c't 20/1998, S. 166).

Ein ACPI-Computer unterscheidet sich hinsichtlich der Hardware-Konfiguration und -Steuerung grundsätzlich von einem "gewöhnlichen" Legacy-PC (Legacy: Eigentlich "Erbe". Legacy-Geräte sind beispielsweise ISA-Bus und-Steckkarten, PS/2-Maus und -Tastatur, serielle und parallele Schnittstellen). Ein ACPI-Betriebssystem übernimmt zu einem großen Teil Aufgaben, die sonst das BIOS erledigt. 

Ein ACPI-BIOS verwaltet komplizierte Tabellen, anhand derer das Betriebssystem die Geräte im System konfiguriert. Ein Beispiel: Schon vor ACPI konnte Windows in die IRQ-Zuordnung, die prinzipiell auch das BIOS erledigt, eingreifen und diese verändern. Bei Windows  2000 im ACPI-Modus ist im Unterschied zu Windows 98 kein manueller Eingriff in die Ressourcenzuteilung mehr möglich, das Betriebssystem verlangt die vollständige Kontrolle über die Interrupt-Zuordnung. Im "ACPI-Modus" teilt Windows 2000 auf Ein-Prozessor-Systemen allen PCI-Steckkarten ein und denselben IRQ zu. Das begründet Microsoft mit der besonderen Eignung von Windows 2000 auch für Systeme, in denen mehrere PCI-Busse oder mehrere Prozessoren verwaltet werden müssen. Solange die Systeme einwandfrei arbeiten, besteht kein Anlass, daran etwas zu ändern.Wer die IRQ-Verteilung von Hand ändern muss, weil es Probleme gibt, muss auf ACPI und die damit einhergehenden Komfortmerkmale wie Suspend-to-RAM verzichten.

Abhilfe verspricht die bei modernen Mainboards unter Windows 2000 und Windows XP mögliche Nutzung des APIC-Modus, mit dem statt 16 IRQs 24 zur Verfügung stehen. Der APIC-Modus funktioniert wiederum nur bei einer ACPI-Installation.

Die ACPI-Steuerung geht aber noch sehr viel weiter, das Betriebssystem entscheidet anhand der Treiber darüber, welchen "Power Mode" ein im oder am PC angeschlossenes Gerät einnimmt. Das Betriebssystem verwaltet ein virtuelles ACPI--Steuerungsgerät mit eigenem Interrupt -- dieser ist zwar teilbar (shareable), doch steht damit noch ein IRQ weniger für nicht-sharing-fähige PCI-Karten zur Verfügung.


www.ctmagazin.de - ciw - Mail an ciw

EinigeTipps:


www.ctmagazin.de - ciw - Mail an ciw

Standby- und Energiesparmodi

Nachfolgend eine Beschreibung einiger Energie-Betriebsmodi von PCs. Zur Beachtung: Die tatsächliche Stromsparwirkung hängt entscheidend von Details der konkreten Systemkonfiguration ab. Die BIOSse fast aller Athlon-Mainboards (Stand: Juli 2002) beispielsweise trennen wegen eines Bugs der Athlons die CPU nicht vom Front Side Bus; dann aber benötigt die CPU im Sleep-Modus nur minimal weniger Strom als im unbelasteten Normalbetrieb (Details hier).

Immer vorhandene Betriebsmodi:

"Mechanical Off" (G3) - Netzteil des PC ist elektrisch vom Stromnetz getrennt, z.B. per mechanischem Schalter am Netzteil

"Working" (G0, ACPI S0) - PC arbeitet normal

APM-Modi:

Soft-Off - Netzteil des PC erzeugt nur Standby-Spannung, PC lässt sich per ATX-Einschalttaster am Gehäuse einschalten, entspricht etwa ACPI S5 oder G2

Suspend-Modus: Genaue Funktion hängt vom BIOS ab. Üblicherweise vergleichbar ACPI S1: Prozessor im "Sleep"- oder Throttel-Modus, Lüfter des CPU-Kühlers je nach BIOS an oder aus, Netzteil aber voll an (Netzteillüfter läuft), alle Komponenten versorgt (beispielsweise Grafikkartenlüfter läuft). Manches BIOS-Setup erlaubt die Einstellung eines Throtteling-Faktors für die CPU im Sleep-Modus, per STPCLK#-Signal wird dann die Taktfrequenz herabgesetzt. Oft sind Suspend-Modi für IDE-Festplatten und den Monitor nach bestimmten Zeitintervallen wählbar.

ACPI-Modi:

Generell unterscheidet ACPI Modi des kompletten PC (System) (Kürzel beginnt mit S, etwa S1, S2, S3 etc.), des Prozessors/der Prozessoren (CPU) (C1, C2 etc.) und von Geräten (Devices) (D0, D1 etc.)

Ein Beispiel für die Betriebsmodi eines Modems aus ACPI 1.0:
"The power states of a modem are defined as follows (this is an excerpt from the Modem Device Class Power Management Specification):
D0 - Modem controller on, Phone interface on, Speaker on, Can be on hook or off hook, Can be waiting for answer
D1 - Modem controller in low power mode (context retained by device), Phone interface powered by phone line or in low power mode, Speaker off, Must be on hook
D2 - Same as D3
D3 - Modem controller off (context lost), Phone interface powered by phone line or off, Speaker off, On hook
The power policy for the modem are defined as follows:
D3
?D0        COM port opened
D0,D1
?D3   COM port closed
D0
?D1        Modem put in answer mode
D1
?
D0     Application requests dial or the phone rings while the modem is in answer mode
The wakeup policy for the modem is very simple: when the phone rings and wakeup is enabled, wake the machine.
"

Betriebsmodi des Prozessors:
ACPI definiert 4 Zustände der CPU von C0 (Prozessor führt Code aus) bis C3 (Prozessor ruht völlig). Je nach Zustand ist die CPU noch mit Takt versorgt, hält noch Daten oder Zustände, kann auf IRQs reagieren oder nicht und wacht mit steigender Zustandszahl mit immer höherer Latenzzeit wieder auf. ACPI-Betriebssysteme versetzen die CPU sofort in den C1-Modus, wenn keine Befehle anliegen. Das kann über den Aufruf einer ACPI-Funktion des BIOS geschehen, woraufhin die Southbridge das STPCLK#-Signal setzt und die CPU quasi "steht". Dieser Modus wird auch als "Stop Grant" bezeichnet.
Mobilprozessoren kennen meist zahlreiche Sleep-Modi wie den QuickStart, Sleep State, Deep Sleep State und Deeper Sleep State -- genaueres zeigt das Datenblatt. Zur Nutzung dieser Zustände ist außer dem passenden BIOS und der steuernden Hardware (Mobil-Chipsätze oder Zusatzchips) oft ein spezieller Systemtreiber nötig. Windows XP bringt auch hierfür vielfältige Unterstützung.

Betriebsmodi des Systems:
Das sind die für den Nutzer interessantesten ACPI-Bezeichnungen

Modi des Betriebssystems:

Moderne Betriebssysteme bieten verschiedene Energiesparmodi an. Bei den Windows-Versionen sind diese unter "Energieoptionen" in der Systemsteuerung einstellbar. So lässt sich zunächst einmal einstellen, ob das Betriebssystem die Festplatten oder den Bildschirm nach einer gewissen Zeit ohne Benutzereingaben (Tastatur, Maus) abschalten soll. Das kann entweder über APM-Aufrufe oder über ACPI-Aufrufe an das BIOS geschehen, aber auch ein direkter "Schlafbefehl" über den Hardware-Treiber an die jeweilige Komponente ist möglich. Bereits hier kann es also schon zu Konflikten mit den BIOS-Setup-Optionen oder inkompatiblen Grafiktreibern kommen.

Außerdem bietet Windows die Auswahl der Modi "Standby" und "Ruhezustand" für das gesamte System an. Die Auswirkungen dieser Schlafbefehle hängen von der Konfiguration des Betriebssystems, vom Betriebssystem selbst, von den installierten Treibern, dem Festplattenplatz, vom BIOS- von den Einstellungen im BIOS-Setup und unter Umständen sogar von Jumpereinstellungen auf dem Mainboard ab.
Beispiel "Ruhezustand": Diese englisch "Hibernate" genannte Funktion entspricht dem Suspend-to-Disk. Dabei speichert das Betriebssystem den Systemzustand auf dem Windows-Bootlaufwerk (meist Partition C:\), Beschreibung wie oben bei ACPI S4.
Unter Windows ME und XP funktioniert der Ruhezustand nur auf ACPI-Systemen, Windows 2000 benötigt nur APM dazu. In jedem Fall muss auf dem Windows-Bootlaufwerk noch so viel Kapazität sein, wie RAM installiert ist. Weitere Bedingungen s.o.
Beispiel "Standby-Modus": Ob der Befehl "Standby" das System in den S1- oder S3-Modus bringen soll, lässt sich bei manchen Mainboards im BIOS-Setup einstellen. Doch auch viele andere Bedingungen müssen erfüllt sein, damit der S3 funktioniert, dazu mehr weiter oben.


www.ctmagazin.de - ciw - Mail an ciw