하이퍼 스레딩은 듀얼 코어를 사용하는 것보다 저렴하고 느린 대안입니다
가이드 프로그래밍 인텔 설명서 제 3 권 시스템 - 325384-056US 2015년 9월 8.7 "인텔 하이퍼 - 스레딩 기술 아키텍처는"HT 간략하게 설명합니다. 다음 다이어그램이 포함되어 있습니다.
TODO 실제 응용 프로그램에서 평균 백분율이 더 느려 집니까?
하이퍼 스레딩은 최신 단일 CPU 코어가 명령 파이프 라인 https://en.wikipedia.org/wiki/Instruction_pipelining을 사용하여 한 번에 여러 명령을 이미 실행하기 때문에 가능합니다.
명령 파이프 라인은 단일 코어 내부의 기능을 분리하여 회로의 각 부분이 주어진 시간에 사용되도록합니다 : 메모리 읽기, 명령 디코딩, 명령 실행 등
하이퍼 스레딩은 다음을 사용하여 기능을 더욱 분리합니다.
파이프 라인으로 명령을 실제로 실행하는 단일 백엔드
듀얼 코어에는 두 개의 백엔드가 있으며 이는 더 큰 비용과 성능을 설명합니다.
두 개의 프론트 엔드-두 개의 명령 스트림을 취해 위험 을 피함으로써 단일 백엔드의 파이프 라인 사용을 최대화하는 방식으로 주문합니다 .
듀얼 코어에는 각 백엔드 당 하나씩 2 개의 프런트 엔드가 있습니다.
명령어 재정렬로 인해 이점이 없어서 하이퍼 스레딩을 사용할 수없는 경우가 있습니다. 그러나 평균적으로 크게 향상됩니다.
단일 코어에있는 두 개의 하이퍼 스레드는 L3 만 공유하는 두 개의 다른 코어보다 더 많은 캐시 레벨 (TODO 수 또는 L1?)을 공유합니다.
각 하이퍼 스레드가 운영 체제에 노출하는 인터페이스는 실제 코어의 인터페이스와 유사하며 둘 다 개별적으로 제어 할 수 있습니다. 따라서 cat /proc/cpuinfo
각각 2 개의 하이퍼 스레드가있는 2 개의 코어 만 있지만 4 개의 프로세서를 보여줍니다.
그러나 운영 체제는 단일 코어에서 특정 프로그램의 여러 스레드를 실행하기 위해 동일한 코어에있는 하이퍼 스레드를 파악하여 캐시 사용을 향상시킬 수 있습니다.
이 LinusTechTips 비디오에는 기술이 아닌 간단한 설명이 포함되어 있습니다. https://www.youtube.com/watch?v=wnS50lJicXc