Home / LinuxUser / 2005 / 04 / Stromsparen extrem mit der LIrPA-Kompression

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Auf Sparflamme

Stromsparen extrem mit der LIrPA-Kompression

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zum Autor

Mirko Dölle

Redakteur für Linux bei c't, Heise Zeitschriften Verlag; ehemals Competence Center Hardware/Linux-Magazin, Linux New Media AG


Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...