Grundsätzlich hat die Höhe der Taktfrequenz (f) nach der folgenden Formel einen maßgeblichen Einfluss auf den Stromverbrauch, denn sie ist proportional zur dynamischen Leitungsaufnahme: Pdyn = f × CL × V2CC Außerdem ist anhand der Formel zu erkennen, dass die Leistungsaufnahme quadratisch von der Versorgungsspannung (V cc ) abhängt, was deshalb noch separat zu betrachten ist. Beim Raspberry Pi [1] gibt es drei entscheidende Taktfrequenzen: die des ARM-Prozessorkerns (CPU), die das Grafikprozessors (GPU) und die des Arbeitsspeichers (RAM), die sich allesamt aus einem Quarzoszillator von 19,2 MHz ableiten, der sich auf der Platinenunterseite befindet. Die Veränderung der Frequenzen ist sehr einfach mit einem Editor in der Datei /boot/config.txt (am Ende der Datei, gekennzeichnet durch _freq ) durchführbar. Nach jeder Änderung ist die Konfigurationsdatei zu speichern und ein Neuboot auszuführen. Für den Geschwindigkeitstest des Systems wurden die zum Booten benötigte Zeit und die Laufzeit bei verschiedenen Taktfrequenzen und Spannungen eines einfachen C-Programms gemessen, welches die Berechnung von Primzahlen ausführt. Der ARM-Prozessor arbeitet standardmäßig mit 700 MHz. Durch Über- und Untertakten sind Frequenzen im Bereich von 40 MHz bis 1.000 MHz möglich. Eine Übertaktung auf über 1.000 MHz ist theoretisch zwar möglich, jedoch nicht empfehlenswert, weil dadurch die Garantie verfällt, die Lebensdauer des Chips reduziert wird und das System im Regelfall auch nicht mehr stabil läuft. Die Minimalfrequenz von 40 MHz ist für die Systemstabilität ebenfalls als kritisch zu betrachten, weshalb die CPU-Frequenz etwa zwischen 200 und 900 MHz eingestellt werden sollte (siehe hierzu auch Bild 2).
Anhand der Messwerte in Bild 2 ist zu erkennen, dass eine Verringerung der CPU-Frequenz auf 400 MHz sinnvoll sein kann, wenn eine Einsparung von 2,3 mA gewünscht ist. Bei geringeren Frequenzen steigt die Bootzeit stark an. Die GPU-Frequenz beträgt laut Voreinstellung 250 MHz und kann bis auf maximal 500 MHz festgelegt werden. Die GPU-Frequenz gpu_freq (GPU Core Frequency) setzt sich aus vier verschiedenen „GPU-Teilfrequenzen“ zusammen, die auch einzeln konfiguriert werden können, wozu die Zeile in der Konfigurationsdatei mit der Angabe gpu_freq auszukommentieren (#-Präfix) und durch die Angaben core_freq, isp_freq, h264_freq und v3d_freq zu ersetzen ist. Durch eine Reduzierung dieser Frequenzen ergibt sich eine Reduzierung der Stromaufnahme. Weil die Performance der GPU für Embedded-Applikationen üblicherweise nicht von Bedeutung ist, ist hierfür lediglich die Minimalfrequenz zu ermitteln, mit der das System noch stabil funktioniert. Ein minimaler Wert von 160 MHz ergibt sich für die GPU-Frequenz als praktikable Lösung, denn eine weitere Reduzierung führt automatisch dazu, dass wieder die Default-Werte aktiviert werden. Bei einer Einstellung von 160 MHz sowie jeweils 40 MHz für die vier GPU-Teilfrequenzen ergibt sich eine Stromersparnis von 15,5 mA, was gegenüber einer Reduzierung der CPU- und auch der RAM-Frequenz (sdram_freq) zu einer ganz beachtlichen Verringerung der Stromaufnahme führt. Die Einstellung sdram_freq beträgt üblicherweise 400 MHz, und es ist zu beobachten, dass eine Verringerung unter 300 MHz nicht zu einer Reduzierung, sondern zu einer erhöhten Stromaufnahme führt und die Stabilität des Systems nicht mehr gewährleistet ist. Bei einer Einstellung von sdram_freq = 300 (MHz) scheint das Optimum zu liegen, was ohne merkliche Leitungseinbußen eine Stromreduzierung von 2,5 mA zur Folge hat.
Die optimale Spannungsversorgung
Die Spannungsversorgung für das Raspberry Pi Board wird von einem separaten Steckernetzteil mit Micro-USB-Anschlusskabel zur Verfügung gestellt. Aus den hiermit generierten 5 V werden auf der Platine drei verschiedene Spannungen für die einzelnen Bauelemente mit Hilfe von entsprechenden Spannungsreglern (3,3 V und 2,5 V und 1,8 V) erzeugt (Bild 3).
Die Spannung, die dem Prozessor und der GPU intern zur Verfügung steht, wird chipintern erzeugt und beträgt zunächst 1,2 V. In der Konfigurationsdatei lassen sich mit der Option over_voltage Spannungen von 0,8 bis 1,4 V einstellen. Der jeweilige Wert ist eine Ganzzahl zwischen minimal -16 und maximal 8. Die Schrittweite beträgt damit 0,025 V, so dass eine recht granulare Festlegung möglich ist. In Bild 4 ist die Stromaufnahme bei verschiedenen Unterspannungen zu erkennen. Es ist ersichtlich, dass sich die Stromaufnahme des Systems ohne negative Beeinflussung der Boot-Zeit auf 125 mA reduzieren lässt, was im Vergleich zu den gezeigten Taktveränderungen einer verhältnismäßig hohen Einsparung (ca. 9 mA) entspricht, die sich zudem einfach festlegen lässt. Allerdings fällt sie nicht so hoch aus, wie es die erwähnte Proportionalität zwischen Leistungsaufnahme und (siehe obige Formel) Versorgungsspannung erwarten lässt. Durch die Kombination der erläuterten Takt- und Spannungsanpassungen bei einem Raspberry Pi Modell A und dem Betriebssystem Pidora ergibt sich eine Reduzierung des Stromes im Idle-Modus auf 109 mA. Es ist allerdings notwendig, eine gewisse Sicherheitsreserve mit einzukalkulieren, damit das System weiterhin stabil und zuverlässig ohne störende Bootverzögerungen funktioniert, was dann zu den „sicheren Werten“ in Tabelle 2 führt.