Stromverbrauch und Frequenz

Ich mache mit dem Raspberry Pi ein kleines, mobiles Gerät, das von Batterien abhängt, daher ist der Stromverbrauch ein Problem. Ich habe "arm_freq_min" (unsicher, ob Takt- oder Befehlszyklusfrequenz) um etwa den Faktor 10 auf viel niedriger als die Standardfrequenz skaliert. Das habe ich gehört Leistung F v 2 + P B A S e , aber wann bricht diese Linearität zwischen Leistung und Frequenz zusammen?

Als Referenz, wo haben Sie diese Formel gefunden?
Ich habe es gerade von einem Freund gehört, aber es ist auf dieser Wikipedia-Seite: en.wikipedia.org/wiki/CPU_power_dissipation

Antworten (1)

Beachten Sie, dass hier zwei Einheiten beteiligt sind:

  • Energie (gemessen in Wattstunden) – in den Batterien ist nur eine bestimmte Energiemenge gespeichert – und
  • Leistung (Verbrauch) (gemessen in Watt) – die Menge an Energie , die in einem bestimmten Zeitintervall „verbraucht“ wird

Der Gesamtstrombedarf einer CPU wird im Wesentlichen von folgenden Anteilen beeinflusst:

  1. Versorgungsspannung. Je höher die Versorgungsspannung ist, desto größer sind die Ströme, die durch die Transistoren im Inneren des Chips fließen.
  2. 'Betriebliche' Taktfrequenz der CPU und/oder ihrer Submodule. Damit meine ich, dass sich die Taktfrequenz natürlich nur dann auf den Verbrauch auswirkt, wenn die Uhr tatsächlich läuft und das jeweilige Submodul der CPU auch getaktet ist und läuft.

Grundsätzlich verbraucht jeder "Schalter" (Transistor) in einer CPU bei jedem Schalten (bei einer bestimmten Versorgungsspannung) eine bestimmte, konstante Energiemenge . Je höher die Taktfrequenz ist, desto mehr „Schalten“ kann pro Zeiteinheit erfolgen . Mehr "Schalten" bedeutet auch, dass mehr Berechnungen pro Zeiteinheit durchgeführt werden können . Daher verbraucht die Durchführung einer bestimmten Berechnung unabhängig von der Frequenz der Uhr immer die gleiche Energiemenge: Doppelte Frequenz = doppelter Stromverbrauch für die Hälfte der Zeit.

Die Frage ist also eigentlich: Was bestimmt den Stromverbrauch, wenn gerade keine Berechnung läuft?

Die meisten CPUs verfügen über Stromsparfunktionen, die es ihnen ermöglichen, den Betrieb (von Submodulen) für einige Zeit vollständig einzustellen. Der CPU-Kern selbst, der Befehlsabruf, Dekodierung usw. durchführt. kann vollständig angehalten werden, wenn nichts zu tun ist, wodurch der Verbrauch dieses Teils im Wesentlichen um einige Größenordnungen reduziert wird.

Theoretisch kann der Verbrauch einer CPU in Zeiten, in denen sie nur da sitzt und darauf wartet, „etwas“ zu tun, auf fast null reduziert werden. Dies ist vor allem dann der Fall, wenn die CPU auf Daten von anderen Komponenten wie der SD-Karte warten muss, die die Daten nicht so schnell liefern können, wie die CPU sie verarbeiten könnte.
Hier kommen die Software, das Betriebssystem und die Anwendungen ins Spiel.

Das Betriebssystem sollte (und tut es normalerweise) die CPU "pausieren", wenn derzeit keine Aufgabe bereit ist, Berechnungen durchzuführen. Wie konsequent dies geschieht, unterliegt einigen unvermeidlichen Kompromissen, die beim Erstellen eines Betriebssystems erforderlich sind.

Außerdem müssen die Anwendungen (Tasks) mit dem Betriebssystem kooperieren, damit es den Energiesparmodus aktivieren kann. "Beschäftigtes Warten" in einer Schleife in einer Anwendung verbraucht zwar im Grunde nichts Nützliches, verbraucht jedoch erhebliche Mengen an Strom (und Energie), und das Betriebssystem hat keine Möglichkeit zu erkennen, dass es tatsächlich genauso gut die CPU anhalten könnte .

Allerdings sollte klar sein, dass die Grenzen der Taktfrequenz, die man konfigurieren kann, niemals garantiert irgendwelche Auswirkungen auf die eine oder andere Weise haben. - Genauso wie ein Cache-Speicher die Dinge nicht garantiert beschleunigt. In der Praxis tut es das aber meistens.

Daher ist der Gesamtenergieverbrauch (für eine gegebene Aufgabe) theoretisch unbeeinflusst von der Frequenz. Der Spitzenleistungsbedarf ist jedoch linear von der Frequenz abhängig. (Denken Sie daran, dass jedes "Schalten" die gleiche Energiemenge verbraucht ) .

In der Praxis kann Ihr Kilometerstand teilweise aufgrund von Kompromissen in der Software variieren. Vor allem dann, wenn eine dynamische, bedarfsabhängige Taktskalierung durchgeführt wird, wie es normalerweise vom Betriebssystem auf dem „RPi“ durchgeführt wird.

Theoretisch ist also die Beziehung zwischen Leistungsbedarf und Frequenz über alle Frequenzen hinweg rein linear. In der Praxis kann man durchaus davon ausgehen, dass bei niedrigeren Taktraten Energie gespart wird, aber garantiert ist das nicht und in einem komplexen System aus Hard- und Software wahrscheinlich nicht einmal annähernd linear.