멀티 스레딩과 하이퍼 스레딩의 차이점은 무엇입니까? [닫은]


10

하이퍼 스레딩과 멀티 스레딩이라는 용어를 들었지만 그 차이점은 무엇입니까? 어떤 종류의 인텔 프로세서가 사용합니까?


2
직접 비교할 수없는 것을 비교하려고합니다. 그냥 관련. "발과 신발의 차이점은 무엇입니까?"라고 묻는 것과 같습니다. 그 외에도, 당신의 연구는 지금까지 무엇을 밝혀냈습니까? 인터넷에서 쉽게 수집 한 정의를 기반으로 차이점을 결정하는 데 정확히 어디에서 끊어지고 있습니까?
Ƭᴇcʜιᴇ007


1
난 몰라 둘 다 멀티 스레딩도 하이퍼 쓰레딩은 내가 그들을 알고 질문한다 넣어
상승

1
스택 오버플로 나치가 주제를 '주제에서 벗어난'주제로 마감했습니다. 아주 좋은 질문이며, 인기가 높고 폐쇄해서는 안됩니다.
Robbo_UK

답변:


19

멀티 스레딩 은 운영 체제 내에서 둘 이상의 실행 스레드를 실행하는 일반적인 작업을 말합니다. 멀티 스레딩은 다중 포함 할 수있는, 더 일반적으로 "멀티 프로세싱"라는 것입니다 시스템 프로세스 (동시에 Internet Explorer 및 Microsoft Word를 실행 예를 들어, Windows에서 간단한 예는 것을), 또는 여러가 하나 개의 프로세스로 구성 될 수 있습니다 스레드 내를 그것.

멀티 스레딩 (또는 멀티 프로세싱)은 소프트웨어 개념입니다. 실제로 컴퓨터에 CPU 코어가 하나만 있고 해당 코어가 하이퍼 스레딩을 지원하지 않더라도 Turing-complete CPU는 멀티 스레딩을 수행 할 수 있습니다. 멀티 프로세싱을 지원하기 위해 CPU는 운영 체제가 사용 가능한 시간을 "슬라이스"로 나누고 대략적으로 동일한 시간을 제공하는 다른 실행 스레드 실행을 인터리브 합니다. 각 스레드 (시간이 같을 필요는 없지만 프로세스가 더 높은 우선 순위를 요청하지 않는 한 일반적으로 수행되는 방식입니다).

사용 가능한 하드웨어 (동시) 실행 스레드 보다 주어진 시간에 실행을 시도하는 소프트웨어 스레드 수가 더 많을 때마다 이러한 소프트웨어 스레드는 사용 가능한 코어간에 "인터리브됩니다". "단일 프로세서"(하이퍼 스레딩이없는 하나의 CPU 코어)의 경우, 소프트웨어 스레드가 둘 이상인 경우 항상인터리브된다. 하이퍼 스레딩이 포함 된 4 코어 CPU가있는 경우 8 개의 "하드웨어 스레드"는 CPU가 동시에 8 개의 동시 실행 스레드를 실행할 수 있으므로 8 개의 소프트웨어 스레드를 실행하려고하면 모두 동시에 실행될 수 있음을 의미합니다. ; 그러나 9 개의 소프트웨어 스레드가있는 경우 하드웨어 스레드 중 하나가 스레드 쌍을 인터리빙해야합니다 (선택된 정확한 스레드 쌍은 운영 체제의 스케줄러 구현에 따라 다름).


반면 하이퍼 스레딩 은 Intel에서 개발 한 매우 구체적인 하드웨어 기술로, 단일 프로세서 코어가 여러 스레드 실행을보다 효율적으로 인터리빙 할 수 있습니다. 다시 말해, 하이퍼 스레딩이있는 CPU는 하이퍼 스레딩 된 CPU가 둘 사이의 균형을 맞출 수 있기 때문에 (때로는 더 많지만 하이퍼 스레딩은 일반적으로 2- 방법) 주어진 코어에서 실행 스레드.

그러나 하이퍼 스레딩은 하이퍼 스레딩의 성능 이점을 방해 할 수있는 일부 유형의 작업이 있지만 완전히 별도의 코어로 이러한 이벤트를 발생시킬 수있는 작업이 적기 때문에 완전히 별도의 물리적 코어를 갖는 것보다 속도가 느립니다.

다음 예제를 보자. "1 코어"는 모든 예제에서 정확히 동일한 것으로 가정합니다.

예 1 : 코어 2 개, 하이퍼 스레딩 없음.
예 2 : 코어 4 개, 하이퍼 스레딩 없음.
예 3 : 하이퍼 스레딩이있는 2 개의 코어.
예 4 : 하이퍼 스레딩이있는 4 개의 코어

이 경우 예제 4가 항상 가장 빠릅니다. 하이퍼 스레딩의 최적화를 활용하기에 매우 적합하지 않은 워크로드에서 예 2는 예 4보다 빠를 수 있습니다.

반면에, 예 3은 하이퍼 스레딩이 가장 유리한 워크로드에서 때때로 물리적 코어의 절반이 많더라도 예 2만큼 빠릅니다.

물론 예제 1은 모든 예제 중에서 가장 느리지 만 하이퍼 스레딩에 적합하지 않은 워크로드를 실행하는 경우 예제 3만큼 빠를 수 있습니다.

현대 인텔 CPU를 사용한 실제 벤치 마크에서 하이퍼 스레딩은 하이퍼 스레딩이없는 경우에 비해 성능이 20 ~ 40 % 향상되는 것으로 나타났습니다 ( "하이퍼 스레딩이없는"경우는 하이퍼 스레딩 기능을 비활성화하여 벤치 마크 됨). BIOS). 때때로 이 하이퍼 스레딩을 사용하지 않도록하는 성능을 보여줍니다 워크로드 될 것입니다 이점을 하지만, 이러한 작업은 실제 사용에서 드문 될 수 있습니다. 그러나 하이퍼 스레딩이있는 4 개의 코어 또는 8 개의 코어 중에서 선택할 수 있다면 각 코어 자체의 성능이 같다고 가정 할 때마다 매번 8 개의 코어 CPU를 선택합니다.


2
정확하게 말하면, 멀티 스레딩과 멀티 프로세싱은 같은 것이 아닙니다. 스레드는 연관된 프로세스와 실행 컨텍스트를 공유하지만 프로세스에는 자체 실행 컨텍스트가 있습니다. 그러나이 대답에 대해서는이 구분이 그렇게 중요하지 않습니다.
Tero Kilkanen

1
하이퍼 스레딩 기술은 "인텔이 만들지 않았습니다"; mainline x86의 경우 동시 멀티 스레딩의 상표명 일뿐입니다. 알파 21464가 생산 된 경우 SMT를 처음으로 사용하는 사용자 중 하나 일 것입니다. 인텔은 일부 펜티엄 ​​4에서 SMT (아마도 덜 알려진 프로세서는 제외)를 처음으로 출시했지만 인텔의 발명은 아닙니다.
Paul A. Clayton

2
애매한 : 하이퍼 스레딩이 아닌 엄격하게 느린 별도의 코어보다. L1 캐시를 공유하는 것이 코어 리소스를 최대한 활용하는 것보다 더 큰 이점을 제공하는 (인공적인) 사례를 고안 할 수 있습니다. 하나의 스레드가 지속적으로 활성화되고 다른 스레드가 간헐적 인 이벤트를 간단히 처리하는 경우도 있습니다. 코어를 간헐적으로 깨우는 것은 활성 코어에서 스레드를 깨우는 것보다 비쌉니다. ILP가 매우 낮은 스레드의 경우 캐시 경합이 문제가되지 않으면 단일 코어를 사용하는 에너지 효율성이 높아져 터보 부스팅 (더 나은 성능)이 가능해집니다.
Paul A. Clayton

3
SU에서는 답변을 편집 할 수 있으므로 개선하고 싶으시면 언제든지 문의하십시오. 또한 OP에 대한 명백한 지식 수준을 명심하십시오. 심지어 내 대답 자체는 아마도 그들이 기대하거나 원했던 것보다 더 기술적 인 것입니다. 나는 설명의 편의를 위해 일부 세부 사항을 의도적으로 고집했습니다. OP가 곧 프로세서를 설계 할 것인지 의심스럽고 필사적으로 이러한 모든 세부 사항을 알아야합니다. 그럼에도 불구하고 재미있는 의견.
allquixotic

1
내용을 변경하는 제안 된 편집 (예 : 문법 / 오타 수정 또는 명확성을 위해 표현하지 않음)은 거부 될 수 있습니다.
Paul A. Clayton

4

멀티 스레딩은 운영 체제 수준에서 병렬 처리의 용어입니다. 프로세서는 멀티 스레딩과 관련이 없습니다.

하이퍼 스레딩은 단일 프로세서 코어에서 여러 스레드의 "동시"처리를 구현하는 인텔 개념입니다. 실제 코어는 하나 뿐이지 만 운영 체제에는 두 개의 프로세서 코어가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.