Warum brauchen CPUs so viel Strom?

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 arbeitet und eine TDP von 80 W hat, verbraucht sie 64 Ampere (viele 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 eine Uhr hat, aber warum kann eine CPU nicht mit 1 V und 1 A arbeiten?

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

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

Moderne CPUs (von denen keine „einfach“ ist) benötigen mehrere Spannungsschienen, die alle ihren eigenen Strombedarf haben. Ihre Frage macht viele Annahmen und enthält viele falsche Aussagen. Sie müssen alle Leistungsanforderungen berücksichtigen und nicht nur die für eine einzelne Schiene.
Zählen Sie mit einem FinFET-Transistor auf einer modernen CPU. Nicht jeder FET leitet Strom von Vdd nach Masse, aber trotzdem werden 64 A über * eine sehr große Anzahl * dieser Schalt-FETs verteilt.
In bestimmten Bereichen der CPU dominieren Leckströme/statische Ströme, wie in der 70-nm-Ära habe ich gesehen, dass 70 % des Stromverbrauchs des L1/L2-Cache als statisch angegeben wurden.
Wenn der Takt langsam und die CPU kleiner ist, kann sie mit 1 W oder sogar weniger arbeiten.
Der Gesamtstrom durch alle Teile eines Systems ist eine Konstante; Wenn eine CPU 64 Ampere vom Netzteil verbraucht, müsste sie 64 Ampere aus der Wand ziehen, aber mein Computer ist an einen Stromkreis angeschlossen, der durch einen 15-Ampere-Unterbrecher geschützt ist. Und meine Laptop-Akkus liefern auf keinen Fall 64 Ampere. Irgendetwas stimmt mit deiner Mathematik nicht. Schließen Sie ein Amperemeter an Ihren Computerstecker an und Sie werden bald seine Stromstärke kennen.
@EricLippert "es müsste 64 Ampere aus der Wand ziehen" - ich habe den Verdacht, dass die CPU nicht mit 110 V betrieben wird.
Die Erhaltungsgröße ist Energie und im Mittel auch Leistung. Wenn eine CPU 64 Watt zieht, dann muss das Netzteil mindestens 64 Watt aus der Steckdose ziehen. Das ist <1A selbst bei 110V.
@EricLippert Das Motherboard in Ihrem Computer enthält einen mehrphasigen DC / DC-Wandler, der die Versorgungsspannung (12 V bei einem Desktop, wahrscheinlich 12-19 V bei einem Laptop) auf die Kernversorgungsspannung heruntersetzt. Dies geschieht mit konstanter LEISTUNG, sodass der Ausgangsstrom das 10- bis 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 wandelt. Die CPU in Ihrem Computer hat wahrscheinlich mindestens 100 Strom- und Erdungsstifte, um den Strom zu bewältigen.
@EricLippert: Bedenken Sie Folgendes: Eine Gruppe von 10 Kondensatoren wird in Reihe geschaltet und mit einer Versorgung von> 100 V jeweils mit 1 A bis 10 V aufgeladen. Jetzt schalten Transistoren zwischen den Kondensatoren und entladen sich parallel, wobei jeder 1 A bei 10 V ergibt, für insgesamt 10 A bei 10 V. Die Entladezeit ist dann gleich der Ladezeit. Haben Sie einen zweiten Satz, der auflädt, während der erste entlädt, und umgekehrt. Die DC-DC-Wandlung ist mit vielen zusätzlichen Komplexitäten verbunden, aber dies ist das Grundkonzept.
@BenVoigt Das ist die Beschreibung eines Ladungspumpenspannungsteilers. Typische SMPS-Versorgungen, die für Computer verwendet werden, funktionieren völlig anders: AC-DC (im Versorgungsblock) verwenden Flyback-Transformatoren, und interne DC-DC-Wandlungen mit niedriger Spannung (auf dem Motherboard) verwenden Buck-Topologien (mit einer Induktivität). Ihre Beschreibung ist richtig, aber es ist nicht das, was hier tatsächlich verwendet wird.
@dim Sie haben ganz recht, aber ich bin nicht in der Lage, einen Abwärtswandler in dem begrenzten Raum zu beschreiben, der für Kommentare mit Begriffen zulässig ist, die jemand ohne einen EE-Abschluss verstehen würde.
@EricLippert Auch "Legen Sie ein Amperemeter an Ihren Computerstecker", ohne sorgfältig zu beschreiben, wie Sie ein angemessen bewertetes Messgerät verwenden, ist ein gefährlicher Vorschlag: Ein naiver Benutzer könnte das Amperemeter über die stromführenden und neutralen Anschlüsse des Netzsteckers führen zu einem nicht so fabelhaften Abenteuer zu einer Krankenhausunfall- und Notaufnahme.
@AndrewMorton: Es wäre sicherlich ratsam, ein für diese Aufgabe entwickeltes Amperemeter zu verwenden, ja! Jeff erklärt es hier: blog.codinghorror.com/why-estimate-when-you-can-measure
@EricLippert Das ist nicht richtig. Der Strom durch alle Teile einer Reihenschaltung ist gleich, aber die CPU ist nicht in Reihe mit der Wandversorgung. (Sie sagen auch " alle Teile eines Systems"; die Power-LED ist Teil des Systems, aber fließen 64 Ampere durch sie? Oder der CPU-Kühlkörper? Oder die kleine Schraube, die meine Grafikkarte hält?)
"Warum kann eine CPU nicht mit 1 V und 1 A arbeiten?" - Sie können! Eine CPU kann sogar mit einigen Volt und einigen Milliampere arbeiten! Aber nicht diese spezielle. Diese CPU ist auf Geschwindigkeit ausgelegt, nicht auf geringen Stromverbrauch.
@AndrewMorton So bauen Sie ein Shunt-Amperemeter-Widget (USA): Soweit ich mich erinnere, handelt es sich um 3 Fuß Draht Nr. 16, der zusammengefaltet (nicht gewickelt) ist und die weiße Seite einer Duplex-Steckdose mit abgebrochenem Ohr überbrückt. 12 Milliohm. 1000 W liest 0,1 AC Volt.

Antworten (2)

  1. CPUs sind keineswegs „einfach“. Weil sie einige Milliarden Transistoren haben, von denen jeder im Leerlauf ein kleines Leck hat und beim Schalten Gate- und Verbindungskapazitäten in anderen Transistoren laden und entladen muss. Ja, jeder zieht einen kleinen Strom, aber wenn Sie das mit der Anzahl der Transistoren multiplizieren, erhalten Sie eine überraschend große Anzahl. 64A ist bereits ein durchschnittlicher Strom ... beim Schalten können die Transistoren viel mehr als den Durchschnitt ziehen, was durch Bypass-Kondensatoren geglättet wird. Denken Sie daran, dass Ihre 64A-Zahl aus der Rückwärtsbewegung von der TDP stammt, was wirklich 64A RMS ergibt, und dass es auf vielen Zeitskalen erhebliche Abweichungen geben kann (Variation während eines Taktzyklus, Variation während verschiedener Operationen, Variation zwischen Schlafzuständen usw. ). Ebenfalls, Sie können möglicherweise mit einer CPU davonkommen, die für den Betrieb mit 3 GHz bei 1,2 Volt und 64 Ampere bei 1 Volt und 1 Ampere ausgelegt ist ... nur vielleicht bei 3 MHz. Obwohl Sie sich an diesem Punkt dann Gedanken darüber machen müssen, ob der Chip dynamische Logik mit einer minimalen Taktfrequenz verwendet, müssten Sie ihn möglicherweise mit einigen hundert MHz bis zu einem GHz betreiben und regelmäßig in den Tiefschlaf versetzen, um den Durchschnitt zu erhalten Strom runter. Unter dem Strich gilt: Leistung = Leistung. Die Leistung der meisten modernen CPUs ist tatsächlich thermisch begrenzt. Vielleicht müssten Sie es also mit einigen hundert MHz bis zu einem GHz betreiben und es regelmäßig in den Tiefschlaf versetzen, um den durchschnittlichen Strom zu senken. Unter dem Strich gilt: Leistung = Leistung. Die Leistung der meisten modernen CPUs ist tatsächlich thermisch begrenzt. Vielleicht müssten Sie es also mit einigen hundert MHz bis zu einem GHz betreiben und es regelmäßig in den Tiefschlaf versetzen, um den durchschnittlichen Strom zu senken. Unter dem Strich gilt: Leistung = Leistung. Die Leistung der meisten modernen CPUs ist tatsächlich thermisch begrenzt.
  2. Das ist relativ einfach zu berechnen - ich = C v a f , wo ich ist der Strom, C ist die Lastkapazität, v ist die Spannung, a ist der Aktivitätsfaktor, und f ist die Schaltfrequenz. Ich werde sehen, ob ich Ballpark-Zahlen für die Gate-Kapazität eines FinFET erhalten und bearbeiten kann.
  3. Art von. Je schneller die Gate-Kapazitä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 höheren durchschnittlichen Stromaufnahme führt (proportional zur Taktfrequenz).

Bearbeiten: 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 nenne es einfach 0,1 fF, um die Dinge einfach zu halten. Anscheinend variiert es mit der Vorspannung und es wird sicherlich mit der Transistorgröße variieren (Transistoren sind entsprechend ihrem Zweck in der Schaltung bemessen, nicht alle Transistoren haben die gleiche Größe! Größere Transistoren sind "stärker", da sie mehr Strom schalten können, aber sie haben auch eine höhere Gate-Kapazität und benötigen mehr Strom zum Treiben).

Einstecken von 1,25 Volt, 0,1 fF, 3 GHz und a = 1 , Das Ergebnis ist 0,375 μ EIN . Multiplizieren Sie das mit 1 Milliarde und Sie erhalten 375 A. Das 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", das beim Umschalten in der CMOS-Logik auftritt. Es ist auch ein Durchschnitt, daher kann der Momentanstrom stark variieren - denken Sie daran, wie die Stromaufnahme asymptotisch abnimmt, wenn sich eine RC-Schaltung auflädt. Bypass-Kondensatoren auf dem Substrat, dem Gehäuse und der Leiterplatte glätten diese Schwankungen. Offensichtlich ist dies nur eine ungefähre Zahl, aber es scheint die richtige Größenordnung zu sein. Dies berücksichtigt auch nicht Leckstrom oder Ladung, die in anderen Parasiten (z. B. Verdrahtung) gespeichert sind.

Bei den meisten Geräten a wird viel kleiner als 1 sein, da viele der Transistoren bei jedem Taktzyklus im Leerlauf sind. Dies hängt von der Funktion der Transistoren ab. Beispielsweise werden Transistoren im Taktverteilungsnetz haben a = 1 da sie in jedem Taktzyklus zweimal schalten. Für so etwas wie einen Binärzähler hätte das LSB a von 0,5, da es einmal pro Taktzyklus schaltet, das nächste Bit hätte a = 0,25 da es halb so oft schaltet usw. Für so etwas wie einen Cache-Speicher a 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, nur um die Daten zu speichern. Es wird mehr für die Lese- und Schreiblogik, Demultiplexer usw. haben. Allerdings würde nur eine Handvoll jemals einen bestimmten Taktzyklus einschalten. Nehmen wir an, die Cache-Zeile ist 128 Byte lang und bei jedem Zyklus wird eine neue Zeile geschrieben. Das sind 1024 Bit. Unter der Annahme, dass sowohl der Zelleninhalt als auch die neuen Daten zufällig sind, wird erwartet, dass 512 Bits umgedreht werden. Das sind 3072 Transistoren von 48 Millionen, oder a = 0,000061 . Beachten Sie, dass dies nur für das Speicherarray selbst gilt; Die Unterstützungsschaltung (Decoder, Lese-/Schreiblogik, Leseverstärker usw.) wird viel größer sein a . Aus diesem Grund wird der Stromverbrauch des Cache-Speichers normalerweise vom Leckstrom dominiert - das sind viele Transistoren im Leerlauf, die nur herumsitzen und lecken, anstatt zu schalten.

1V 1A ist kein seltsames Ziel, ARM-CPUs werden häufig als mW/MHz angegeben. Zum Vergleich: Der gesamte Raspberry Pi A+ verbraucht 1 Watt, einschließlich einer 700-MHz-CPU – viel mehr als die mageren 3 MHz vermuten lassen
Es ist sinnvoller, sich auf „MIPS pro Watt“ zu beziehen, da die Menge an Arbeit, die pro Taktzyklus geleistet wird, stark variiert.
Nun, es hängt davon ab, wofür der Chip ausgelegt ist. Ein Chip mit einer TDP von 80 W, der für 3 GHz bei 1,2 Volt ausgelegt ist, könnte vielleicht mit 1 V und 1 A betrieben werden ... aber bei 1 V müssen Sie die Geschwindigkeit erheblich verringern und 1 A ziehen Sie Ich werde die Geschwindigkeit noch weiter reduzieren müssen. In diesem Fall werden Sie nicht annähernd 3 GHz erreichen. Ich habe jedoch 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 1 A etwas pessimistisch. Wie Sie bereits erwähnt haben, ist es sicherlich möglich, einen Chip zu entwickeln, der mit dieser Leistung betrieben werden kann.
Sie sind nicht einfach. Tatsächlich sind sie eines der komplexesten Dinge, die wir je gebaut haben.
Moderne Intel/AMD-CPUs verwenden zumindest eine gewisse dynamische Logik , die tatsächlich nicht funktionieren würde, wenn sie zu niedrig getaktet wäre . Intel Skylake (zum Beispiel) hat einen minimalen effizienten Frequenz-/Spannungspunkt. Um noch niedrigere Leistungs-/Durchsatzwerte für SoC zu erreichen, schaltet es einen Kern mit einem variablen Tastverhältnis (> = 800 us bei vielleicht ~ 1 GHz (am effizientesten f), Ruhezustand) in den und aus dem Ruhezustand. Siehe IDF2015 Skylake power-mgmt talk von Efraim Rotem, ca. 53 Minuten später
Ja, das ist auch ein guter Punkt. Modernes CMOS ist ziemlich wählerisch!
@alex.forencich Eine kurze Frage: Die vom Controller-Hersteller empfohlenen Entkopplungskondensatoren. Sind sie für die höchste empfohlene Reglerfrequenz ausgelegt? Da die Geschwindigkeit des Controllers variiert werden könnte, muss dies berücksichtigt werden?
Die Umgehung muss den gesamten Frequenzbereich berücksichtigen. Nicht nur die Betriebsfrequenz direkt, sondern auch die kurzen Impulse, die sogar innerhalb von Taktzyklen gezogen werden. Im Allgemeinen werden mehrere verschiedene Umgehungstechniken verwendet – Umgehung auf dem Chip selbst, Umgehung auf dem Gehäuse, Umgehung auf der Platine mit Ebenen und Umgehung auf der Platine mit Kappen. Der MFR ist für alles auf dem Chip und der Verpackung verantwortlich und sollte Richtlinien dafür haben, was auf der Platine erforderlich ist.

Laut Wikipedia hatten die im Jahr 2011 veröffentlichten Top-CPUs 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. In Anbetracht von Betriebsfrequenzen von mehreren GHz ist das eigentlich erstaunlich wenig.

Wird für eine höhere Arbeitsfrequenz der CPU ein höherer Strom benötigt?
Allgemein aktuell ich ich 0 + k f C v 2 wobei fc die Taktfrequenz und k eine Konstante und V die Betriebsspannung und I0 der Leckstrom ist. k hängt davon ab, wie viele Transistoren zu einem bestimmten Zeitpunkt schalten, sowie vom Chipdesign.
An diesem Punkt können wir mehr Transistoren auf eine CPU setzen, als wir gleichzeitig verwenden können, ohne sie zu schmelzen. Ein großer Teil des Chips ist also zu jeder Zeit dunkles Silizium : nicht eingeschaltet, sondern dort sitzend und darauf wartend, verwendet zu werden, während andere Teile des Chips (mit anderen spezialisierten Funktionen) ausgeschaltet sind. zB können die Vektor-Gleitkomma-Hardware, die Vektor-Integer-Multiplikatoren und die Vektor-Shuffle-Einheiten nicht alle gleichzeitig gesättigt werden, aber sie haben jeweils einen hohen Durchsatz, wenn sie alleine verwendet werden. Außerdem wechseln große Caches nicht viel.
Dies ist ein wichtiger Faktor dafür, dass CPUs immer mehr spezialisierte Hardware erhalten, wie AES- und SHA-Kryptoanweisungen und Intels BMI2 (insbesondere PEXT / PDEP-Bit-Extract/Deposit ). Etwas, das mit dem Transistorbudget zu tun hat, das einige Arbeitslasten beschleunigen kann, aber nicht eingeschaltet werden muss, wenn es nicht verwendet wird.