为什么我的未启用超线程的 CPU 声称它具有超线程?

为什么我的未启用超线程的 CPU 声称它具有超线程?

当我检查处理器的 aesni(硬件 aes,“aes”标志)时,我发现了“ht”标志。在 i7 处理器上,这表示 CPU 具有超线程能力,但是,由于我拥有的是 i5-4690K,所以我认为这种情况不应该发生。

这是我的 CPU 标志,由 /proc/cpuinfo 表示

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    <--------------- Hyperthreading flag
tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc
arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc aperfmperf eagerfpu pni pclmulqdq
dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16
xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt
tsc_deadline_timer aes xsave avx f16c rdrand
lahf_lm abm arat xsaveopt pln pts dtherm
tpr_shadow vnmi flexpriority ept vpid fsgsbase
tsc_adjust bmi1 avx2 smep bmi2 erms invpcid

为什么会发生这种情况?这可能是因为 Core 系列处理器都共享几乎相同的芯片吗?为什么它们出厂时带有错误的标志?

为了更多解释,这是我的 lscpu输出

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 60
Model name:            Intel(R) Core(TM) i5-4690K CPU @ 3.50GHz
Stepping:              3
CPU MHz:               3500.136
CPU max MHz:           3900.0000
CPU min MHz:           800.0000
BogoMIPS:              6999.62
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              6144K
NUMA node0 CPU(s):     0-3

答案1

ht标志表示它支持超线程规范。此规范不要求 CPU 真正支持超线程,只要它支持规范中用于报告无法支持实际超线程的机制即可。

相关内容