Während des LesensDennis' Antwort, es bringt mich zum Nachdenken darüber, was die CPU-Temperatur bestimmt. Folgendes ist mein Verständnis.
Die CPU-Temperatur wird ausschließlich durch die CPU-Auslastung in einer Zeiteinheit bestimmt.
Die CPU-Auslastung in einer Zeiteinheit entspricht dem Prozentsatz der CPU-Auslastung multipliziert mit der CPU-Frequenz.
Wenn also der Prozentsatz der CPU-Auslastung oder die CPU-Frequenz sinkt, sinkt die CPU-Auslastung pro Zeiteinheit und die CPU-Temperatur sinkt.
Es folgt ein Zitat aus einem Teil vonDennis' Antwort, mit dem mein obiges Verständnis nicht übereinstimmt:
Höherer Verbrauch bedeutet höhere Temperatur. Geringerer Verbrauch bedeutet niedrigere Temperatur.
Das Heruntertakten Ihrer CPU-Frequenz mit cpufreq wirkt sich nur auf den Prozentsatz der CPU-Auslastung aus, ohne die Temperatur zu senken.
Der Prozentsatz ist ein absolut bedeutungsloser Wert. Bei exakt derselben Arbeitslast kann Ihr Prozentsatz steigen oder fallen, wenn Sie Ihre CPU unter- oder übertakten. Aber es ist immer noch dieselbe Arbeitslast, sodass jeder potenzielle Schaden (und ich bin mir nicht sicher, ob es einen gibt), der durch die Nutzung verursacht wird, genau derselbe sein wird.
Ebenso begrenzt cpulimit die CPU-Auslastung und hält so Prozentsatz und Temperatur niedrig.
Können Sie mir sagen, wer Recht hat, Dennis oder ich? Warum?
Danke!
Antwort1
Die CPU-Temperatur wird ausschließlich durch die CPU-Auslastung in einer Zeiteinheit bestimmt. [...] Wenn also der Prozentsatz der CPU-Auslastung oder die CPU-Frequenz sinkt, sinkt die CPU-Auslastung in einer Zeiteinheit und die CPU-Temperatur sinkt.
Der Stromverbrauch (d. h. die erzeugte Wärme) ist nichteinzig und alleinwird durch die CPU-Auslastung bestimmt, obwohl dies auch davon abhängt, welche Anweisungen die CPU ausführt. In einer digitalen, synchronen CMOS-Schaltung (wie Ihrem Prozessor) ist der Stromverbrauchkann berechnet werden als:
P = C x V^2 x f
Dabei C
ist die Kapazität des digitalen Schaltkreises (ändert sich je nachdem, welche Befehle ausgeführt werden), V
die Spannung der CPU und f
die Taktfrequenz. Einige Befehle zeichnenmehr Power als andere, also gehen wir davon aus, dass es hier behoben ist (d.h. die gleichen Programme ausführen, diemanchespürbare Arbeit abseits des Leerlaufs). Als Nebeneffekt davon steigt die CPU-TemperaturWilleim Leerlauf (nur NOP
s) sogar bei gleicher Taktfrequenz abnehmen.
Beachten Sie jedoch, dass der Stromverbrauch der CPU immer noch direkt von der Frequenz und Spannung abhängt. Eine Halbierung der Frequenz senkt den Stromverbrauch auf 50 %, während eine Halbierung der Spannung den Stromverbrauch auf 25 % des ursprünglichen Wertes senkt. Dies hat eineriesigAuswirkungen auf die Wärmeerzeugung, selbst wenn wir die gleiche Menge Arbeit verrichten möchten (denken Sie daran, dass Leistung Arbeit pro Zeiteinheit ist; siehe unten).
Höherer Verbrauch bedeutet höhere Temperatur. Geringerer Verbrauch bedeutet niedrigere Temperatur.
Ja, das stimmt. Wenn Ihr Computer im Leerlauf ist, tut er oft „nichts“ (d. h. er führt NOP
Anweisungen aus, befindet sich in einem Energiesparmodus oder führt einfach keine stromintensiven Anweisungen aus). Wenn er etwas tut, wie z. B. Grafiken rendert, verbraucht er viel mehrKomponenten in der CPU(wie ALU, FPU, MIU), wodurch mehr Wärme erzeugt wird.
Das Heruntertakten Ihrer CPU-Frequenz mit cpufreq wirkt sich nur auf den Prozentsatz der CPU-Auslastung aus, ohne die Temperatur zu senken.
Nein, das ist falsch. Siehe die Gleichung oben. Durch Untertakten werden Programme in einer längeren Zeitspanne ausgeführt, aber der Stromverbrauch der SchaltungWilleabnehmen. Der Stromverbrauch von CMOS steht in direktem Zusammenhang mit der Anzahl der Logikschalter pro Zeiteinheit.
Dies ist sehr intuitiv angesichts der Definition vonLeistung, was einfach istArbeit pro Zeiteinheit, oder die Rate, mit der wir Arbeit/Berechnungen durchführen. Wenn wir dasselbe Programm mit einer bestimmten Frequenz bis zum Abschluss ausführen f
und dann die Ausführung mit der Frequenz vergleichen f/2
, im letzteren Fall, obwohl wir genommen habendoppelt so langUm das Programm auszuführen, haben wirgleiche Menge anarbeiten- und damit beträgt der Stromverbrauch der CPU während dieser ZeitHälfte.
Die CPU arbeitet daher bei einer niedrigeren Temperatur, obwohl sie länger braucht, um dieselbe Menge Arbeit zu erledigen, da sie nun mehr Zeit hat, die Wärme in der CPU abzuleiten. Durch Untertakten kann die CPU auch bei einer niedrigeren Spannung betrieben werden (Untervolting), wodurch der Stromverbrauch weiter gesenkt wird, ohne dass dies Auswirkungen auf die Arbeit hat.
Antwort2
Hängt von Ihrem Prozessor ab, aber die Begrenzung des CPU-Maximums kann die erzeugte Wärmemenge definitiv verringern. Denken Sie zunächst daran, dass die Wärme von der Vcore-Spannung und nicht von der Frequenz bestimmt wird. Wenn Sie Ihren Prozessor also auf einen niedrigeren P-Zustand beschränken können, wird auch die Vcore-Spannung begrenzt. Bedenken Sie, dass dies nur bei neueren Intel-Prozessoren der Fall ist (ich gehe davon aus, dass AMD etwas Ähnliches ist), daher denke ich, dass hier die Verwirrung herrührt. Ich habe einige Tests durchgeführt, um meine Theorie zu beweisen.
- Zuerst ließ ich meinen I7 3930k @ 4,2 GHz einen Durchgang von Linpack ausführen und machte einen Screenshot von Vcore und Temperaturen:
Wie Sie sehen können, liegt mein CPU-Paket nach einem Durchgang von Linpack bei 55 °C
Jetzt habe ich die Grenze auf 75 % gesetzt und einen weiteren Durchgang von Linpack ausgeführt:
Beachten Sie die Unterschiede im Vcore bei 4,2 GHz gegenüber 2,4 GHz, 1,280 und 0,984. In Bezug auf den Vcore ist das ein RIESIGER Unterschied. Beachten Sie, wie sich dies in der erzeugten Wärme widerspiegelt: 55 °C gegenüber 40 °C.
Es ist also durchaus richtig, dass die Begrenzung der Frequenz die erzeugte Wärme verringert. Obwohl eine CPU mit 3,8 GHz und 1,28 Vcore und eine CPU mit 4,2 GHz und 1,28 Vcore die gleiche Wärmemenge erzeugen, ist dies nur für CPUs relevant, die sowohl untervoltet als auch heruntertaktet sind.
Antwort3
Dennis sagte, dass das Heruntertakten Ihrer CPU-Frequenz mit cpufreq nur den Prozentsatz beeinflusst. Das bedeutet, dass die Arbeitslast gleich bleibt, aber der Prozentsatz niedrig angezeigt wird (praktisch ist er hoch). Wenn die Arbeitslast höher ist, wird die CPU-Temperatur höher sein.