Martin Vieregg » Do 5. Nov 2015, 09:31 hat geschrieben:Ich habe jetzt die Leistungsaufnahme des PC gemessen. Bislang (mit dem alten Prozessor) war die Stromaufnahme (incl. Bildschirm) 153 W im Leerlauf, jetzt sind es 196 W und 204 W unter Vollast. Scheinbar funktioniert jetzt das Runtertakten des Prozessors im Leerlauf nicht mehr. Ist da ACPI auch zuständig dafür - d.h. wird das besser mit eCS 2.2 klappen?
Das Thema ist ein wenig komplizierter: Runtertakten des Prozessors geht nur mit ACPI - den Prozessoren wird dann für einstellbare Zeiträume die Uhr abgedreht - alles läuft langsamer und ältere CPU's sparen dann Strom. Das, was der Kernel standardmäßig macht, ist das Ausführen einer HLT - Instruktion - der Prozessor stellt alle Tätigkeit ein und wartet, bis er per Interrupt wieder aufgeweckt wird. Ältere CPU's und Chipsätze schalten dann ebenfalls in den Stromsparmodus. Das ist dann unabhängig von ACPI, funktioniert sowohl bei UNI wie auch bei SMP und erfordert nur die korrekte Initialisierung der Southbridge durch das BIOS.
Was jetzt bei Dir passieren dürfte ist, dass das BIOS beide CPU's initialisiert. Eine CPU initialisiert das System, läd den Kernel und fährt das System hoch. Die zweite CPU muss warten. Ein SMP-Kernel würde den ACPI.PSD laden, dieser würde die zweite CPU vom BIOS übernehmen, initialisieren und dann im Kernel per HLT-Instruktion parken, bis Arbeit da ist. Das passiert bei Dir nicht, die CPU wird vom BIOS "geparkt" - und das offensichtlich nicht gerade stromsparend.
Somit ist ein SMP-System überhaupt erst mal Voraussetzung dafür, dass etwas besser werden kann. Wenn Dein System jetzt schon mit der HLT-Instruktion den Energieverbrauch reduziert, dann wird das auch mit 2 CPU's gehen, die Frage ist nur - wie weit runter? Denn eines muss klar sein - Du hast jetzt 2 CPU-Kerne und ganz aus schalten die per HLT nicht - schon weil der Cache der CPU's koherent gehalten werden muss, auch bei Zugriffen über den Bus (weil z.B. die Festplatte Daten in den Speicher schreibt). Die HLT Instruktion versetzt den CPU-Kern in den C1 Status, das ist der Status mit der geringsten Stromeinsparung und muss von jedem ACPI-kompatiblen System unterstützt werden (aber es gab aus eigener Erfahrung Probleme mit AMD-Chipsätzen - die Hardware war zwar in Ordnung, aber das BIOS hat es nicht geschafft...).
ACPI definiert weitere Energiesparzustände, C2 und C3 sind üblich. Aber nicht jedes System kann diese Zustände mit mehreren CPU's unterstützen. Von manchen Chipsätzen gibt es spezielle "mobile"-Versionen, die in der Richtung dann mehr können. Neuere CPU's z.B. Core 5 unterstützen bis C7 und weiter - dagegen bringt das ganz am Anfang beschriebene "runtertakten" auf diesen Systemen fast nichts mehr.
ACPI für OS/2 unterstützt das "runtertakten" und auch das Anhalten von CPU's mindestens in den Status C1. Wie gut das funktioniert hängt entscheidend vom Chipsatz und der BIOS-Unterstützung ab. Auf meiner älteren Maschine (Intel Core 2 Duo) habe ich bei Vollast 108 Watt, bei Idle noch 78 Watt - nur der Rechner.
Holger