2019년 4월 25일
동시 멀티스레딩(Simultaneous Multithreading)
I. 스레드의 병렬 실행, 동시 멀티스레딩
가. 동시 멀티스레딩(Simultaneous Multithreading)의 개념
- 하드웨어 자원 사용률 극대화를 위해 스레드(Thread) 우선순위 선정하여 실행 효율을 개선한 병렬 실행 기술
나. 동시 멀티스레딩의 특징
효율성 개선 | – 슈퍼스칼라 하드웨어 효율성(버블 제거) |
논리적 개선 | – 추가적 연산장치 없이 처리 스레드 증가 |
TLP | – 성능 증가 위해 스레딩에 의존 병렬 처리 |
- 동시 멀티스레딩 기술은 대표적으로 인텔의 하이퍼스레딩과 AMD의 클러스터 멀티스레딩 기술 존재
II. 동시 멀티스레딩의 기술 설명
가. 동시 멀티스레딩 기술 개념도
- 프로세서의 자원을 두고 경합하지 않는 경우 동시 멀티스레딩으로 활용률 향상 가능
나. 동시 멀티스레딩 기술 동작 절차
구분 | 구성요소 | 설명 |
---|---|---|
① 명령어 패치 | – 명령어 캐시로부터 명령어 추출 | |
② 명령어 혼합 | – 다수 PC 이용하여 사이클 별 명령혼합 | |
③ 명령어 버퍼저장 | – 혼합 명령어들을 명령어 버퍼에 저장 | |
④ 명령 디코더 처리 | – 명령어 버퍼 내용 디코더에서 처리 |
- 스레드가 같은 레지스터를 사용해도, 스레드 번호로 구분하므로 구별 가능함
III. 동시 멀티스레딩 기술의 한계점 및 대안
가. 동시 멀티스레딩 기술의 한계점
한계점 구성도 | 한계점 설명 |
---|---|
– 두 개의 스레드가 하나의 연산 유닛을 두고 경합 – 1코어/1스레드 성능 – 게임 등 한정된 연산에 따른 반복 수행 케이스 – 한정된 연산 케이스를 예방/완화 방안이 필요 |
나. 동시 멀티스레딩 기술의 한계점에 따른 대안
구분 | 구성요소 | 설명 |
---|---|---|
하드웨어 측면 | – Bulldozer Architecture | – 자주 쓰이는 유닛을 2코어 분화 – 분화 유닛이 클러스터 방식 처리 – wide core + Hyperthreading |
– 대용량 L2 캐시 활용 | – 자원 공유(캐시, TLB)에 따른 캐시 미스로 인한 성능 저하 예방 | |
소프트웨어 측면 | – 페치(Fetch) 전략 | – 패치 큐와 이슈 큐 명령어 수 기준, 적은 쓰레드에 우선권 |
– 이슈(Issue) 전략 | – 전체 동작 유닛 내 명령어 수가 가장 적은 스레드에 우선권 |
- 모의 시험 결과 프로세서 성능이 일반적으로 슈퍼스칼라 프로세서에 비해 2배 증가
One Comment
감사합니다. 큰 도움 되었습니다.~