Zrozumienie części Częstotliwość procesora w cat / proc / cpuinfo

4

Patrzyłem na SPECS swojego procesora w moim systemie Ubuntu Linux 11.10.

Oto koniec wyjścia polecenia cat / proc / cpuinfo:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 37
model name  : Intel(R) Core(TM) i3 CPU       M 330  @ 2.13GHz
stepping    : 2
cpu MHz     : 933.000
cache size  : 3072 KB
physical id : 0
siblings    : 4
core id     : 2
cpu cores   : 2
apicid      : 5
initial apicid  : 5
fdiv_bug    : no
hlt_bug     : no
f00f_bug    : no
coma_bug    : no
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
bogomips    : 4256.47
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Nie dostaję linii oznaczonych:

model name  : Intel(R) Core(TM) i3 CPU       M 330  @ 2.13GHz
cpu MHz     : 933.000

Częstotliwość procesora tutaj wynosi 2,13 GHz w pierwszej linii i 933 Mhz w drugiej. Który czy jest poprawny? Czy 2,13 GHz odnosi się do sumy częstotliwości rdzeni?

Na koniec, która z tych częstotliwości mówi mi o cyklach na sekundę / taktach zegara na sekundę wykonanych przez zegar systemowy?

EDYTOWAĆ: W niewielkim rozszerzeniu miłej odpowiedzi Bruno Pereiry stwierdziłem, że sprawienie, że procesor działa w różnych częstotliwościach w locie, to również dynamiczne skalowanie częstotliwości lub dławienie procesora. Oto dwie strony internetowe, które mogą być interesujące:

http://en.wikipedia.org/wiki/Dynamic_frequency_scaling

http://en.wikipedia.org/wiki/SpeedStep

smilingbuddha
źródło
Sumowanie częstotliwości jest bez znaczenia. Częstotliwości są jak prędkości, dodawanie ich daje bezsensowne wyniki. Czy można sumować dwa samochody jadące z prędkością 50 mil na godzinę, aby uzyskać 100 mil na godzinę?
David Schwartz
Uwaga: Od Kernela 4.13, cat /proc/cpuinfo | grep MHz nie zwraca już aktualnej prędkości zegara . Mówi się, że jest to zamierzone w Kernel Bugzilla. Widzieć bugzilla.kernel.org/show_bug.cgi?id=197009 . Jest tu również wspomniane: phoronix.com/…
Marc.2377

Odpowiedzi:

7

Linux używa regulatorów, aby ustawić, który krok będzie działał na twoim CPU (jeśli twój procesor obsługuje ustawienia krokowe).

Zwykle są ustawione na Na żądanie domyślnie, co oznacza, że ​​częstotliwość twojego procesora zostanie obniżona, gdy nie będziesz intensywnie użytkowany.

cpufreq-info to narzędzie do sprawdzania dostępnych kroków z procesora, który zarządca jądra jest obecnie używany na rdzeń procesora i wiele więcej informacji o możliwościach procesora.
Zwraca coś takiego

cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to [email protected], please.
analyzing CPU 0:
  driver: powernow-k8
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 8.0 us.
  hardware limits: 800 MHz - 3.00 GHz
  available frequency steps: 3.00 GHz, 2.30 GHz, 1.80 GHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 3.00 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz.
  cpufreq stats: 3.00 GHz:10.45%, 2.30 GHz:0.29%, 1.80 GHz:1.72%, 800 MHz:87.55%  (28605)

Aby uzyskać więcej informacji na temat sprawdzania i ustawiania procesora z linii poleceń, stworzyłem odpowiedź na inne pytanie, które wyjaśnia, jak to zrobić here, Spójrz.

Maksymalna częstotliwość procesorów wynosi 2,13 GHz, ale chyba że ustawisz ją na jądro Wydajność Twój system będzie przez większość czasu bezczynności obniżał tę częstotliwość.

933Mhz to najniższy dostępny krok dla twojego procesora i oznacza prawdopodobnie, że twój system nie znajduje się obecnie pod silnym obciążeniem lub używa oszczędność energii gubernator.

Możesz przetestować, czy uzyskasz takie same wyniki, gdy Twój system jest pod obciążeniem, jeśli częstotliwość się nie zmienia, a następnie używasz Oszczędności energii Governor i to, że cały czas utrzymuje częstotliwość procesora na poziomie 933 MHz.

Bruno Pereira
źródło
Dziękuję za tę cudowną odpowiedź. Uruchomiłem prostą procedurę sortowania na 3 miliardach liczb całkowitych i podczas pracy sprawdziłem częstotliwość procesora. Odkryłem, że przeskoczył do 2,13 GHz.
smilingbuddha
Jedno pytanie: kiedy ludzie mówią o przetaktowywaniu swoich procesorów do gier, oznacza to, że próbują zwiększyć częstotliwość procesorów powyżej maksymalnej gwarantowanej częstotliwości, co w moim przypadku wynosi 2,13 MHz, prawda?
smilingbuddha
@smilingbuddha poprawne, zwykle wiąże się ze zwiększeniem mnożnika procesora lub FSB systemu, co powoduje, że wykracza on poza zalecane przez producenta wartości. Tworzy dodatkowe ciepło, wymaga lepszego chłodzenia.
Bruno Pereira
5

933 MHz to bieżąca częstotliwość rdzenia procesora (prawdopodobnie działa z mniejszą prędkością, ponieważ system jest bezczynny), podczas gdy 2,13 GHZ to maksimum. częstotliwość. Zobacz także wyjście programu cpufreq-info.

Jaap Eldering
źródło
The @ 2.13 GHz jest częścią nazwy modelu. To częstotliwość, którą producent CPU wybrał, aby umieścić w nazwie modelu. W wielu nowoczesnych procesorach nie jest to maksymalna częstotliwość, ale maksymalna gwarantowane częstotliwość.
David Schwartz
@DavidSchwartz Dla każdego, kto to czyta, nie jest zainteresowany uruchamianiem swoich procesorów powyżej gwarantowane częstotliwość, 2,13 GHz jest maksymalna częstotliwość dla tego procesora. Nic tam nie ma.
Bruno Pereira
@ BrunoPereira: Tak jest w przypadku tego konkretnego procesora, ale nie jest to prawda z powodu takich funkcji turbo boost .
David Schwartz
2

Częstotliwości procesora są jeszcze bardziej skomplikowane w turbo i c-stanach.

Gdy procesor jest bezczynny i znajduje się w stanie c, raportuje minimalną częstotliwość dla tego procesora, co jest ogólnie widoczne w dostępnych częstotliwościach.

Tak więc, nawet jeśli wybierzesz regulator wydajności, zobaczysz dwie prędkości, minimalną i maksymalną - ale minimalna częstotliwość jest naprawdę bez znaczenia, ponieważ procesor nic nie robi, ponieważ jest w stanie c.

Te wartości są naprawdę bezpośrednio związane z zestawem rejestrów, msr 0x199, 0x198, 0x1a0 i 0x1ad, które mogą być odczytywane bezpośrednio przez narzędzie rdmsr, jeśli jesteś ciekawy.

Co jeszcze bardziej dezorientuje, że zarządca żąda maksymalnej dostępnej częstotliwości, a dostępna jest wystarczająca ilość pomieszczenia termicznego, rdzenie mogą być podkręcane i nie będą zgłaszane ms1 0x199 ani w cpuinfo. Narzędzie, które używa aperf / mperf jest niezbędne do określenia, czy twój procesor działa powyżej gwarantowanej prędkości.

Wartość informacji o modelu to ta gwarantowana prędkość. Oznacza to, że w odpowiednich warunkach chłodzenia chip powinien zawsze działać z tą częstotliwością. W tym przykładzie jest to 2,13 GHz.

Rejestr 0x1ad pokazuje, jakie częstotliwości Turbo są dostępne. Twój rejestr może wyglądać tak na 8-rdzeniowym chipie EE: 1b1b1c1c1d1d1e1e

Każdy bajt wskazuje liczbę procesorów + 1, które mogą być aktywne w tym czasie, aby uzyskać częstotliwość.

W tym przypadku, jeśli aktywnych jest 7 lub 8 rdzeni, maksymalnym mnożnikiem jest 0x1b lub 27. Mnożnik wynosi zazwyczaj 100 MHz, chociaż inny MSR to określa. Tak więc ta część EE może pracować z częstotliwością 2,7 GHz, podczas gdy częstotliwość gwarantowana wynosi 2,2 GHz. Ponieważ więcej procesorów znajduje się w stanach c / bezczynności, współczynnik turbo może wzrosnąć, maksymalnie do 30 lub 3,0 GHz, jeśli aktywne są tylko 1 lub 2 rdzenie.

Ponieważ te procesory są superskalarne i mogą wykonywać operacje poza kolejnością, a ponieważ instrukcje makro w CISC mogą przyjmować więcej niż jeden cykl, częstotliwość taktowania nie jest znaczącym wskazaniem cykli.

Bogomips jest arbitralnym wskazaniem zasadniczo opartym na liczbie operacji no-op w cyklu, ale jest zbyt wiele zmiennych, aby po prostu wykonać wydajność na podstawie częstotliwości procesora.

Bardziej interesującym spojrzeniem byłoby samo wykonanie instrukcji. Możesz to monitorować za pomocą narzędzi perf oraz liczyć instrukcje i inne operacje w bardziej znaczący sposób na wszystkich obciążeniach.

Ogólnie, jeśli jesteś bezpieczny termicznie i wiesz, że jesteś związany z procesorem, ale rozrywasz procesor i nie zależy ci na mocy, możesz użyć regulatora wydajności i pozostawić stany c włączone. Oszczędności mocy w stanie C są znacznie wyższe niż jakiekolwiek oszczędności wynikające z stanów p. Wiele obciążeń korzysta również z wyścigów, aby i tak czekać w stanie c.

Jon Brauer
źródło