Simultaneous Multi Threading

Creator
Creator
Seonglae ChoSeonglae Cho
Created
Created
2020 Apr 4 12:26
Editor
Edited
Edited
2023 Sep 13 7:9
Refs
Refs

simultaneous multi-threading (SMT)

hyper threading
• Instructions from multiple threads issued on same cycle
• Uses register renaming and dynamic scheduling facility of multi-issue architecture
• Pro: Maximizes resource utilization
• Cost: More hardware support
notion image
kind of fine grained in OoO - fixed interleave - if thread not ready → insert pipeline bubble - hardware thread scheduling → priority - software(support) controlled interleave
if no inter-thread dependency, after complete switch immediately and inner-thread dependency no matter while changing thread
 

2000년대에 들어서 '하나의 CPU에 하나의 코어'를 넘어 "하나의 CPU에 여러 개의 코어"라는 멀티코어 프로세서와 '하나의 코어에 하나의 스레드'라는 개념을 넘어, "하나의 코어에 여러 개의 스레드"라는 '다방향(Multi-Way) SMT' 개념이 도입되었다.
하드웨어 자체의 변화는 다방향 SMT로 동작하기 위한 별도의 하드웨어 모듈이 추가된 것 말고는 없으며, 코어 하나에 동시에 돌릴 스레드의 개수를 많이 우겨 넣어봤자 CPU 코어 하나의 최대 성능 이상은 절대 발휘할 수 없지만, 프로그램의 한계 때문에 쓰지 못했던 CPU 전체의 남은 성능을 끝까지 쥐어 짜는 셈이다.
notion image
물론 물리적인 코어라는 자원 자체는 그대로이기 때문에 물리적인 코어 2개보다는 성능이 확실히 떨어진다. 이 논리로 양방향 SMT가 있어봤자 느려터졌다고 하지만, 그래도 단일 코어 환경에 비하면 멀티태스킹 사용 시에 한 처리가 많은 연산을 할 경우 상대적으로 다른 프로세스에 훨씬 많은 여유를 줄 수 있는 장점이 있다

Recommendations