듀얼 코어 CPU가 쿼드 코어 CPU로 인식되는 이유는 무엇입니까?


52

내 프로세서는 Intel Core i3-380m 입니다. 보시다시피 2 코어와 4 스레드입니다.

우분투 11.04와 Windows 7은 모두 쿼드 코어 CPU라고 생각합니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

왜 이런거야? CPU 당 4 개의 처리 장치로 나누어 져 코어 당 2 개의 스레드가 있기 때문입니까?

답변:


43

언급했듯이 코어 당 2 개의 스레드가있는 듀얼 코어 시스템이 있습니다.

이것은 Intel에서 하이퍼 스레딩 으로 판매하며 여러 제조업체에서 여러 해에 걸쳐 다양한 방식으로 수행되었습니다.

가장 간단한 형태로 설명하기 위해 각 CPU 코어는 "코어"와 해당 코어 주변의 다양한 아키텍처로 구성되어 각 스레드에 대한 상태 및 프로세스 정보를 유지합니다. 단일 스레드 코어는 한 번에 1 스레드 분량의 상태 정보를 유지하는 아키텍처를 가지고 있으며, 하이퍼 스레드 코어는 2 개의 개별 상태 정보 세트를 유지하므로 코어의 다른 부분이 필요한 한 두 개의 개별 프로세스를 한 번에 실행할 수 있습니다 ( 코어가 여러 다른 유형의 처리 장치로 구성된 여러 단위로 구성되므로 합리적으로 발생할 수 있습니다.

시스템에 CPU가 표시되는 방식을 단순화하기 위해 각 하이퍼 스레드는 별도의 CPU로 표시되므로 듀얼 코어, 코어 당 2 개의 스레드 프로세서가 쿼드 코어 프로세서로 나타납니다.

운영 체제에서 코어 파킹 (최신 Intel 프로세서의 기능)을 사용하여 운영 체제에서 하이퍼 스레딩 코어의 절반을 일시 중단 할 수 있으므로 하이퍼 스레딩의 추가 처리 기능이 필요하지 않은 경우 단일 스레드 성능 코어가 더 이상 2 개의 스레드에서 캐시를 공유하지 않기 때문에 증가하여 이제 온 코어 캐시를 단일 스레드에 완전히 할당 할 수 있습니다.


설명 주셔서 감사합니다. 그렇다면 스레드가 코어에 있다고 말하면 프로세서의 코어는 무엇입니까?
seriousdev

2
어떤 식 으로든 그렇습니다. OS는 프로세서를보고 프로세서에있는 코어 수와 각 코어가 지원하는 스레드 수를 알고 있습니다. 이제 CPU 사용량이 "코어 당"이 아니라 "스레드 당"이라는 것입니다. 그것은 아니다 아주 (각 스레드가 실제로 완전히 본격적인 CPU 코어와 같은 비 하이퍼 스레딩 인식 OS에 나타나지 않는) 그렇게 간단하지만은 그것의 일반적인 생각이다.
Mokubai

@Mokubai 코어 파킹 링크가 작동하지 않습니다.
Biswapriyo

49

그 이유는 프로세서가 지원하는 하이퍼 스레딩 입니다. 하이퍼 스레딩은 추가 프로세서와 같지 않지만 실제로 멀티 스레드 응용 프로그램의 성능을 향상시킬 수 있습니다. 물리적으로 존재하는 각 프로세서 코어에 대해 운영 체제는 두 개의 가상 프로세서를 처리하고 가능한 경우 이들간에 워크로드를 공유합니다.


7
이것을 물리적 코어와 논리적 코어로 알려져 있습니까?
xdumaine

11
그렇습니다. 육체적 핵심은 ... 육체적입니다. 만질 수 있습니다. 하이퍼 스레드 코어는 실제적이지 않기 때문에 논리적입니다. 가상화를 통해 물리적 코어를 논리적 코어로 나눌 수도 있습니다.
Keltari

3
@Keltari 실제로, 물리적 인 부분이 있습니다 ... 하이퍼 스레딩은 CPU 코어의 하드웨어 구성 요소입니다 (하드웨어 수준에서만 비활성화 할 수 있습니다). 자세한 내용은 이 인텔 백서 를 참조하십시오. 기본적으로 두 개의 실제 실행 단위간에 핵심 리소스를 공유합니다. 기술적으로 하이퍼 스레드 코어에서 OS가 보는 두 코어는 "논리적"이며 물리적 및 논리적 코어는 없습니다.
획기적인

1
사실, 하이퍼 스레딩은 프로세서의 물리적 부분이지만 물리적 코어는 아닙니다.
Keltari

1
HT를 생각하는 가장 좋은 방법은 분리 된 코어보다 형제와 더 많은 리소스를 공유하는 "핵심 절반"입니다. 그러나 스레드는 "자체적으로"스레드를 실행할 수 있으며 OS는 스레드를 스레드 실행 단위 (코어와 연관된)로 처리합니다.
crasic

12

클럭 사이클 당 하나의 CPU 명령보다 훨씬 복잡합니다.

이제 여러 단계로 구성된 각 명령에 대한 파이프 라인 이 있습니다. 나는 41 년 전까지 들었지만, 현재의 CPU 파이프 라인이 어떻게 생겼는지 전혀 모른다. 파이프 라인이 충분히 길면 마지막 명령이 완료되기 전에 때로는 동일한 클럭 사이클에서 파이프 라인에서 새 명령을 시작할 수 있으므로 단일 코어가 한 번에 두 가지 작업을 효과적으로 수행한다는 것을 알고 있습니다.

그러나 여기에는 트릭이 있습니다. 프로세서를 특정 프로그램의 명령을 통해 씹는 속도를 높이기 위해 이것을 사용할 수는 없습니다. 다음과 같은 명령은 아직 결정되지 않은 이전 명령의 결과에 따라 달라질 수 있습니다. 긴 파이프 라인을 안전하게 활용하기 위해 칩은 운영 체제 스케줄러에 두 개의 개별 프로세서 코어를 제공하고 동일한 "코어"에 대한 두 개의 명령이 동시에 파이프 라인에 존재하지 않도록 각 코어로 전송되는 대체 명령을 제공합니다. 이런 식으로 우리는 동시에 실행되는 명령이 서로 간섭하지 않도록 할 수 있습니다. 이것을 하이퍼 스레딩 이라고 합니다.

하이퍼 스레딩이 CPU에서 얻는 작업량을 크게 늘릴 수는 있지만 물리적 코어를 많이 보유한 것만 큼 좋은 곳은 없습니다. 작업 부하에 따라 15 % 정도 개선되거나 40 % 정도 개선 될 수 있습니다. 경우에 따라 나머지 코어가 해당 코어의 L1 / L2 캐시에 완전히 독점적으로 액세스 할 수 있도록 기능을 비활성화 할 수도 있습니다 (이는 전용 데이터베이스 서버로 수행됨).

칩이 4 개의 스레드가있는 2 개의 코어를 가지고 있다고 광고하면 하이퍼 스레딩을 지원하는 듀얼 코어 프로세서라는 의미입니다.


2

보고 받아 이 인텔 페이지에서를 - 그것은 하이퍼 스레딩이 당신의 작업 속도를 높여 방법을 보여주는 애니메이션 많이 있습니다.

(가) Utilization of Processor Resources최고의 애니메이션이며, 그것을보고하고는 "사전"버튼을 클릭합니다.


1

왜 이런거야? CPU 당 4 개의 처리 장치로 나누어 져 코어 당 2 개의 스레드가 있기 때문입니까?

간단히 말하면 대답은 '예'입니다. CPU의 각 코어는 두 개의 독립적 인 스레드를 지원할 수 있으므로 총 4 개입니다. 그러나 쿼드 코어 단일 스레드 CPU와 동일한 성능을 갖는 것은 아닙니다. 실제로 듀얼 코어 이중 스레드 CPU의 성능은 쿼드 코어 단일 스레드 CPU의 성능보다 낮습니다. AMD Phenom X4와 같습니다.


왜 그런지 아십니까?
seriousdev

1
이중 스레드 코어에서는 재정렬 버퍼와 같은 하드웨어 리소스가 두 스레드간에 공유되고 단일 스레드 CPU에서는 모든 리소스가 하나의 코어에 전용되기 때문입니다. 멀치 스레드 코어를 사용하면 하드웨어 사용률과 처리량이 증가하지만 지연 시간에는 좋지 않습니다. 많은 트레이드 오프가 관련되어 있습니다. 따라서 "성능"이라는 단어는 실제로 모호합니다. 평범한 사람들에게는 단일 스레드의 대기 시간을 의미합니다.
aminfar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.