Forum: PC Hard- und Software Messung der CPU-Clock (Intel Core i7)


von Danson (Gast)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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.

von Christoph Z. (christophz)


Lesenswert?

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 
:-))

von Ein Tipp (Gast)


Lesenswert?

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.

von Ein Tipp (Gast)


Lesenswert?

> 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.

von Rolf M. (rmagnus)


Lesenswert?

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.

von Danson (Gast)


Lesenswert?

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?!

von (prx) A. K. (prx)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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
Noch kein Account? Hier anmelden.