Hallo zusammen, ich habe eine Frage bezüglich der Messung meiner CPU-Clock (ich verwende einen Intel Core i7 der 11ten Generation - Grundtaktfrequenz von 2,3 GHz). Wenn die Arbeitslast entsprechend gering ist, taktet er aber langsamer. Wenn die Arbeitslast groß ist und genügend Reserve in Bezug auf die Temperatur des Kerns vorhanden ist,... erhöht er die Taktfrequenz. Wie misst das Betriebssystem die Taktfrequenz? Handelt es sich dabei tatsächlich um eine Messung, für die beispielsweise eine weitere (unabhängige) Clock verwendet wird, oder sind nur fest einstellbare Werte (Clock-Devider oder ähnliches) für die Clock möglich, sodass das Betriebssystem weiß, wie schnell die Clock gerade taktet? vielen Dank schonmal für eure Rückmeldungen.
Das ist eine nicht ganz einfache Frage. Denn der in einer VMware-VM angezeigte Takt ist unverrückbar festgenagelt auf den Nominaltakt des Prozessors. Völlig unabhängig davon, ob der reale Core halb so schnell oder doppelt so schnell taktet. Obendrein gibt es in den letzten Generationen keinen einheitlichen CPU-Takt mehr. Jeder Core taktet unabhängig. Dazu passend kann auch die Versorgungsspannung pro Core individuell einstellbar sein, mitunter per On-Die Switcher statt Analogregler.
Danson schrieb: > oder sind nur fest einstellbare > Werte (Clock-Devider oder ähnliches) für die Clock möglich, sodass das > Betriebssystem weiß, wie schnell die Clock gerade taktet? Genau so. Sind Clock-Multiplier, PLLs Die Werte die möglich sind, liest das Betriebssystem aus den den ACPI Tabellen deines Mainboards aus: https://uefi.org/specs/ACPI/6.5/08_Processor_Configuration_and_Control.html?highlight=clock#processor-performance-control Auf ganz alten Mainboards war das die Aufgabe des Zusammenbauers, per Jumper diesen Clock-Multiplier korrekt einzustellen (oder zu übertackten :-))
Falls es hier niemand weiß - du könntest in den Linux Quelltexten nachschauen, woher die Daten für /sys/devices/system/cpu/cpu*/cpufreq kommen.
> Wie misst das Betriebssystem...
Ist das überhaupt die richtige Frage?
Wahrscheinlich läuft die Sache anders herum. Das Betriebssystem fragt
beim ACPI nur nach, welche Taktfrequenzen möglich sind, und stellt dann
Frequenzen ein, die zur aktuellen Auslastung passen.
Wenn dein Programm die Taktfrequenzen beim BS abfragt, misst es
überhaupt nichts. Liefert die Werte, die es selbst eingestellt hat.
Ein Tipp schrieb: >> Wie misst das Betriebssystem... > > Ist das überhaupt die richtige Frage? > > Wahrscheinlich läuft die Sache anders herum. Das Betriebssystem fragt > beim ACPI nur nach, welche Taktfrequenzen möglich sind, und stellt dann > Frequenzen ein, die zur aktuellen Auslastung passen. Und zum gewählten Profil (z.B. Performance, Energiesparen u.s.w.). Für den Linux-Kernel findet man hier etwas Doku dazu: https://www.kernel.org/doc/Documentation/cpu-freq/index.txt In dem Verzeichnis sind noch weitere Dateien zu dem Thema.
Vielen Dank für eure Antworten! (prx) A. K. schrieb: > Obendrein gibt es in den letzten Generationen keinen einheitlichen > CPU-Takt mehr. Jeder Core taktet unabhängig. Unabhängig im Sinne von unabhängiger Zeitbasis (separater Quarz)? Das heißt, da könnte ein Core die Zeitbasis des anderen monitoren? Christoph Z. schrieb: > Auf ganz alten Mainboards war das die Aufgabe des Zusammenbauers, per > Jumper diesen Clock-Multiplier korrekt einzustellen (oder zu übertackten > :-)) Irgendwie schön, wenns so einfach geht :) Das waren dann vermutlich auch die Zeiten, in denen einige Spiele dann doppelt so schnell liefen?!
Danson schrieb: > Unabhängig im Sinne von unabhängiger Zeitbasis (separater Quarz)? Wie oben schon dargelegt wurde, wird die real genutzte Taktfrequenz per Taktvervielfachung aus einer niedrigen Frequenz abgeleitet. Diese niedrige Frequenz ist allen Cores gemein, aber der Faktor kann bei jedem Core anders sein.
Ein Tipp schrieb: > Wenn dein Programm die Taktfrequenzen beim BS abfragt, misst es > überhaupt nichts. Liefert die Werte, die es selbst eingestellt hat. Eben. Und da das Betriebssystem in einer virtualisierten Umgebung keinen realen Takt einstellen kann, zeigt eine VM z.B. permanent 2800 MHz an - egal ob Windows oder Linux. Auch wenn der Core, auf dem sie läuft, tatsächlich mit einer völlig anderen Taktfrequenz arbeitet.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.