在Windows 7注册表中禁用超线程


18

某些BIOS的选项没有禁用CPU超线程的选项,它是否可以在Windows 7注册表中禁用它?还是工具或软件?

我知道msconfig的“启动”选项卡(高级选项)并在其中禁用处理器,不确定是否禁用了完整的内核或超线程,或者如何分辨。

32位或64位Windows 7

编辑:

假设它是具有超线程的双核或更多个。

在设备管理器中,它在我的i5英特尔处理器上显示4个处理器,但您也不能禁用它们。


5
我认为这是本月不可能解决的问题。
摩押

您真的不能在BIOS中禁用它吗?是最新版本吗?
KCotreau

2
它是一台HP PC,无论其版本如何,都以残缺的BIOS闻名。
摩押

1
并非所有i5芯片的创建方式都是相同的,有些禁用了4个物理内核并禁用了超线程,而有些禁用了2个内核并启用了超线程-通常笔记本电脑使用超线程,而台式机芯片更可能是四核变体。您使用的是台式机还是笔记本电脑,您知道i5型号吗?
Dustin G.

我不会为超线程担心的太多。自P4以来,它已经取得了很大的进步。如今,它并不会提高性能。
surfasb

Answers:


3

英特尔核心处理器数据表,第1卷,第38页:

英特尔超线程技术

[...]必须使用BIOS启用此功能,并且需要操作系统支持。

这是因为超线程是CPU芯片上实际的物理硬件,并且因此可以启用/禁用在硬件水平

如果您知道哪个应用程序不能很好地与超线程配合使用,则可以在拥有XP的情况下使用StartAffinity之类的工具。

如果使用Windows 7,则有一个内置start命令可以执行此操作。使用以下命令启动具有特定处理器亲缘关系的进程(同样,该/AFFINITY参数仅在Windows 7中添加):

start /AFFINITY <mask> "C:\yourprogram.exe" 

对于<mask>要运行的处理器,应该在此处用十六进制掩码替换(处理器掩码只是启用/禁用该关联的二进制掩码,因此00000101启用CPU0和CPU2,而00000010仅启用CPU1)。

要计算十六进制值,您可以转换二进制面具,采取2总和要运行在(从0开始)计划的核心的强大动力,并将该值转换为十六进制。

例如,如果我有一个四核系统,并且只希望该进程在CPU0和CPU2上执行,我将添加2 0 + 2 2 = 1 + 4 =5。将5转换为十六进制,即5,然后将其设置为您的<mask>。您也可以将00000101转换为十六进制。如果您不知道如何转换这些基数,则可以使用此转换表


我了解亲和力,但这不会禁用超线程,而只会禁用完整的内核。我认为操作系统内部不可能禁用“仅超线程”功能,而只能在BIOS中禁用该功能,但是某些BIOS并没有该选项,主要是在HP电脑上,我希望有人能证明我做错了。
摩押

1
每个物理核心在操作系统中都显示为两个逻辑核心。如果那些禁用一个合乎逻辑的核心,实际上会禁用超线程,因为指令只发送到一个两个逻辑内核的,所以没有超线程实际上做-指令队列直接发送到物理核心。
突破

我明白了,但是它只禁用了那个核心的超线程。我都需要禁用。
摩押

1
@Moab然后,使用上面列出的掩码,仅使所有偶数或奇数内核禁用其他所有内核。因此,如果您有四个逻辑核心,请使用00000101或十六进制5作为十六进制掩码,以仅将CPU0和CPU2设置为启用状态。如果您有8个逻辑核心,则位掩码将为01010101,或十六进制为55(仅启用CPU0、2、4和6)。
突破

2
@Moab在技术上没有关系,只要您禁用所有其他内核即可。每一组两个逻辑核心组成一个物理核心的线程处理程序。
突破

2

禁用超线程是仅BIOS的事情。

我假设您想禁用超线程,因为您的应用程序尚未针对此功能进行优化,并且性能可能有所降低?

当查看CPU编号时,物理内核是奇数编号的-因此在双核HT系统中,内核1和3将是“实际” CPU。如果在msconfig中选择2个内核,则将启用CPU的1和2,因此您将激活物理和逻辑(HT)CPU-如果您遇到与HT有关的软件问题,这将对您无益。


是的,但是......你可以用任务管理器来设置亲和力的CPU 1和3
本·福格特

达斯汀·G(Dustin G),这就是我的想法,但是要找到关于此的任何文章几乎是不可能的。谢谢。
摩押

0

在Windows中,最简单的方法是更改​​explorer.exe的亲和力,因为从它启动的每个进程都将继承亲和力掩码。距离理想还差很远,但是至少每个会话只能执行一次。


我不确定这是否能回答问题,因为进程亲和力与超线程不是同一回事。
Doktoro Reichard'5

幸运的是,事情不是基于您确定或确定的,而是基于在MSDN中的指定方式(例如)msdn.microsoft.com/en-us/library/windows/desktop/…GetLogicalProcessorInformation提供了处理物理/逻辑上的流程亲和力处理器(这是一种确切的方法)。在具有2个逻辑内核SMT的超线程系统上(例如超线程),内核#0是亲和力掩码等的位0和1,内核#1是位2和3 ...(这是一种经验方法)。如果您能避免对您仅有直觉的事情表示敬意,我将不胜感激
E. Attia 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.