동시 멀티스레딩: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
편집 요약 없음
Chocownd (토론 | 기여)
잔글 fix typo
14번째 줄:
 
슈퍼스칼라는 [[칩 수준 멀티스레딩]] ([[CMT]])이 하나의 프로세서에 위치한 여러 개의 스레드로부터 명령어를 실행하는 동안 여러 개의 명령어를 한꺼번에 실행하는 것을 뜻한다. 칩 안에서 하나 이상의 스레드를 지원하는 방법에는 여러가지가 있다.
* 인터리빙 멀티스레딩: 각기 다른 스레드로부터 여러 개의 명령어를 인터리빙으로 처리하여 만들어내며 이를 [[시간적 멀티스레딩]]이라고도 한다. 그 다음에는 세밀한 멀티스레딩이나 세밀하지 않은 멀티스레딩으로 나뉘며 이는 인터리빙을 만들어내는 주기에 따라 달라진다. 곧 [[배럴 프로세서]]에서와 같은 세밀(fine-grain)한 멀티스레딩은 모든 사이클이 끝난 뒤에 여러 개의 스레드를 위한 명령어를 만들어내지만 세밀하지 않은(coarecoarse-grain) 멀티스레딩은 현재 실행 중인 스레드가 조금 긴 레이턴시 이벤트 (페이지 실패 등)를 일으키면 다른 스레드로부터 명령어를 만들어내도록 전환하기만 한다. 세밀하지 않은 멀티스레딩은 스레드 간에서 덜 [[문맥 교환]]적인 환경에 더 일반적이다. 이를테면 인텔의 [[몬테시토 (프로세서)|몬테시토]] 프로세서는 세밀하지 않은 멀티스레딩을 이용하지만 썬의 [[울트라스팍 T1]]은 세밀한 멀티스레딩을 이용한다. 이러한 프로세서에는 하나의 코어에 하나의 파이프라인만 있으며, 사이클마다 많으면 하나의 명령어만 만들어낼 수 있기 때문에 인터리빙 멀티스레딩만 사용할 수 있다.
* 동시 멀티스레딩 (SMT): 사이클 하나의 여러 개의 스레드로부터 여러 개의 명령어를 만들어낸다. 이때 프로세서는 슈퍼스칼라여야 한다.
* 칩 수준 멀티스레딩 (CMP, [[멀티코어]]): 두 대 이상의 프로세서가 한 칩에 내장되어 있으며 각각은 스레드를 독립적으로 실행한다.