Compreendendo a parte da freqüência do processador de cat / proc / cpuinfo

4

Eu estava olhando para o meu processador SPECS no meu sistema Ubuntu Linux 11.10.

Aqui está o final da saída do comando 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:

O que eu não entendo são as linhas marcadas:

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

A freqüência do processador é de 2,13 GHz na primeira linha e 933 MHz na segunda. Qual é o correto? Os 2,13 GHz referem-se à soma das frequências dos núcleos?

Por fim, qual dessas frequências me informa sobre os ciclos por segundo / clock por segundo captados pelo relógio do sistema?

EDITAR: Em uma pequena extensão da resposta legal de Bruno Pereira, descobri que fazer um processador operar em diferentes frequências na hora também é um escalonamento dinâmico de frequência ou um afogamento de cpu. Aqui estão duas páginas da web que podem ser de interesse:

link

link

    
por smilingbuddha 28.07.2012 / 19:26

3 respostas

7

O Linux usa governadores para definir qual passo sua CPU irá operar (se sua CPU suportar configurações de passo).

Normalmente, eles são definidos como On Demmand por padrão, o que significa que a freqüência de sua CPU será reduzida quando não estiver sob uso intensivo.

cpufreq-info é um utilitário para verificar as etapas disponíveis na sua CPU, cujo regulador de kernel está atualmente em uso por núcleo de sua CPU e muito mais informações sobre suas capacidades de CPU. Ele retorna algo como

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)

Para obter mais informações sobre como verificar e configurar sua CPU na linha de comando, criei uma resposta para outra pergunta que explica como fazer isso here , dê uma olhada.

A freqüência máxima de CPUs é de 2,13 Ghz, mas, a menos que o seu governador do Kernel esteja definido como Performance , seu sistema perderá a maior parte da frequência em tempo ocioso.

933Mhz é o mais baixo escalonamento disponível para a sua CPU e significa, provavelmente, que o seu sistema não está sob muita carga no momento ou está usando um regulador economia de energia .

Você pode testar se obtiver os mesmos resultados quando o sistema estiver sob carga, se a freqüência não mudar, então você está usando um regulador Economia de energia e isso está mantendo a freqüência da CPU em 933Mhz o tempo.

    
por 28.07.2012 / 20:12
5

O 933 MHz é a freqüência atual do núcleo do processador (provavelmente ele está sendo executado em uma velocidade menor porque o sistema está inativo), enquanto 2,13 GHZ é o máximo. freqüência. Veja também a saída do programa cpufreq-info .

    
por 28.07.2012 / 19:55
2

Frequências de CPU são ainda mais complicadas com turbo e c-states.

Quando um processador está ocioso e em um estado c, ele relatará a frequência mínima para esse processador, geralmente conforme visto em available_scaling_frequencies.

Então, mesmo se você escolher o governador de desempenho, você verá duas velocidades, a mínima e a máxima - mas a frequência mínima é realmente sem sentido, já que a CPU não está fazendo nada porque está em um estado c. / p>

Esses valores estão diretamente relacionados a um conjunto de registradores, msr 0x199, 0x198, 0x1a0 e 0x1ad, que podem ser lidos diretamente pelo utilitário rdmsr se você tiver curiosidade.

O que torna isso ainda mais confuso é que o governador solicita a frequência máxima disponível, e há espaço térmico suficiente disponível, os núcleos podem ser overclockados e não será reportado msr 0x199 nem no cpuinfo. Um utilitário que usa aperf / mperf é necessário para determinar se sua CPU está operando acima da velocidade garantida.

O valor da informação do modelo é esta velocidade garantida. Isso significa que, sob condições adequadas de resfriamento, o chip deve sempre funcionar nessa freqüência. Neste exemplo, isto é 2.13GHz.

O registro 0x1ad mostra quais frequências do Turbo estão disponíveis. Seu registro pode se parecer com isso em um chip EE de 8 núcleos: 1b1b1c1c1d1d1e1e

Cada byte indica o número de CPUs + 1 que podem estar ativas naquele momento para obter a frequência.

Nesse caso, se 7 ou 8 núcleos estiverem ativos, o multiplicador máximo será 0x1b ou 27. O multiplicador é geralmente 100MHz, embora outro MSR especifique isso. Portanto, essa parte de EE é capaz de funcionar a 2,7 GHz, enquanto a frequência de garantia é de 2,2 GHz. Como mais CPUs estão em c-states / idle, a taxa de turbo pode subir até um máximo de 30 ou 3.0GHz se apenas 1 ou 2 núcleos estiverem ativos.

Como essas CPUs são superescalares e podem executar operações fora de ordem, e como as instruções de macro no CISC podem levar mais de um ciclo, a taxa de clock não é uma indicação significativa de ciclos.

Bogomips é uma indicação arbitrária basicamente baseada no número de no-ops em um ciclo, mas existem muitas variáveis para simplesmente fazer o desempenho com base na freqüência da CPU.

Mais interessante de se ver seria o próprio desempenho da instrução em si. Você pode monitorar isso usando as ferramentas de perf e contar as instruções e outras operações de maneiras mais significativas nas cargas de trabalho.

Em geral, se você é termicamente seguro e sabe que está ligado à CPU, mas que está sobrecarregando a CPU e não se preocupa com a energia, é possível usar o controlador de desempenho e deixar c-states ativados. A economia de energia do estado C é significativamente maior do que qualquer economia devida aos estados p. Muitas cargas de trabalho também se beneficiam da corrida para esperar em um c-state de qualquer maneira.

    
por 18.05.2013 / 00:09

Tags