4

Я смотрел на мой процессор SPECS в моей системе Ubuntu Linux 11.10.

Вот конец вывода команды 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:

Что я не получаю, так это помеченные линии:

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

Частота процессора здесь составляет 2,13 ГГц в первой строке и 933 МГц во второй. Какой правильный? Является ли 2,13 ГГц ссылкой на сумму частот ядер?

Наконец, какая из этих частот говорит мне о тактах в секунду / тактах в секунду, занятых моими системными часами?

РЕДАКТИРОВАТЬ: В небольшом дополнении к хорошему ответу Бруно Перейра, я обнаружил, что заставить процессор работать на разных частотах на лету также динамическое масштабирование частоты или троттлинг процессора. Вот две веб-страницы, которые могут представлять интерес:

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

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

3 ответа3

7

Linux использует регуляторы, чтобы установить, какой шаг вашего процессора будет работать (если ваш процессор поддерживает настройки степпинга).

Обычно они устанавливаются на « Демандный» по умолчанию, что означает, что частота вашего ЦП будет снижена, когда он не используется интенсивно.

cpufreq-info - это утилита для проверки шагов, доступных с вашего ЦП, какой регулятор ядра используется в настоящее время для каждого ядра вашего ЦП, и намного больше информации о возможностях вашего ЦП.
Возвращает что-то вроде

cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, 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)

Для получения дополнительной информации о том , как проверить и установить процессор степпинга из командной строки , я создал ответ на другой вопрос , который объясняет , как сделать это here, чтобы посмотреть.

Максимальная частота вашего процессора составляет 2,13 ГГц, но если ваш регулятор ядра не настроен на производительность, ваша система, большую часть времени простоя, будет снижать эту частоту.

933 МГц - это самый низкий шаг, доступный для вашего ЦП, и, вероятно, это означает, что ваша система в настоящий момент не находится под сильной нагрузкой или использует регулятор энергосбережения .

Вы можете проверить, получаете ли вы те же результаты, когда ваша система находится под нагрузкой, если частота не изменяется, тогда вы используете регулятор энергосбережения, и он постоянно поддерживает частоту вашего процессора на уровне 933 МГц.

5

933 МГц - это текущая частота этого ядра ЦП (вероятно, оно работает на более низкой скорости, потому что система бездействует), тогда как 2,13 ГГц - это максимум. частота. Смотрите также вывод программы cpufreq-info .

2

Частоты процессора еще сложнее с турбо и c-состояниями.

Когда процессор находится в режиме ожидания и находится в состоянии c, он сообщит о минимальной частоте для этого процессора, как правило, как показано в available_scaling_frequencies.

Таким образом, даже если вы выберете регулятор производительности, вы увидите две скорости, минимальную и максимальную, но минимальная частота действительно бессмысленна, так как процессор ничего не делает, потому что находится в состоянии c.

Эти значения действительно имеют прямое отношение к набору регистров, msr 0x199, 0x198, 0x1a0 и 0x1ad, которые могут быть прочитаны напрямую с помощью утилиты rdmsr, если вам интересно.

Что делает это еще более запутанным, так это то, что регулятор запрашивает максимальную доступную частоту, и имеется достаточно тепловой комнаты, ядра могут быть разогнаны, и об этом не будет сообщено как msr 0x199, так и в cpuinfo. Утилита, которая использует aperf/mperf, необходима для определения того, работает ли ваш процессор выше гарантированной скорости.

Значение информации о модели - это гарантированная скорость. Это означает, что при надлежащих условиях охлаждения чип всегда должен работать на этой частоте. В этом примере это 2,13 ГГц.

Регистр 0x1ad показывает, какие турбо частоты доступны. Ваш реестр может выглядеть так на 8-ядерном чипе EE:1b1b1c1c1d1d1e1e

Каждый байт указывает количество процессоров +1, которые могут быть активны в то время, чтобы получить частоту.

В этом случае, если активны 7 или 8 ядер, максимальный множитель составляет 0x1b или 27. Множитель обычно равен 100 МГц, хотя другая MSR указывает это. Таким образом, эта EE-часть способна работать на частоте 2,7 ГГц, а гарантийная частота составляет 2,2 ГГц. Поскольку все больше процессоров находятся в c-состояниях / в режиме ожидания, турбо-коэффициент может возрасти до 30 или 3,0 ГГц, если активны только 1 или 2 ядра.

Поскольку эти процессоры являются суперскалярными и могут выполнять операции вне порядка, а макро-инструкции в CISC могут занимать более одного цикла, тактовая частота не является значимым показателем циклов.

Bogomips - это произвольная индикация, основанная в основном на количестве неактивных операций в цикле, но слишком много переменных, чтобы просто выполнять производительность в зависимости от частоты процессора.

Более интересным было бы посмотреть фактическое выполнение инструкций. Вы можете отслеживать это с помощью инструментов perf и более эффективно подсчитывать инструкции и другие операции в разных рабочих нагрузках.

В общем, если вы термически безопасны, и вы знаете, что вы привязаны к процессору, но загружаете процессор, и вам нет дела до питания, вы можете использовать регулятор производительности и оставить включенные состояния c-состояний. Экономия энергии в C-состояниях значительно выше, чем в случае p-состояний. Многие рабочие нагрузки также выигрывают от гонок, которые все равно ждут в c-состоянии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .