Moderne Desktop-Computer und Notebooks verwerten die kostbare elektrische Energie nur selten besser als eine herkömmliche Kochplatte – das meiste wird in Wärme umgesetzt. Dieser Artikel zeigt, wie Sie effektiv Strom sparen.
Aktuelle Prozessoren von AMD und Intel verbrauchen mit bis zu 90 Watt fast so viel wie ein Fernseher. Bauen Sie dann noch viel RAM und eine hochgerüstete Grafikkarte in Ihren Rechner ein, müssen Sie sich über eine Gesamtleistung von 300 Watt und mehr nicht wundern.
Für welch gigantische Leistungsaufnahme heutige Privat-Computer ausgelegt sind, zeigt schon ein flüchtiger Blick in das Gehäuse: 200-Watt-Netzteile sind völlig aus der Mode gekommen, in neuen Rechnern finden Sie meist 350- oder gar 400-Watt-Netzteile. Schon die Leistungsdaten der zentralen PC-Komponenten fallen erschreckend aus: Ein AMD Athlon 64 3200+ mit 2 GHz Prozessortakt und 1 MByte Cache verbraucht laut Hersteller-Spezifikation [1] bereits 89 Watt. Hinzu kommen noch einmal bis zu 40 Watt, die das Mainboard mit den aufgelöteten Komponenten wie PCI-, South- und Northbridge benötigt.
Stromsparen per ACPI
Mit herkömmlichen Stromspar-Mechanismen wie Heruntertakten des Prozessors per ACPI oder Abschalten der Festplatte liegt der Stromverbrauch bereits spürbar niedriger als bei Volllast. Der grö§te Stromverbrauch geht allerdings auf die ständig steigenden Leckströme der Transistoren zurück: Mit jeder Verkleinerung der Chips wird die Isolation zwischen Emitter und Kollektor sowie der Basis immer dünner. Sie besteht bei aktuellen 90-Mikrometer-Prozessen nur noch aus wenigen Atomlagen.
Die Halbleiter-Hersteller reagieren auf dieses Problem mit der Entwicklung verbesserter Halbleiter-Materialien: Etwa durch Verwendung von Kupfer als Leiterbahnen innerhalb des Chips sowie Basismaterialien mit hohem Isolationsfaktor aus teuren Silizium-Germanium-, Silizium-Indium- oder gar Gallium-Arsenid-Legierungen.
Problem Leckströme
Besonders viele Transistoren sind für die Herstellung von RAM-Bausteinen erforderlich, für jedes einzelne Bit eines SRAMs benötigen die Ingenieure sechs Transistoren und einen Kondensator. In herkömmlicher Technik gefertigt, können solche Transistoren Leckströme von bis zu einem Nano-Ampere verursachen – bei 512 MByteyte RAM summieren sich die Verluste auf über 25 A. Entsprechend gro§ war das Interesse an der Powermanagement-Technik, die Texas Instruments auf dem VLSI-Symposium Mitte letzten Jahres vorstellte. Sie soll in Zukunft SRAM-Zellen mit nur 2 pA Leckstrom [2] ermöglichen.
Doch nicht nur die RAM-Bausteine enthalten Speicherzellen, auch jeder Prozessor arbeitet heute mit mehrstufigen Caches. So befinden sich in jedem Athlon-64-Kern (Abbildung 1) allein 1 MByte Level-2-Cache plus zwei mal 64 KByte Level-1-Cache für Daten und Befehle – das macht allein 56,6 Millionen Transistoren im Prozessor nur für die Caches.

Abbildung 1: Beim Athlon 64 belegt der Level-2-Cache (rechts, braun) fast zwei Drittel der Chip-Oberfläche, hinzu kommen noch die zwei Level-1-Caches rechts oben und rechts unten (grüne Rechtecke) im eigentlichen Rechenwerk (links).
Logischerweise hängt die Stärke der Leckströme unmittelbar von der am Transistor angelegten Spannung ab. Während bei einer logischen Null in einer Speicherzelle keine oder eine kaum nennenswerte Ladung an den sechs Transistoren des Bits anliegt, wird bei einer logischen Eins eine Spannung von mehreren Volt im Kondensator gespeichert, was den Leckstrom auf ein Vielfaches gegenüber der Null-Spannung steigert.
Leckströme und Verluste des Kondensators bauen innerhalb von wenigen Millisekunden die gespeicherte Ladung einer logischen Eins ab, weshalb die für die Speicheransteuerung zuständige Northbridge die Speicherinhalte mehrere tausend mal pro Sekunde auffrischen muss – wobei lediglich die gespeicherten logischen Einsen ins Gewicht fallen. Logische Nullen hingegen sind relativ “billig” zu speichern, da hier das Refreshing entfällt. Ein möglicher Ansatz zum Stromsparen besteht also darin, die Zahl der Einsen im Speicher zu verringern.
RAM-Refresh minimieren
Tatsächlich lässt sich dieser Ansatz mit Hilfe des Linux-Kernels verwirklichen. Der Schlüssel dazu liegt in der Datei arch/i386/mm/mmap.c der Kernel-Quellen: Hier befinden sich alle grundlegenden I/<\d>O-Operationen des Speicher-Managements. Um einen Speicherbereich verlustfrei auf möglichst viele Nullen zu konvertieren, bedarf es lediglich einer sehr einfachen Konvertierung, der so genannten Null- oder auch LIrPA-Konvertierung (Logical Inversion Page Addressing). Tabelle 1 enthält einige Beispiele, wie jeweils acht Bit mit Hilfe von zwei Page-Flags in besonders viele Nullen umgewandelt werden können, wobei die beiden Flags zur besseren Darstellung in einer separaten Spalte stehen.
Tabelle 1: Die Null-Konvertierung
| Bitfolge | Page-Flags | Ergebnis |
| 11101101 | 11 | 00010010 |
| 10111010 | 10 | 00010000 |
| 10011101 | 01 | 11001000 |
| 00100010 | 00 | 00100010 |
Der Konvertierungsalgorithmus selbst ist sehr einfach: Bei sechs oder mehr logischen Einsen eines Bytes werden beide Flags auf 1 gesetzt und das Byte selbst bitweise mit XOR verknüpft: Das erste Bit mit dem ersten Flag, das zweite Bit mit dem zweiten Flag, das dritte Bit mit dem ersten und so weiter. Das Ergebnis ist ein Byte, in dem noch maximal zwei logische Einsen übrig bleiben – somit wurden mindestens zwei Drittel der logischen Einsen eingespart.
Bei drei bis fünf Einsen pro Byte kommen die Flags “10” und “01” zum Einsatz, und zwar je nach dem, welches der beiden Flag-Pattern eine besseres Ergebnis verspricht. Die Ersparnis hängt von der Verteilung der logischen Nullen in der Ausgangs-Bitfolge ab. In Zeile 2 von Tabelle 1 ist der fast ideale Fall zu sehen, bei dem an Stelle von fünf Einsen lediglich eine übrig bleibt.
Der letzte Fall, das Flag-Pattern “00”, ist trivial: Hier bleibt die ursprüngliche Bitfolge unverändert. Dies ist für zwei oder noch weniger logische Einsen im Byte rationell, noch dazu sparen solche Bytes die XOR-Verknüpfung der einzelnen Bits, was den Prozessor entlastet und somit zusätzlich Strom spart.
Kompression ähnlich CRAMFS
Durch die Einführung der Konvertierungs-Flags wird jedoch etwas mehr Speicher benötigt als ursprünglich. Dies kompensiert eine anschlie§ende abschnittsweise Kompression des Speichers – wie in Tabelle 1 leicht zu erkennen, bestehen die konvertierten Bit-Sequenzen überwiegend aus Nullen. Im Test ergaben sich Einsparungen von fast 20 Prozent gegenüber dem ursprünglichen Speicherinhalt. Somit steht Ihnen insgesamt mehr Speicher zur Verfügung als zuvor, und das, obwohl Sie die Speicherinhalte energiesparend konvertiert haben.
Die Kompression von Speicherinhalten ist unter Linux nichts neues (Abbildung 2), das Dateisystem CRAMFS (Compressed ROM File System), das seit Urzeiten auf PDAs und Embedded-Systemen zum Einsatz kommt, tut nichts anderes: Das Root-Dateisystem wird als Gzip-komprimiertes Dateisystem in RAM des Rechners gehalten und für die Zugriffe durch den Anwender im Hintergrund Stück für Stück entpackt.
Lediglich die Konvertierung der Bitfolgen hat noch keinen Einzug in den Standard-Kernel gefunden. Als besonderen Leser-Service bietet Ihnen die Redaktion diesen LIrPA-Kernel-Patch sowie fertige LIrPA-Kernel-Pakete für die meisten Standard-Distributionen in einem geschützten Download-Bereich der LinuxUser-Homepage [3] an – zum Einloggen müssen Sie die individuelle Nummer unterhalb des Barcodes auf der Titelseite dieser Ausgabe eingeben, ohne Leerzeichen und Trennungen.

Abbildung 2: Komprimierte RAM-Inhalte wie das Dateisystem CRAMFS sind für Linux nichts neues, zum Stromsparen ist lediglich eine vorherige Konvertierung der Binärdaten erforderlich.
Video-RAM optimieren
Sie können nicht nur den Hauptspeicher Ihres Rechners optimieren, sondern auch das RAM Ihrer Grafikkarte – immerhin enthalten heutige Modelle mit 256 MByte Grafik-RAM über 13 Milliarden Transistoren, was einem Leckstrom von rund 13 A entspräche. Dabei ist der Grafik-Prozessor leistungsfähig genug, um die Konvertierung und Komprimierung ohne Hilfe der CPU durchzuführen. Leider legen weder Nvidia noch ATI die Treiber-Quellen offen, so dass Ihnen die Redaktion keine passenden Treiber anbieten kann.
Beim Thema Grafik gibt es noch eine weitere Stromsparmöglichkeit, die jedoch nur für Notebooks interessant ist: Die partielle Abschaltung des Displays und der Displaybeleuchtung. Je nach Notebook ist das Display mit zwei bis vier Leuchtstoffröhren ausgestattet, die eine wei§e Folie bestrahlen und damit die Bildschirmhelligkeit erhöhen.
Stromsparen mit TFT-Displays
Bei aktiven TFT-Displays (Thin Film Transistor), wo jedes einzelne Pixel von einem separaten Transistor zum Leuchten angeregt wird, ist dies jedoch nicht erforderlich. Hier können Sie gefahrlos die Hintergrundbeleuchtung des Displays abschalten und somit im mobilen Betrieb erheblich Strom sparen – etwa indem Sie den Sensor mechanisch blockieren, der dem Notebook ein geschlossenes Display signalisiert.
Wie der Name schon sagt, besteht ein TFT-Display mit einer Auflösung von 1280×1024 Pixeln aus rund 4 Millionen Transistoren (je 1,3 Millionen Pixel in den drei Grundfarben). Wenn Sie richtig Strom sparen möchte, sollten Sie auf ein spezielles KDE-Theme zurück greifen, dass Sie ebenfalls unter [3] finden: Es schaltet lediglich die Transistoren im Bereich von 100 Pixeln rund um den Mauspfeil ein, die damit erreichbaren Akkulaufzeiten der Notebooks machen die kleine Einschränkung in der Bedienbarkeit jedoch allemal wett.
Infos
[1] AMD Athlon 64 Processor Power and Thermal Data Sheet: http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/30430.pdf
[2] SRAM-Speicherzellen mit 2 pA Leckstrom: http://www.heise.de/newsticker/meldung/48275
[3] Optimierte Kernel und KDE-Notebook-Theme: http://www.linux-user.de/pub/listings/user/2005/04/stromsparen




