하이퍼스레드 CPU의 /proc/cpuinfo에 있는 "cpu MHz" 필드는 무엇을 의미합니까?

하이퍼스레드 CPU의 /proc/cpuinfo에 있는 "cpu MHz" 필드는 무엇을 의미합니까?

CPU는[이메일 보호됨]. 코어당 2개의 스레드가 있는 4개의 코어가 있습니다. dmidecode출력 은 다음 과 같습니다 .

# dmidecode -t 4
# dmidecode 2.9
SMBIOS 2.7 present.

Handle 0x0042, DMI type 4, 42 bytes
Processor Information
    Socket Designation: SOCKET 0
    Type: Central Processor
    Family: <OUT OF SPEC>
    Manufacturer: Intel(R) Corporation
    ID: A9 06 03 00 FF FB EB BF
    Version: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
    Voltage: 1.1 V
    External Clock: 100 MHz
    Max Speed: 3800 MHz
    Current Speed: 3400 MHz
    Status: Populated, Enabled
    Upgrade: <OUT OF SPEC>
    L1 Cache Handle: 0x003F
    L2 Cache Handle: 0x003E
    L3 Cache Handle: 0x0040
    Serial Number: Not Specified
    Asset Tag: Fill By OEM
    Part Number: Fill By OEM
    Core Count: 4
    Core Enabled: 4
    Thread Count: 8
    Characteristics:
        64-bit capable

그림에 표시된 대로 시스템에는 8개의 논리 코어가 있습니다 /proc/cpuinfo. 그런데 cpu MHz코어 주파수가 1600MHz인 이유를 누가 알 수 있을까요 ? 코어에는 2개의 스레드가 있는 것으로 추측됩니다. 그러면 하드웨어 스레드 주파수는 코어의 절반 정도일 것입니다. 이 숫자는 어떻게 계산되나요?

processor   : 7
vendor_id   : GenuineIntel
cpu family  : 6
model       : 58
model name  : Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
stepping    : 9
cpu MHz     : 1600.000
cache size  : 8192 KB
physical id : 0
siblings    : 8
core id     : 3
cpu cores   : 4
apicid      : 7
initial apicid  : 7
fpu     : yes
fpu_exception   : yes
cpuid level : 13
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 syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt aes xsave avx lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid
bogomips    : 7013.49
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

lshw또한 다음은 lscpuand 명령의 출력입니다. 1600MHz에 대한 언급도 있습니다.

lshw정보:

#lshw -class processor
  *-cpu                   
       description: CPU
       product: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
       vendor: Intel Corp.
       physical id: 42
       bus info: cpu@0
       version: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
       slot: SOCKET 0
       size: 1600MHz
       capacity: 3800MHz
       width: 64 bits
       clock: 100MHz
       capabilities: fpu fpu_exception wp 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 syscall nx rdtscp x86-64 constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt aes xsave avx lahf_lm ida arat tpr_shadow vnmi flexpriority ept vpid cpufreq

lscpu정보:

#lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                8
Thread(s) per core:    2
Core(s) per socket:    4
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Stepping:              9
CPU MHz:               1600.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K

답변1

최신 CPU는 로드 요구 사항에 따라 동적으로 달라지는 여러 가지 주파수에서 실행될 수 있습니다(참조:위키피디아). 인텔이 부릅니다속도 단계. CPU가 할 일이 없으면 더 낮은 주파수에서 실행되어 전력 소비(따라서 열과 팬 소음)를 줄입니다.

따라서 표시되는 1600Mhz는 아마도 모든 CPU가 많은 작업을 수행하지 않기 때문일 수 있지만 CPU와 마더보드 아키텍처 및 온도에 따라 결정되는 3400Mhz와 같은 최대값까지 올라갈 수 있습니다.

개별 값을 어디서 얻을 수 있는지 잘 모르겠지만 /proc/cpuinfo현재 주파수와 같은 개별 CPU 정보를 파일에서 볼 수 있습니다 /sys/devices/system/cpu/cpu*/cpufreq/.

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

Linux CPU 주파수 스케일링 소프트웨어에 대해 자세히 알아보세요.아키텍처Linux.

관련 정보