Windows 7 레지스트리에서 하이퍼 스레딩 비활성화


18

일부 바이오스의 CPU 하이퍼 스레딩을 비활성화 할 수있는 옵션이없는 경우 Windows 7 레지스트리에서 비활성화 할 수 있습니까? 아니면 도구 또는 소프트웨어?

msconfig 부팅 탭 (고급 옵션) 및 프로세서 비활성화에 대해 알고 있습니다. 완전한 코어 또는 하이퍼 스레드를 비활성화하는지 또는 알리는 방법을 잘 모르겠습니다.

32 비트 또는 64 비트 Windows 7

편집하다:

하이퍼 스레딩이있는 듀얼 코어 이상이라고 가정합니다.

장치 관리자의 i5 Intel 프로세서에 4 개의 프로세서가 표시되며 dang도 비활성화 할 수 없습니다.


5
나는 이것이 이번 달의 불가능한 질문이라고 생각합니다.
Moab

BIOS에서 실제로 비활성화 할 수 없습니까? 최신 버전입니까?
KCotreau

2
버전에 관계없이 주름진 바이오스로 잘 알려진 HP PC입니다.
Moab

1
모든 i5 칩이 동일하게 생성되는 것은 아니며 일부는 4 개의 물리적 코어와 하이퍼 스레딩이 비활성화되어 있고, 일부는 2 개의 코어와 하이퍼 스레딩이 활성화되어 있습니다. 일반적으로 notebbook은 하이퍼 스레딩을 사용하고 데스크탑 칩은 쿼드 코어 변형 일 가능성이 높습니다. 데스크탑 또는 노트북을 사용하고 있으며 i5 모델을 알고 있습니까?
더스틴 G.

하이퍼 스레딩에 대해 너무 걱정하지 않아도됩니다. P4 이후 크게 개선되었습니다. 요즘에는 성능이 저하되지 않습니다.
surfasb

답변:


3

보내는 사람 인텔 코어 프로세서 데이터 시트, 1 권 , 38 페이지 :

인텔 하이퍼 스레딩 기술

[...]이 기능은 BIOS를 사용하여 활성화해야하며 운영 체제 지원이 필요합니다.

하이퍼 스레딩은 CPU 다이의 실제 물리적 하드웨어이므로 하드웨어 수준 에서만 활성화 / 비활성화 할 수 있기 때문 입니다.

하이퍼 스레딩에서 작동하지 않는 응용 프로그램을 알고 있다면 XP가있는 경우 StartAffinity 와 같은 도구를 사용할 수 있습니다 .

Windows 7을 사용하는 경우이를 수행 할 수있는 기본 제공 start명령이 있습니다. 다음 명령을 사용하여 특정 프로세서 선호도로 프로세스를 시작하십시오 (다시 말해서 /AFFINITY인수는 Windows 7에서만 추가되었습니다).

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

어디에서 <mask>실행할 프로세서의 16 진수 마스크를 교체해야합니다 (프로세서 마스크는 단지 바이너리 마스크 / 수 있도록 그 친화력을 해제, 그래서 00000101 CPU0과 CPU2을 가능하게하고, 00000010은 CPU1 수 있습니다).

16 진수 값을 계산하려면 이진 마스크를 변환 하거나 2의 합을 프로그램을 실행하려는 코어의 제곱 (0부터 시작)으로 가져 와서 그 값을 16 진수로 변환 할 수 있습니다.

예를 들어, 4 코어 시스템을 가지고 있고 프로세스가 CPU0 및 CPU2에서만 실행되도록하려면 2 0 + 2 2 = 1 + 4 = 5를 추가합니다. 5를 16 진수로 변환하면 5가됩니다. 로 설정하십시오 <mask>. 00000101을 16 진으로 변환 할 수도 있습니다. 이러한 염기를 변환하는 방법을 모르는 경우이 변환 표를 사용 하면됩니다 .


선호도를 이해하지만 하이퍼 스레드를 비활성화하지 않고 완전한 코어 만 비활성화합니다. OS 내에서 하이퍼 스레딩 만 사용할 수 있다고 생각하지 않습니다. 바이오에서만 가능하지만 일부 바이오스에는 대부분 HP PC에서 해당 옵션이 없습니다. 누군가 나를 잘못 증명할 수 있기를 바랍니다.
Moab

1
각 물리적 코어는 OS에서 두 개의 논리적 코어로 나타납니다. 해당 논리 코어 중 하나를 비활성화 하면 명령이 두 개의 논리 코어 중 하나로 만 전송 되므로 하이퍼 스레딩이 실제로 수행되지 않으므로 하이퍼 스레딩 을 효과적으로 비활성화 할 수 있습니다 . 따라서 하이퍼 스레딩이 수행되지 않습니다. 명령어 큐는 물리적 코어로 직접 전송됩니다.
획기적인

나는 그것을 얻지 만 그 하나의 코어에 대해서만 하이퍼 스레딩을 비활성화합니다. 둘 다 비활성화해야합니다.
Moab

1
@Moab 그런 다음 위에 나열된 마스크를 사용하여 모든 짝수 또는 홀수 번호의 코어를 활성화하여 다른 모든 코어를 비활성화합니다. 따라서 4 개의 논리 코어가있는 경우 16 진수로 00000101 또는 5를 사용하여 16 진 마스크로 사용하여 CPU0 및 CPU2 만 사용하도록 설정하십시오. 논리 코어가 8 개인 경우 비트 마스크는 01010101 또는 16 진수 55 (CPU0, 2, 4 및 6 만 활성화)입니다.
획기적인

2
@Moab 다른 모든 코어를 비활성화하는 한 기술적으로 중요하지 않습니다. 두 개의 논리적 코어 세트는 모두 단일 물리적 코어에 대한 스레드 핸들러를 구성합니다.
획기적인

2

하이퍼 스레딩 비활성화는 BIOS 전용입니다.

이 기능에 최적화되지 않은 응용 프로그램이 있고 성능이 저하 될 수 있으므로 하이퍼 스레딩을 비활성화하고 싶다고 가정합니다.

CPU 번호를 볼 때 물리적 코어는 홀수입니다. 따라서 듀얼 코어 HT 시스템에서 코어 1과 3은 "실제"CPU입니다. msconfig에서 2 개의 코어를 선택하면 CPU 1과 2가 활성화되어 HT (Physical and Logical) CPU가 활성화되므로 HT 관련 문제가있는 소프트웨어에 문제가있는 경우 이점이 없습니다.


예.하지만 작업 관리자를 사용하여 CPU 1과 3에 대한 선호도를 설정할 수 있습니다.
Ben Voigt

더스틴 G, 그것이 내가 생각한 것이지만 이것에 관한 기사를 찾는 것은 거의 불가능합니다. 감사.
Moab

0

Windows에서 가장 쉬운 방법은 explorer.exe의 선호도를 변경하는 것입니다.이 프로세스에서 시작된 모든 프로세스는 선호도 마스크를 상속하기 때문입니다. 여전히 완벽하지는 않지만 적어도 세션 당 한 번만 수행하십시오.


프로세스 친화력이 하이퍼 스레딩과 동일하지 않기 때문에 이것이 질문에 대한 대답인지 확실하지 않습니다.
Doktoro Reichard

다행히도 상황은 확실하지 않은 것이 아니라 MSDN에 지정된 방식 (예 : msdn.microsoft.com/en-us/library/windows/desktop/)을 기반으로합니다. GetLogicalProcessorInformation은 물리적 / 논리를 처리하는 프로세스 친 화성을 제공합니다. 프로세서 (정확한 방법입니다). 2- 논리 코어 SMT (예 : 하이퍼 스레딩)가있는 하이퍼 스레딩 시스템에서 코어 # 0은 비트 0 및 1, 선호도 마스크의 코어 # 1 비트 2 및 3입니다 (이것은 실험적인 방법입니다). 직감 만있는 것들을 피하는 것을 피할 수 있다면 감사하겠습니다.
E. Attia
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.