![PatGelsinger](https://meeco.kr/files/member_extra_info/profile_image/674/640/024/24640674.jpg?20211226080540)
미니 인텔 15세대 CPU부터 하이퍼스레딩이 없어집니다
- PatGelsinger
- 조회 수 2075
- 2023.08.25. 23:02
인텔이 하이브리드 코어 아키텍처를 채택하면서 PC 칩 제조 업계의 로드맵이 크게 바뀌었습니다. 이제 점점 더 많은 애플리케이션이 성능과 효율성을 높이기 위해 "보조" 저전력 P 코어를 활용하고 있습니다. 물론 이 접근 방식에는 몇 가지 단점이 있으며, 인텔은 향후 몇 년 내에 이를 개선할 계획입니다. 첫 번째, 가장 급진적인 변화는 하이퍼스레딩을 보다 효율적인 의사 멀티스레드 솔루션으로 대체하는 것입니다: 렌탈 유닛
PC에서 실행 중인 다양한 애플리케이션은 하이퍼스레딩으로 탄생한 물리적 코어와 논리적 코어를 구분할 수 없습니다. 모두 동등한 것으로 간주합니다. 하드웨어 측면에서 하이퍼스레딩을 활성화하려면 논리적 스레드와 관련된 데이터를 추적하기 위해 각 코어에 몇 가지 추가 레지스터가 필요합니다. 프로그램 카운터는 이러한 레지스터 중 하나입니다.
특정 인스턴스에서 하이퍼스레딩을 사용하는 8코어 CPU의 실행 스레드는 여전히 8개에 불과합니다. 그 이유는 각 코어의 캐시(L1 및 L2)와 실행 장치(ALU)가 한 번에 하나의 스레드에서만 작동할 수 있기 때문입니다. 그렇다면 동시 멀티 스레딩이라고도 하는 하이퍼 스레딩은 CPU에서 어떤 역할을 할까요?
하이퍼스레딩은 CPU 코어(주로 실행 유닛)가 느려지지 않도록 보장합니다. 위 그림에서 하이퍼스레딩이 있을 때와 없을 때의 코어 사용률을 확인할 수 있습니다. 보시다시피, 기본 스레드가 멈추거나 입력을 기다리는 경우 논리적 스레드 또는 하이퍼 스레드가 이를 대신하여 버블이라고도 하는 낭비되는 CPU 시간을 활용합니다.
렌탈 유닛은 들어오는 명령어의 첫 번째 스레드를 두 개의 파티션으로 분할하여 복잡도에 따라 각각에 두 개의 다른 코어를 할당합니다. 간단한 예로, 더 길고 복잡한 절반은 P 코어에 할당되고 더 간단한 부분은 E 코어로 전송됩니다. 어느 쪽이 더 효율적일지 결정합니다.
![PatGelsinger](https://meeco.kr/files/member_extra_info/profile_image/674/640/024/24640674.jpg?20211226080540)
![Stellist](https://meeco.kr/files/member_extra_info/profile_image/270/270.jpg?20200522022807)
![나르자](https://meeco.kr/files/member_extra_info/profile_image/212/474/015/15474212.png?20190407143858)
![BarryWhite](https://meeco.kr/files/member_extra_info/profile_image/281/281.jpg?20230414162328)
![나르자](https://meeco.kr/files/member_extra_info/profile_image/212/474/015/15474212.png?20190407143858)
![LTE](https://meeco.kr/files/member_extra_info/profile_image/906/061/024/24061906.png?20190407143935)
![지나가던호갱](https://meeco.kr/files/member_extra_info/profile_image/197/763/033/33763197.jpg?20211023091937)
![LaPL](https://meeco.kr/files/member_extra_info/profile_image/963/981/026/26981963.jpg?20200224101205)
컴공의 컴퓨터 구조 시간만 해도 SMT는 단일 프로그램의 ILP의 한계 때문에 쓴다고 배우죠. 효과가 있냐 없냐는 어플리케이션의 특성에 따라 많이 갈립니다.
일례로... AVX, NEON같은 SIMD연산을 사용하는 코드를 멀티 쓰레드로 동작시킨다고 할 때, 물리 코어의 수 만큼만 작업을 할당하는 것에 비해서 논리코어까지 작업을 할당하면 성능이 떨어지는 경우가 있는데, 이미 SIMD연산이 ALU의 한계까지 H/W 자원을 사용하는 상황에서는 어차피 파이프라인이 꽉 차게 되니 SMT의 효용성이 거의 없죠.
![Windows98](https://meeco.kr/files/member_extra_info/profile_image/188/311/024/24311188.jpg?20220228113417)
하이퍼쓰레딩이 처음 등장하던 시절과 달리 이제 물리코어 자체가 많아진 시점이니...
없어도 큰 지장이 없다고 판단한 것이려나요?