Warum brauchen CPUs so viel Strom?

37

Ich weiß, dass eine einfache CPU (wie Intel oder AMD) 45-140 W verbrauchen kann und dass viele CPUs mit 1,2 V, 1,25 V usw. arbeiten.

Unter der Annahme, dass eine CPU mit 1,25 V und einer TDP von 80 W betrieben wird, verbraucht sie 64 Ampere (viel Ampere).

  1. Warum benötigt eine CPU mehr als 1 A in ihrer Schaltung (unter der Annahme von FinFET-Transistoren)? Ich weiß, dass die CPU die meiste Zeit im Leerlauf ist und die 60 A alle "Impulse" sind, weil die CPU einen Takt hat, aber warum kann eine CPU nicht mit 1 V und 1 A betrieben werden?

  2. Ein kleiner und schneller FinFET-Transistor zum Beispiel: 14 nm bei 3,0 GHz benötigen wie viele Ampere (ungefähr)?

  3. Schaltet ein höherer Strom die Transistoren schneller ein und / oder aus?

Leonardo Bosquett
quelle
26
Moderne CPUs (von denen keine "einfach" ist) erfordern mehrere Spannungsschienen, die alle ihren eigenen Strombedarf haben. Ihre Frage macht viele Annahmen und hat viele falsche Aussagen. Sie müssen alle Leistungsanforderungen berücksichtigen und nicht nur die für eine einzelne Schiene.
Wossname
8
Setzen Sie auf eine moderne CPU einen FinFET-Transistor. Nicht jeder FET leitet Strom von Vdd nach Masse, aber dennoch werden 64 A über * eine sehr große Anzahl * dieser Schalt-FETs verteilt.
Glen_geek
9
@EricLippert "Es müsste 64 Ampere aus der Wand ziehen" - Ich habe den Verdacht, dass die CPU nicht mit 110 V betrieben wird.
Andrew Morton
6
Die eingesparte Menge ist Energie und im Durchschnitt auch Leistung. Wenn eine CPU 64 Watt verbraucht, muss das Netzteil mindestens 64 Watt aus dem Sockel verbrauchen. Das ist schon bei 110V <1A.
MSalters
6
@EricLippert Das Motherboard in Ihrem Computer enthält einen mehrphasigen DC / DC-Wandler, der die Versorgungsspannung (12 V bei einem Desktop, wahrscheinlich 12 bis 19 V bei einem Laptop) auf die Kernversorgungsspannung herunterdrückt. Dies erfolgt mit konstanter LEISTUNG, sodass der Ausgangsstrom das 10-20-fache des Eingangsstroms beträgt. Ganz zu schweigen davon, dass die 12-V-Versorgung in einem Desktop-Computer auch von einem Schaltnetzteil stammt, das ebenfalls mit konstanter Leistung umwandelt. Die CPU in Ihrem Computer verfügt wahrscheinlich über mindestens 100 Stromversorgungs- und Erdungspins, um den Strom zu verarbeiten.
alex.forencich

Antworten:

69
  1. CPUs sind in keiner Weise einfach. Weil sie einige Milliarden Transistoren haben, von denen jeder im Leerlauf einen geringen Verlust aufweist und beim Schalten Gate- und Verbindungskapazitäten in anderen Transistoren laden und entladen muss. Ja, jeder zieht einen kleinen Strom, aber wenn Sie diesen mit der Anzahl der Transistoren multiplizieren, erhalten Sie eine überraschend große Anzahl. 64A ist bereits ein Durchschnittsstrom ... beim Schalten können die Transistoren viel mehr als den Durchschnitt ziehen, und dies wird durch Überbrückungskondensatoren ausgeglichen. Denken Sie daran, dass Ihre 64-A-Zahl von der TDP aus rückwärts gearbeitet wurde und somit tatsächlich 64 A RMS ergibt. In vielen Zeiträumen kann dies zu erheblichen Abweichungen führen (Abweichungen während eines Taktzyklus, Abweichungen während verschiedener Vorgänge, Abweichungen zwischen den Ruhezuständen usw.). ). Ebenfalls, Möglicherweise müssen Sie keine CPU betreiben, die für einen Betrieb mit 3 GHz und 1,2 Volt und 64 Ampere bei 1 Volt und 1 Ampere ausgelegt ist. Möglicherweise nur mit 3 MHz. Obwohl Sie sich zu diesem Zeitpunkt Gedanken machen müssen, ob der Chip eine dynamische Logik mit einer minimalen Taktfrequenz verwendet, müssten Sie ihn möglicherweise mit einigen hundert MHz bis zu einem GHz betreiben und ihn regelmäßig in den Tiefschlaf versetzen, um den Durchschnitt zu ermitteln strom runter. Die Quintessenz ist diese Kraft = Leistung. Die Leistung der meisten modernen CPUs ist tatsächlich thermisch begrenzt. Vielleicht müssten Sie es mit ein paar hundert MHz bis zu einem GHz betreiben und regelmäßig in den Tiefschlaf schalten, um den Durchschnittsstrom zu senken. Die Quintessenz ist diese Kraft = Leistung. Die Leistung der meisten modernen CPUs ist tatsächlich thermisch begrenzt. Vielleicht müssten Sie es mit ein paar hundert MHz bis zu einem GHz betreiben und regelmäßig in den Tiefschlaf schalten, um den Durchschnittsstrom zu senken. Die Quintessenz ist diese Kraft = Leistung. Die Leistung der meisten modernen CPUs ist tatsächlich thermisch begrenzt.
  2. Dies ist relativ einfach zu berechnen - , wobei der Strom ist, die Lastkapazität ist, die Spannung ist, der Aktivitätsfaktor ist und die Schaltfrequenz ist. Ich werde sehen, ob ich die Ballpark-Nummern für die Gate-Kapazität eines FinFET erhalten und bearbeiten kann. I C v α fI=CvαfICvαf
  3. Art von. Je schneller die Gatekapazität geladen oder entladen wird, desto schneller schaltet der Transistor. Ein schnelleres Laden erfordert entweder eine kleinere Kapazität (bestimmt durch die Geometrie) oder einen größeren Strom (bestimmt durch den Verbindungswiderstand und die Versorgungsspannung). Wenn einzelne Transistoren schneller schalten, können sie häufiger schalten, was zu einer durchschnittlicheren Stromaufnahme (proportional zur Taktfrequenz) führt.

Edit: so, http://www.synopsys.com/community/universityprogram/documents/article-iitk/25nmtriplegatefinfetswithraisedsourcedrain.pdf hat eine Zahl für die Gate-Kapazität eines 25-nm-FinFET. Ich werde es nur 0,1 fF nennen, um die Dinge einfach zu halten. Anscheinend ändert sich dies mit der Vorspannung und mit der Transistorgröße (die Transistoren werden entsprechend ihrem Zweck in der Schaltung dimensioniert, nicht alle Transistoren werden gleich groß sein! Größere Transistoren sind "stärker", da sie mehr Strom schalten können. Sie haben aber auch eine höhere Gatekapazität und benötigen mehr Strom zum Ansteuern.

Wenn 1,25 Volt, 0,1 fF, 3 GHz und , ergibt sich ein . Multiplizieren Sie dies mit 1 Milliarde und Sie erhalten 375 A. Dies ist der erforderliche durchschnittliche Gate-Strom (Ladung pro Sekunde in die Gate-Kapazität), um 1 Milliarde dieser Transistoren bei 3 GHz zu schalten. Das zählt nicht "Durchschießen", was beim Umschalten in der CMOS-Logik auftritt. Es ist auch ein Durchschnitt, so dass der Momentanstrom stark variieren kann - denken Sie daran, wie sich die Stromaufnahme asymptotisch verringert, wenn sich eine RC-Schaltung auflädt. Bypass-Kondensatoren auf dem Substrat, dem Gehäuse und der Leiterplatte glätten diese Variation. Offensichtlich handelt es sich hier nur um eine Baseballfigur, aber es scheint die richtige Größenordnung zu sein. Dies berücksichtigt auch nicht den Leckstrom oder die Ladung, die in anderen Parasiten gespeichert sind (d. H 0,375 μ Aα=10.375μA

In den meisten Geräten ist viel kleiner als 1, da viele der Transistoren in jedem Taktzyklus im Leerlauf sind. Dies hängt von der Funktion der Transistoren ab. Zum Beispiel haben Transistoren im Taktverteilungsnetzwerk da sie bei jedem Taktzyklus zweimal schalten. Für so etwas wie einen Binärzähler hätte das LSB ein von 0,5, da es einmal pro Taktzyklus umschaltet, das nächste Bit hätte ein da es halb so oft umschaltet usw. Für so etwas wie einen Cache-Speicher jedochα = 1 α α = 0,25 α α = 0,000061 ααα=1αα=0.25αkönnte sehr klein sein. Nehmen Sie zum Beispiel einen 1 MB Cache. Ein 1 MB Cache-Speicher, der mit 6T-SRAM-Zellen aufgebaut ist, hat 48 Millionen Transistoren, um nur die Daten zu speichern. Es wird mehr für die Lese- und Schreiblogik, die Demultiplexer usw. geben. Jedoch würde nur eine Handvoll jemals einen gegebenen Taktzyklus einschalten. Angenommen, die Cache-Zeile ist 128 Byte, und bei jedem Zyklus wird eine neue Zeile geschrieben. Das sind 1024 Bits. Angenommen, der Zelleninhalt und die neuen Daten sind beide zufällig, wird erwartet, dass 512 Bits umgedreht werden. Das sind 3072 Transistoren von 48 Millionen oder . Beachten Sie, dass dies nur für das Speicherarray selbst gilt. Die Unterstützungsschaltung (Decoder, Lese- / Schreiblogik, Leseverstärker usw.) hat ein viel größeresα=0.000061α. Aus diesem Grund wird der Stromverbrauch im Cache-Speicher normalerweise von Leckströmen dominiert - das sind VIELE Leerlauftransistoren, die nur herumliegen und nicht schalten.

alex.forencich
quelle
4
1V 1A ist kein seltsames Ziel, ARM-CPUs werden häufig als mW / MHz bezeichnet. Zum Vergleich: Der gesamte Raspberry Pi A + verbraucht 1 Watt, einschließlich einer 700-MHz-CPU - viel mehr als die mageren 3-
MHz-
2
Es ist sinnvoller, von "MIPS pro Watt" zu sprechen, da der Arbeitsaufwand pro Taktzyklus sehr unterschiedlich ist.
pjc50
1
Nun, es hängt davon ab, wofür der Chip entwickelt wurde. Ein Chip mit einer TDP von 80 W, der für einen Betrieb mit 3 GHz und 1,2 Volt ausgelegt ist, kann möglicherweise mit 1 V und 1 A betrieben werden. Bei 1 V muss die Geschwindigkeit jedoch erheblich gesenkt werden, um 1 A zu erreichen muss die geschwindigkeit noch mehr senken. In diesem Fall werden Sie nicht annähernd 3 GHz erreichen. Ich habe keine Ahnung, was Sie tatsächlich erreichen könnten, da ich es selbst nicht ausprobiert habe. Vielleicht sind 3 MHz für einen i7 bei 1 V und 1A etwas pessimistisch. Wie Sie bereits erwähnt haben, ist es jetzt durchaus möglich, einen Chip für diese Leistungsstufe zu entwickeln.
alex.forencich
6
Sie sind nicht einfach. Tatsächlich sind sie eines der komplexesten Dinge, die wir je gebaut haben.
Joojaa
2
Moderne Intel / AMD-CPUs verwenden mindestens eine dynamische Logik , die bei zu geringer Taktung nicht funktioniert . Intel Skylake (zum Beispiel) hat einen minimalen effizienten Frequenz- / Spannungspunkt. Um noch niedrigere Leistungs- / Durchsatzniveaus für SoC zu erreichen, schaltet es einen Kern in einem variablen Arbeitszyklus (> = 800us bei vielleicht ~ 1 GHz (effizientestes f), Ruhezustand im Schlaf) in den und aus dem Schlaf. Sehen Sie sich Efraim Rotems IDF2015 Skylake Power-Mgmt-Vortrag an, etwa 53 Minuten später
Peter Cordes,
17

Laut Wikipedia verfügten die 2011 erschienenen Top-CPUs über etwa 0,5 bis 2,5 Milliarden Transistoren. Unter der Annahme, dass eine CPU mit 1 Milliarde Transistoren 64 A Strom verbraucht, beträgt der durchschnittliche Strom nur 64 nA pro Transistor. Bei Betriebsfrequenzen von mehreren GHz ist es eigentlich überraschend wenig.

Dmitry Grigoryev
quelle
Wird für eine höhere Betriebsfrequenz der CPU ein höherer Strom benötigt?
Lu Ka
2
Im Allgemeinen ist der Strom wobei fc die Taktfrequenz ist und k eine Konstante ist und V die Betriebsspannung ist und I0 der Leckstrom ist. k variiert je nachdem, wie viele Transistoren zu einem bestimmten Zeitpunkt schalten, sowie je nach Chipdesign. II0+kfCV2
Spehro Pefhany
4
Zu diesem Zeitpunkt können wir mehr Transistoren in eine CPU einbauen, als wir gleichzeitig verwenden können, ohne sie zu schmelzen. Zu jedem Zeitpunkt besteht ein großer Teil des Chips aus dunklem Silizium : Es ist nicht eingeschaltet, sondern wartet darauf, verwendet zu werden, während andere Teile des Chips (mit unterschiedlichen Spezialfunktionen) ausgeschaltet werden. ZB können die Vektor-Gleitkomma-Hardware, die Vektor-Ganzzahl-Multiplikatoren und die Vektor-Shuffle-Einheiten nicht alle auf einmal gesättigt werden, aber sie haben jeweils einen hohen Durchsatz, wenn sie alleine verwendet werden. Außerdem wechseln große Caches nicht viel.
Peter Cordes
1
Dies ist ein wichtiger Faktor, wenn CPUs immer spezialisiertere Hardware wie AES- und SHA-Kryptobefehle und Intels BMI2 (insbesondere PEXT / PDEP-Bit-Extract / Deposit ) erwerben . Dies hängt mit dem Transistorbudget zusammen, das einige Workloads beschleunigen kann, aber nicht eingeschaltet werden muss, wenn es nicht verwendet wird.
Peter Cordes