Warum verbrauchen arbeitende Prozessoren mehr Strom?

16

Früher, als ich anfing zu programmieren, verwendeten alle Prozessoren, soweit mir bekannt ist, eine festgelegte Menge an Strom. Es gab keinen Prozessor, der "untätig" war.

Heutzutage gibt es alle Arten von Technologien zur Reduzierung des Stromverbrauchs, wenn der Prozessor nicht sehr ausgelastet ist, hauptsächlich durch dynamische Reduzierung der Taktrate.

Meine Frage ist, warum Laufen mit einer niedrigeren Taktrate weniger Strom verbraucht.

Mein mentales Bild eines Prozessors ist eine Referenzspannung (z. B. 5 V), die eine binäre 1 darstellt, und 0 V, die 0 darstellt. Daher neige ich dazu, an eine konstante 5 V zu denken, die über den gesamten Chip angelegt wird, wobei die verschiedenen Logikgatter diese Spannung trennen Wenn "Aus", bedeutet dies, dass eine konstante Energiemenge verwendet wird. Die Geschwindigkeit, mit der diese Tore ein- und ausgeschaltet werden, scheint in keinem Verhältnis zur verwendeten Leistung zu stehen.

Ich habe keinen Zweifel, dass dies ein hoffnungslos naives Bild ist, aber ich bin kein Elektrotechniker. Kann jemand erklären, was mit der Frequenzskalierung wirklich los ist und wie sie Strom spart. Gibt es andere Möglichkeiten, wie ein Prozessor je nach Status mehr oder weniger Strom verbraucht? ZB Verbraucht es mehr Strom, wenn mehr Tore geöffnet sind?

Inwiefern unterscheiden sich mobile Prozessoren und Prozessoren mit geringem Stromverbrauch von ihren Desktop-Verwandten? Sind sie nur einfacher (weniger Transistoren?) Oder gibt es einen anderen grundsätzlichen Konstruktionsunterschied?


quelle
8
Sie irren sich, Prozessoren haben im Laufe der Zeit nie die gleiche Leistung verbraucht, sie war immer variabel. Vereinfachend kann man davon ausgehen, dass nur ein einziger Flip-Flop-Wert geschaltet wird. Je mehr Berechnungen pro Sekunde durchgeführt werden, desto mehr interne Register ändern ihre Werte, desto mehr Energie wird verbraucht.
2
Wenn ich mich richtig an meine Elektronik erinnere, ist der größte Teil der "verschwendeten" Energie (auch als "Wärme" bezeichnet) ein Leckstrom (auch als (kleine) Strommengen bezeichnet, bei denen kein Stromfluss stattfinden sollte). Das passiert mehr, wenn Sie a.) Eine höhere Spannung verwenden und b.) Bei höheren Frequenzen schalten. Die meisten modernen CPUs reduzieren sowohl die Spannung als auch die Frequenz in ihren Niedrigleistungszuständen (und selbst wenn sie nur einen dieser Zustände reduzieren, ist dies immer noch ein Gewinn).
3
@ SK-Logik: Viele historische Prozessoren verwenden die ECL-Logik, die unabhängig von der Taktrate ungefähr die gleiche Menge an Strom verbraucht. Seymour Cray hat den CDC 8600, den Cray-1, den Cray X-MP, den Cray Y-MP und den Cray T90 für die Verwendung von ECL entwickelt. Der Wikipedia- ECL-Logikartikel listet einige weitere von anderen Unternehmen auf. Wollen Sie damit sagen, dass diese Maschinen nie existierten, oder wollen Sie damit sagen, dass sie nicht als Prozessoren gelten?
Davidcary
Die Prozessoren sparen auch Strom, indem sie einen Halt-Befehl verwenden. Der Betriebssystemkern kann einen Timer einstellen, um den Prozessor aufzuwecken und diesen Befehl auszuführen, damit der Prozessor einschlafen kann.
Oskar Skog

Antworten:

24

Die Geschwindigkeit, mit der diese Tore ein- und ausgeschaltet werden, scheint in keinem Verhältnis zur verwendeten Leistung zu stehen.

Hier liegen Sie falsch. Grundsätzlich ist jedes Gate ein Kondensator mit einer unglaublich kleinen Kapazität. Durch das Ein- und Ausschalten durch "Anschließen" und "Abschalten" der Spannung wird eine unglaublich kleine elektrische Ladung in das oder aus dem Gate befördert - deshalb verhält es sich anders.

Und eine sich bewegende elektrische Ladung ist ein Strom, der Strom verbraucht. All diese winzigen Ströme von Milliarden von Toren, die milliardenfach pro Sekunde geschaltet werden, summieren sich ziemlich viel.

Michael Borgwardt
quelle
Genau das passiert im Speicher - DRAM-Speicher. Der Speicher des Prozessors (der Cache) verwendet einen SRAM, der nicht mit Kondensatoren implementiert ist ...
7
@ m3th0dman: Ich spreche nicht von Elementen, die Kondensatoren sein sollen. Jeder Transistor, jedes Element in der CPU hat eine Kapazität.
7

Wie der Kommentar von SK-logic zeigt, wird der größte Teil der Energie für das Umschalten von Flip-Flops und nicht für den Dauerzustand aufgewendet.

Zum dynamischen Reduzieren gibt es zwei Hauptfunktionen, die Sie für IIRC ausführen können.

  1. Wenn ganze Bereiche eines Chips nicht getaktet werden, können Sie möglicherweise die Stromversorgung für diese Bereiche vollständig ausschalten

  2. Der Clock Tree selbst ist einer der größten Stromabflüsse im System, da er der am schnellsten schaltende Teil eines Systems ist. Daher ist es wichtig, die Leistung im Uhrenbaum selbst zu reduzieren.

jk.
quelle
Was ist der Uhrenbaum?
Altar
2
@akaltar die Summe aller Zeilen, die das Taktsignal an alle Elemente des Prozessors verteilen, die mit der Uhr synchronisiert werden müssen.
Michael Borgwardt
6

Der Stromverbrauch einer elektronischen Schaltung besteht aus zwei Komponenten:

  • die Leckage, die mehr oder weniger unabhängig von der Frequenzkonstante ist und von der Technologie und der Arbeitsspannung abhängt;
  • die Schaltleistung, die von der Frequenz abhängt (dies ist auf das Laden und Entladen verschiedener Kapazitäten, Transistoren und Drähte zurückzuführen)

Um den Verbrauch zu senken, wenden Prozessorkonstrukteure verschiedene Techniken an:

  • Änderung der Frequenz in Abhängigkeit von der Last (dies wirkt sich nur auf die Schaltleistung aus)
  • Reduzieren der Leistung oder Abschalten von Teilen der Schaltkreise, wenn diese nicht benötigt werden

Diese Techniken haben zur Folge, dass Sie abhängig von Ihrer Last besser von der Leistungsaufnahme POV abhängen können, indem Sie entweder die Frequenz reduzieren oder einen "Sprint" mit voller Geschwindigkeit ausführen und dann eine Teilmenge der Schaltkreise ausschneiden.

Ein Programmierer
quelle
Es ist auch möglich, dass durch Frequenzreduzierung die Betriebsspannung reduziert werden kann (da die Transistoren dann etwas langsamer sind), um die Leckage zu verringern.
TEMLIB
0

Das Laufen mit einer niedrigeren Taktrate wirkt sich nicht auf die Energie aus, die zum Ausführen einer festen Aufgabe erforderlich ist. Es kann sogar zu einer Erhöhung des Energiebedarfs führen, wenn Sie die Leckage berücksichtigen und vollständig abschalten können.

Wo eine niedrigere Taktrate Energie spart, kann auch die Betriebsspannung gesenkt werden. Das Verringern der Spannung spart oft genug Energie, um zu kompensieren, dass sie länger aktiv bleiben muss.

Sean Houlihane
quelle
Ich stimme Sean nicht zu. Durch Verringern der Taktrate werden alle parasitären Schaltverluste in der gesamten Taktkette reduziert, die in einer typischen CPU massiv sind. Mein Atom-Netbook läuft mit 1 GHz. Wenn ich die CPU auf 500 MHz drücke, läuft es kühler und verbraucht sichtbar weniger Strom aus dem Netzteil. Dies wirkt sich auf die Aufgabe aus - es dauert doppelt so lange.
Rdtsc
2
@rdtsc Vorsicht jetzt. Sean schreibt Energie , nicht Macht .
Pipe
@rdtsc Du verwirrst Kraft und Energie. Eine bestimmte Aufgabe erster Ordnung erfordert eine feste Anzahl von Taktzyklen. Überlegen Sie, wie eine Batterie an den beiden verschiedenen Betriebspunkten auf Ihre Aufgabe reagiert.
Sean Houlihane
Ach ja Hier wird noch an der ersten Tasse Kaffee gearbeitet. :) Ich müsste es messen, aber ich denke, die verbrauchte Energie wird bei einer niedrigeren Taktrate tatsächlich etwas höher sein, da eine moderne CPU so viele periodische Ereignisse pro Sekunde verarbeiten muss. Es wird mehr davon für eine langsamere Uhr geben und mehr bedeutet eine längere Zeit bis zur Erledigung der Aufgabe.
Rdtsc
Hintergrundinformationen anandtech.com/show/9330/exynos-7420-deep-dive/6
Sean Houlihane