Vraag:
Heeft de snelheid van een berekening in een CPU invloed op de gegenereerde warmte?
user3629081
2018-05-10 00:38:49 UTC
view on stackexchange narkive permalink

Neem als voorbeeld een CPU die zijn kloksnelheid kan veranderen, zoals een moderne computer-CPU (Intel, AMD, wat dan ook).Wanneer het een bepaalde berekening uitvoert met een bepaalde kloksnelheid, genereert het dan dezelfde hoeveelheid warmte als wanneer het dezelfde berekening uitvoert met een lagere kloksnelheid?Ik weet dat warmteafvoer en warmteopbouw verschillende problemen zijn, dus laten we het maar hebben over de gegenereerde ruwe warmte.

Een berekening gemaakt met een hogere snelheid duurt korter.
In een computer die ideaal is in de zin van [Landauer] (https://en.wikipedia.org/wiki/Landauer%27s_principle), denk ik dat de berekening dezelfde hoeveelheid warmte-energie zou opleveren.Maar in echte computers zal het waarschijnlijk verschillen.Vooral omdat de hoeveelheid warmte die al is gegenereerd en nog niet is gedissipeerd (d.w.z. de temperatuur van de halfgeleider) de eigenschappen ervan gaat beïnvloeden en dus de warmte die deze genereert.
Natuurlijk zal dat zo zijn, ik heb een aantal FPGA-ontwerpen ontworpen en we hadden een laag stroomverbruik nodig.Daarom hebben we een 10 kHz-klokbron gebruikt in plaats van de 1 MHz-bron, omdat we niet zoveel rekenkracht nodig hadden.
Het dynamische stroomverbruik is evenredig met het kwadraat van de klokfrequentie in synchrone ckts.Dus de warmte moet ook toenemen.
@Felthry Dat geldt voor het uitvoeren van dezelfde berekening (want dat is precies waar het OP om vroeg).Natuurlijk kan de snellere CPU aanvullende berekeningen uitvoeren in een bepaald vast tijdsbestek en daardoor in het algemeen meer warmte creëren
Het dynamische stroomverbruik van @MITURAJ, is evenredig met de kloksnelheid.Niet kwadraat van kloksnelheid.Evenredig met het kwadraat van de spanning.
ja rechts ... hersenroest: D
Vijf antwoorden:
anrieff
2018-05-10 01:11:24 UTC
view on stackexchange narkive permalink

Houd naast de kloksnelheid in gedachten dat in een echte "grote" CPU (een met caches, een MMU, TLB's, uitvoering met pijplijn, SIMD, enz.) een andere belangrijke factor is hoeveel warmte wordt gegenereerd, hoe goed de instructiestroom maakt gebruik van de beschikbare CPU-bronnen. Als je een programma draait dat geheugenintensief is, zou de CPU meestal gewoon honger hebben naar gegevens en niets doen, dus de geproduceerde warmte zou relatief laag zijn. Een puur rekencode met strakke lussen zou meer opwarmen. Er zou nog meer warmte kunnen worden gegenereerd met strak geoptimaliseerde code die bijna geen vertakkingsfouten oplevert, de SIMD-eenheden intensief gebruikt, optimaal gebruik maakt van de caches, enzovoort.

Er zijn programma's die speciaal zijn ontworpen om de CPU in deze modus te laten werken, waarbij de nadruk zoveel mogelijk wordt gelegd, aangezien Prime95 een prominent voorbeeld is voor de pc.

Als een pc Prime95 al draait op alle beschikbare CPU-cores en je tegelijkertijd een andere CPU-intensieve toepassing start (bijvoorbeeld 3D-rendering), zou je merken dat de CPU afkoelt . Dit komt omdat het de zeer zware Prime95-code (die "alle transistors verlicht ) moet timeshare met de relatief minder gevraagde renderingcode (die waarschijnlijk veel cache-missers en vertakkingsfouten bevat - die laten de CPU een tijdje stoppen en afkoelen).

Een ander ding waar je rekening mee moet houden, is dat elke CPU meestal een tabel heeft met toegestane kloksnelheden en kernspanningen die bij elke snelheid horen. Lagere klokken worden ook gekoppeld aan een lager voltage, aangezien de fabrikant heeft vastgesteld dat de CPU stabiel zal zijn op dat voltage. Het stroomverbruik varieert ruwweg lineair met de kloksnelheid, maar kwadratisch met de spanning.

Vermogen varieert kwadratisch versus spanning * voor een gegeven kloksnelheid *.Meestal gebruik je de spanning om de kloksnelheid lineair te variëren.Als resultaat is het vermogen * kubiek * versus spanning, terwijl de kloksnelheid lineair is.Het stroomverbruik is dus kwadratisch versus kloksnelheid.
SIMD kan zo veel warmte genereren dat sommige CPU's oververhit raken bij intensief gebruik van AVX512.+1 om erop te wijzen dat de spanningsstijging ook relevant is.
@MooseBoys, waar, heel goed punt.Maar het is de moeite waard erop te wijzen dat in werkelijkheid, als een full-speed CPU Vcore = 1,2 V heeft, halvering van de kloksnelheid geen Vcore = 0,6 zou toestaan, het gewoon niet zal werken :)
@anreiff Ik herinner het me misschien verkeerd, maar ik denk dat sommige moderne Intel-chips helemaal naar beneden zullen gaan naar 0,8V of zo als ze inactief zijn.Ze zijn op dat moment echter slechts op ~ 700 MHz en de cache is waarschijnlijk uitgeschakeld.
Het punt is dat ze niet in de buurt van 0V komen, zoals je zou verwachten als de kloksnelheid van de CPU en Vcore proportioneel waren.Het lijkt meer op 3.5GHz@1.2V en 0.7GHz@0.8V.De snelheidsvermindering heeft meer effect op de vermogensdissipatie dan de spanning, zelfs als de eerste het "slechts" lineair beïnvloedt.
Eenvoudige benaderingen zijn alleen geldig in de buurt van typische bedrijfswaarden.Te hoog of te laag gaan, secundaire effecten zoals lekstroom worden relevant.
Tony Stewart Sunnyskyguy EE75
2018-05-10 00:49:08 UTC
view on stackexchange narkive permalink

Het opgenomen vermogen is evenredig met de overgangssnelheid van de klok en de geleidingsverliezen bij het schakelen van die effectieve condensatorpoorten.De temperatuurstijging is echter evenredig met het opgenomen vermogen maal de effectieve thermische weerstand, in graden C per watt en is dus onafhankelijk van de energie, of kan liever koeler of heter worden, afhankelijk van het stroomverbruik, en dat vermogen niet over een langere periode spreiden.Er kan een formule zijn die laat zien dat temperatuurstijging met kloksnelheid een fractioneel vermogen van meer dan één is.

user4574
2018-05-10 04:41:02 UTC
view on stackexchange narkive permalink
  • Het wattage zal lager zijn bij de lagere werkfrequentie.

  • Bij dezelfde kernspanning zou de totale energie hoger zijn bij de lagere klokfrequentie.

  • Maar als de kernspanning met de frequentie wordt verlaagd, kan de totale energie minder zijn.

  • Voor algoritmen die het grootste deel van hun tijd besteden aan het wachten op I / O-bewerkingen, zal de uitvoeringstijd ongeveer constant zijn, ongeacht de kernklokfrequentie. Daarom zal de totale energie die nodig is voor de berekening evenredig met de klokfrequentie stijgen.


    Het stroomverbruik van een CPU bestaat uit twee delen.

1) Statische stroomafname (I_static). Voor een bepaalde voedingsspanning en temperatuur is deze stroomopname constant, ongeacht wat de CPU doet.

Een CPU die is gemaakt met CMOS-technologie bestaat uit duizenden of miljoenen MOSFET-transistors. Statische stroomafname is voornamelijk te wijten aan de gecombineerde uit-toestand lekstroom van miljoenen MOSFET-transistors.

  • Statische stroomopname neemt gewoonlijk toe naarmate de voedingsspanning toeneemt.

  • Statische stroomopname neemt gewoonlijk toe naarmate de CPU-temperatuur stijgt.

  • De statische stroomafname is voor veel apparaten veel kleiner dan de dynamische stroomafname.

2) Dynamische stroomafname. Voor een processor die is geconstrueerd met behulp van CMOS-processen, treedt de dynamische stroom op wanneer transistors schakelen tussen aan / uit-toestanden.

  • Voor een gespecificeerde voedingsspanning is de dynamische stroomopname meestal recht evenredig met de frequentie.

  • Dynamisch stroomverbruik neemt toe naarmate de voedingsspanning toeneemt.

De reden is als volgt. Elke MOSFET-transistor in de CPU heeft een bepaalde capaciteit die eraan is gekoppeld. Elke keer dat een MOSFET schakelt; een lading Q = C * V is nodig om die capaciteit op te laden / ontladen.

De dynamische stroomafname voor elke transistor is I_dynamic = C * V * f.

Ongeacht de frequentie waarmee de instructies worden uitgevoerd, verbruikt een bepaalde reeks bewerkingen op een bepaalde CPU (uitgaande van identiek gedrag van de cache en het geheugen) een bepaalde hoeveelheid totale lading (Q_program) als gevolg van dynamische stroomafname, ongeacht van de frequentie waarmee de instructies worden uitgevoerd.

Maar als de instructies langzamer worden uitgevoerd, zal de totale lading als gevolg van statische stroomafname hoger zijn omdat er meer tijd is verstreken.

Wiskundig zou men kunnen schrijven ...

W = (I_dynamic + I_static) * V_supply

E = W * time = Q_program * V_supply + I_static * V_supply * tijd

We kunnen zien dat naarmate de klokfrequentie 0 nadert, het wattage een vaste waarde nadert, maar de energie die nodig is om het programma te berekenen, bijna oneindig nadert.

Dus als (op basis van de capaciteiten van de CPU-transistors) Q_program is vastgelegd voor een bepaalde voedingsspanning en een reeks bewerkingen, hoe kunnen moderne CPU's dan stroom besparen door hun klokfrequentie te verlagen? Het antwoord is dat de meeste moderne CPU's ofwel aan boord (of in een bijbehorende chip) een instelbare kernspanningsregelaar hebben. Als ze hun klokfrequentie verlagen, kunnen ze ook hun kernspanning verlagen. Q_program (en E_program) zakt dan proportioneel met de voedingsspanning.

Merk op dat de CPU de lagere spanning bij de hogere frequenties niet kan gebruiken, omdat bij lagere spanningen de transistorschakeltijd toeneemt.

Wattage is evenredig met zowel de spanning (in het kwadraat) als het stroomverbruik. Dus als de spanning gelijktijdig met de frequentie daalt, daalt het wattage met de kubus van de frequentie.

TopCat
2018-05-10 13:06:49 UTC
view on stackexchange narkive permalink

Transistors gebruiken energie, die wordt verspild als warmte.Er zijn twee mechanismen, statische en dynamische energie.De statische energie is constant en de dynamische (schakel) energie treedt op wanneer deze van toestand verandert (0-> 1 of 1-> 0). Dynamische (schakel) energie is meestal de grotere warmtebron dan de statische.De berekening die u wilt uitvoeren, duurt hetzelfde aantal klokcycli en zorgt ervoor dat hetzelfde aantal transistorbits omdraait, ongeacht de kloksnelheid.Daarom is de dynamische warmte in beide situaties gelijk.De statische warmte is ... statisch. Dus samengevat, ervan uitgaande dat de CPU ALLEEN deze berekening uitvoert, is het energie- / warmteverbruik exact hetzelfde als gemiddeld over een bepaalde periode.

Je rijdt op de rand van de waarheid, maar ik zal het voorbij laten gaan.Het energieniveau voor CMOS stijgt bijna in een lineaire lijn met de werkingsfrequentie, maar het dubbele van de spanning en de energie verviervoudigt.Vervelende I2R-vergelijking, zonder snelheid.
Het OP vroeg puur naar de kloksnelheid, geen melding van verminderde spanning.
Een bovenstaand antwoord noemde de boete voor kernspanningen.Ik bedoelde niet dat u op die kwestie moest antwoorden.Ik maakte alleen een opmerking - in een opmerkingenveld.
De vraag ging over HEAT (gemeten in joules), niet over vermogen of temperatuur.Warmte is een vorm van energie.Afgezien van de kleine hoeveelheid energie die wordt ontvangen van invoerbronnen en wordt geleverd aan uitvoerbelastingen, zal alle energie die in het apparaat wordt verbruikt, warmte worden en uiteindelijk worden afgevoerd.In CMOS-logica genereert energieverbruik warmte wanneer de toestand van de machine verandert - normaal gesproken eenmaal per klokcyclus op dat moment dat de poorten halverwege tussen 0 en 1 zijn. De HEAT voor een bepaalde taak moet dus onafhankelijk zijn van de kloksnelheid en volledig afhankelijk zijn.op het aantal klokcycli.
mkeith
2018-05-10 13:52:14 UTC
view on stackexchange narkive permalink

In het door u beschreven scenario is de energie die nodig is voor de berekening niet afhankelijk van de kloksnelheid.Maar warmte kan een "slappe" term zijn.Stel dat de berekening 1 joule kost.Doe je het in 1 seconde, dan is dat 1 Joule / sec = 1 Watt.Maar als het 2 seconden duurt, is dat 1 joule / 2 sec = 0,5 joule / sec = 0,5 watt.

De processor zal zeker een hogere temperatuur bereiken als de berekening sneller wordt gedaan, omdat de energie sneller vrijkomt.Ik denk niet dat het al te veel zin heeft om meer te zeggen dan dat.

Oh, behalve dat de cijfers die ik je heb gegeven niet realistisch bedoeld zijn.Het is slechts het concept.



Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 4.0-licentie waaronder het wordt gedistribueerd.
Loading...