32 位有超线程,但 64 位没有?

32 位有超线程,但 64 位没有?

我遇到了一个奇怪的情况。我有两台硬件相同的电脑,都是 Core i5,型号完全相同。唯一的区别是操作系统,一台是 12.04 32 位,另一台是 12.04 64 位。

问题是超线程仅在 32 位操作系统上启用,而在 64 位操作系统上未启用。你能告诉我为什么吗?我该如何启用它?

我查看了 BIOS,发现两者具有完全相同的设置,超线程均在 BIOS 中启用,但未在 OS 中启用。

2 个逻辑处理器:

 Architecture:          x86_64  
CPU op-mode(s):        32-bit, 64-bit  
Byte Order:            Little Endian  
CPU(s):                2  
On-line CPU(s) list:   0,1  
Thread(s) per core:    1  
Core(s) per socket:    2  
Socket(s):             1  
NUMA node(s):          1  
Vendor ID:             GenuineIntel  
CPU family:            6  
Model:                 42  
Stepping:              7  
CPU MHz:               2294.665  
BogoMIPS:              4589.73  
Virtualization:        VT-x  
L1d cache:             32K   
L1i cache:             32K  
L2 cache:              256K  
L3 cache:              3072K  
NUMA node0 CPU(s):     0,1 

4 个逻辑处理器:

Architecture:          i686  
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:    2  
Core(s) per socket:    2  
Socket(s):             1  
Vendor ID:             GenuineIntel  
CPU family:            6  
Model:                 42  
Stepping:              7  
CPU MHz:               800.000  
BogoMIPS:              4589.36  
Virtualization:        VT-x  
L1d cache:             32K  
L1i cache:             32K  
L2 cache:              256K  
L3 cache:              3072K  

答案1

确保不要使用 进行引导,acpi=off因为这会禁用超线程。您可以使用 进行引导acpi=ht,它与 类似acpi=off,但仅启用 acpi 使用超线程所需的部分。

答案2

Core i5 名称下有很多 CPU。看看这个关联查看完整列表。

有 2 核(代号 Clarkdale 和 Arrandale)和 4 核(代号 Lynnfield)的酷睿 i5 CPU,有关更多信息,请参阅此链接

答案3

当您需要知道超线程是否启用而不需要重新启动系统(并查阅 BIOS)时,您只需查看输出cat /proc/cpuinfo并将其与 CPU 核心字段进行比较。

尽管cat /proc/cpuinfo显示了系统中的所有逻辑 CPU(处理器字段),但同级字段保存的是此条目所属的物理 CPU 的逻辑 CPU 数量(包括核心和超线程 LCPU)。

换句话说,如果你看到:

processor : 8
physical id : 9
siblings : 4
cpu cores : 2

这意味着 LCPU #8(系统中的第 8 个逻辑 CPU)是具有 2 个内核的物理 CPU 上的 4 个逻辑 CPU 之一。因此,超线程已启用。

如果 CPU 核心数与兄弟核数相同,则超线程被禁用。

相关内容