Verfügen Mehrkernprozessoren über interne Hardware, um den Kern, in dem die Anweisungen ausgeführt werden, nach dem Zufallsprinzip zu ändern?

Verfügen Mehrkernprozessoren über interne Hardware, um den Kern, in dem die Anweisungen ausgeführt werden, nach dem Zufallsprinzip zu ändern?

Ein Freund von mir sagt, dass ein Prozess immer zwischen Kernen hin- und herspringt, selbst wenn man einen Prozess innerhalb des Betriebssystems an einen bestimmten Kern anheftet. Er sagt, dass die Prozessorhersteller dies tun, damit die Prozessoren nicht aufgrund von Hotspots durchbrennen (ob Kerne tatsächlich durchbrennen oder nicht, ist nebensächlich).

Er sagt auch, dass beispielsweise der Windows-Task-Manager nicht korrekt ist, da er nicht nachvollziehen kann, was der Prozessor intern tut. Daher nicht vertrauenswürdig ... Er schwört, dass er eine Intel-Dokumentation gesehen hat, in der es erklärt wird. (Nun, er konnte sie nicht finden)

Ich habe versucht, ihm zu erklären, dass das unlogisch ist, weil dadurch Caches und Pipelines usw. ungültig würden, aber da es auch keine Dokumentation gibt, die das Gegenteil belegt, ist das ziemlich schwer zu beweisen.

Kennt jemand Unterlagen oder kann eine hieb- und stichhaltige Erklärung liefern, die eine der beiden Theorien beweist?

Danke!

Antwort1

Ich glaube nicht, dass im Prozessor eine absichtliche „Randomisierung“ durchgeführt wird, um Hitzeflecken oder Ähnliches zu vermeiden.

Ring 0-Code kann CPU-Register lesen, um zu ermitteln, auf welchem ​​Kern der Code ausgeführt wird, und kann dann seine CPU-Zeit preisgeben, wenn er auf dem falschen Kern ausgeführt wird. Mindestens ein Kern hat beim Zurücksetzen bei der BIOS-Initialisierung immer das BSP-Bootstrap-Flag gesetzt (wir sprechen von einer x86-CPU). Sie können dieses Register lesen, um sicherzustellen, dass Sie nur auf diesem Kern ausgeführt werden. Aber es gibt mit ziemlicher Sicherheit einen anderen ID-Mechanismus, der verwendet werden kann.

Da der privilegierte Kernelcode des Betriebssystems die Prozessumschaltung übernimmt, könnten Sie dem Betriebssystem definitiv eine Funktion geben, um Prozesse auf einen bestimmten Kern zu beschränken, selbst wenn das nur bedeutet, dass Sie CPU-Zeit aufgeben müssen, bis die Umschaltung auf diesem Kern landet. Sie könnten auch alle anderen Prozesse so einstellen, dass sie diesen Kern meiden, um ihn für den gewünschten Prozess offen zu halten.

Unabhängig davon, ob der Task-Manager dies tut oder nicht, können Sie theoretisch mit Sicherheit wissen, auf welchem ​​Kern welcher Prozess ausgeführt wird, und sie auf diese Kerne beschränken.

Verfügt Intel nun über versteckte Hardware, die tatsächlich die IDs der Kerne umschaltet, sodass Sie nicht wissen, auf welchem ​​physischen Kern Sie gerade arbeiten? Das bezweifle ich. Die CPU meldet die Temperaturen pro Kern und Sie können den Temperaturanstieg auf verschiedenen Kernen mithilfe eines einzelnen Thread-Prozesses sehen, den Sie auf verschiedene Kerne beschränken.

verwandte Informationen