Stromverbrauch eines Kerns mit zwei Hardware-Threads

0

Wenn ein Core über zwei Hardware-Threads verfügt, verbraucht der Core in den folgenden beiden Szenarien dieselbe Leistung: a) Nur ein Thread ist beschäftigt, der andere ist im Leerlauf. B) Beide Threads sind beschäftigt

Soweit ich weiß, beziehen sich die Spannungsregler in modernen Prozessoren auf einen Kern und nicht auf einen Hardwarethread. Ist daher meine obige Annahme richtig?

George
quelle
Terminologie Nitpick: Kerne haben keine "Threads". Ein Core mit aktiviertem Hyperthreading kann zwei Threads gleichzeitig ausführen . Threads sind Dinge, die von Prozessen im Betriebssystem erstellt wurden und in diesen vorhanden sind. Sie sind weder Teile noch Attribute eines Kerns. Tatsächlich hat die CPU überhaupt kein wirkliches Konzept von "Threads" oder gar "Prozessen". Es gibt viele Mechanismen, mit denen Betriebssysteme Prozesse und Threads implementieren, das ist alles.
Jamie Hanrahan
@davidgo Ich habe im Intel SDM ein sehr interessantes Stück gefunden, das erklärt, wie Linux unterschiedliche Taktraten für die verschiedenen LPs anzeigen kann! Wünschen Sie Details?
Jamie Hanrahan

Antworten:

1

"Es kommt darauf an" ist ungefähr so ​​gut, wie wir es wahrscheinlich bekommen können.

Es gibt eine Menge komplizierter Logik- und Power-Gating-Vorgänge, und der Stromverbrauch hängt viel mehr von den tatsächlich ausgeführten Aufgaben ab als von der Anzahl der Threads. Ein einzelner Thread, der einen vielfältigen und abwechslungsreichen Befehlssatz enthält, der alle CPU-Ausführungseinheiten verwendet, kann mehr Energie verbrauchen als zwei Threads, die um dieselben CPU-Ressourcen kämpfen.

Für die Energieeffizienz nicht genutzten Abschnitte der CPU könnten zu einem niedrigen Energiezustand gebracht werden, wenn der Disponent Anweisung weiß , dass es unwahrscheinlich ist seit einiger Zeit verwendet werden. Ob dies geschieht, hängt vom Prozessor ab und erfordert ein sorgfältiges Lesen der Prozessordokumentation.

Auch das CPU-Design ändert und verbessert sich ständig, sodass sich das, was heute zutrifft, morgen ändern kann.

Mokubai
quelle
Bei der Recherche habe ich einen interessanten Leckerbissen im Intel SDM gefunden. Für einen Systemprogrammierer scheint jeder logische Prozessor sein eigenes Taktmodulations-MSR zu haben. Wenn diese Werte für die beiden LPs in einem Core jedoch auf zwei unterschiedliche Werte eingestellt sind, werden beide mit dem höheren% -Alter-Duty-Cycle ausgeführt! Unabhängig davon, was das Betriebssystem denkt. Intel64 / IA-32 SDM, 8.7.13.3: "Der Modulations-Duty-Cycle muss auf den gleichen Wert eingestellt werden [für alle LPs in einem Core]. Wenn sich die Duty-Cycle-Werte zwischen den LPs unterscheiden, wird der Prozessortakt am moduliert höchster Arbeitszyklus. "
Jamie Hanrahan