Leistungsaufnahme eines Kerns mit zwei Hardwarethreads

422
George

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

Soweit ich weiß, sind die Spannungsregler in modernen Prozessoren pro Kern und nicht pro Hardwarethread. Ist meine obige Annahme also richtig?

0
Terminologie Nitpick: Cores "haben keine Threads". Ein Core mit aktiviertem Hyperthreading kann zwei Threads gleichzeitig ausführen. Threads sind Dinge, die von Prozessen im Betriebssystem erstellt werden und in diesen existieren. Sie sind weder Teil noch Attribute eines Kerns. Tatsächlich hat die CPU überhaupt keine Vorstellung von "Threads" oder gar "Prozessen". Es gibt viele Mechanismen, die Betriebssysteme verwenden, um Prozesse und Threads zu implementieren. Jamie Hanrahan vor 6 Jahren 0
@davidgo Ich habe im Intel SDM ein sehr interessantes Stück gefunden, in dem erklärt wird, wie Linux unterschiedliche Taktraten für die verschiedenen LPs anzeigen kann! Wünschen Sie Details? Jamie Hanrahan vor 6 Jahren 0

1 Antwort auf die Frage

1
Mokubai

"Kommt drauf an" ist ungefähr so ​​gut wie wir wahrscheinlich bekommen können.

Es gibt eine Menge komplizierter Logik- und Power-Gates, und der Stromverbrauch hängt wesentlich mehr von den tatsächlich ausgeführten Aufgaben ab als von der Anzahl der Threads. Ein einzelner Thread, der verschiedene und abwechslungsreiche Anweisungen enthält, die alle CPU-Ausführungseinheiten verwenden, verbraucht möglicherweise mehr Strom als zwei Threads, die um dieselben CPU-Ressourcen konkurrieren.

Für die Energieeffizienz könnten ungenutzte Teile der CPU in einen Zustand niedriger Energie versetzt werden, wenn der Befehlsverteiler weiß, dass er dort wahrscheinlich längere Zeit nicht verwendet wird. Ob dies geschieht, hängt vom Prozessor ab und erfordert ein sorgfältiges Lesen der Prozessordokumentation.

Das CPU-Design ändert sich auch ständig und verbessert sich, so dass sich das, was heute wahr ist, morgen ändern könnte.

Bei der Recherche fand ich im Intel SDM ein interessantes Leckerbissen. Jeder logische Prozessor scheint, soweit ein Systemprogrammierer betroffen ist, seinen eigenen Taktmodulations-MSR zu haben. Wenn diese für die beiden LPs in einem Kern auf zwei verschiedene Werte eingestellt sind, werden beide mit dem höheren% -Zyklus betrieben. Unabhängig davon, was das Betriebssystem denkt. Intel64 / IA-32 SDM, 8.7.13.3: _ "Der Modulations-Arbeitszyklus muss auf den gleichen Wert [für alle LPs in einem Kern] eingestellt werden. Wenn die Werte für den Arbeitszyklus zwischen den LPs unterschiedlich sind, wird der Prozessortakt moduliert der höchste Arbeitszyklus. "_ Jamie Hanrahan vor 6 Jahren 0