超线程在 32 位上而不是在 64 位上?

mad*_*max 4 cpu

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

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

我查看了 BIOS,两者都具有完全相同的设置,在 BIOS 中启用了超线程,但在操作系统中未启用。

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 
Run Code Online (Sandbox Code Playgroud)

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  
Run Code Online (Sandbox Code Playgroud)

Sym*_*min 5

确保您没有启动,acpi=off因为这会禁用超线程。您可以使用 启动acpi=ht,就像 一样acpi=off,但只启用 acpi 所需的部分以使用超线程。