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

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



답변

멀티 스레딩 은 운영 체제 내에서 둘 이상의 실행 스레드를 실행하는 일반적인 작업을 말합니다. 멀티 스레딩은 다중 포함 할 수있는, 더 일반적으로 “멀티 프로세싱”라는 것입니다 시스템 프로세스 (동시에 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를 선택합니다.


답변

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

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