검색결과 리스트
글
멀티스래딩, 다중 프로세서 : Multithreading, chip Multiprocessors
프로세서의 성능 평가 척도
- 명령어를 실행하는 비율(rate)이며 'MIPS rate = f x IPC'로 표현된다. 여기서 f는 프로세서 클록 주파수이며 IPC(instructions per cycle)는 사이클 당 실행되는 명령어들의 평균 수를 나타낸다.
- IPC를 높이기 위한 방법 : 명령어 수준 병렬성을 이룬다. 명령어 파이프라인, 수퍼스칼라, 그리고 멀티스래딩을 통해.
멀티스래딩(multithreading)의 정의
- 명령어 스트림(thread)의 병렬적 실행. 멀티스래드 프로세서 내의 스래드는 소프트웨어 스래드와 같거나 다를 수 있다.
- 응용 프로그램에게 보이는 user level 스래드와 OS에게만 보이는 kernel level thread는 모두 명시적(explicit) 스래드이며 모든 상용 프로세서와 대부분의 실험용 프로세서는 명시적 스래드를 사용한다.
- 묵시적(implicit) 멀티스래딩은 하나의 순차적 프로그램으로부터 추출한 다수의 스래드를 동시해 실행하는 것을 뜻하며, 컴파일러에 의해 정적으로 또는 하드웨어에 의해 동적으로 정의된다.
명시적 멀티스래딩의 방법
- 멀티스래드 프로세서는 동시에 실행될 각 스래드를 위해 별도의 Program Counter가 제공어야 하며, 넓게 보아 네가지 주요 방법이 존재한다.
interleaved multithreading
프로세서는 한번에 두 개 혹은 그 이상의 스래드를 다루며, 각 클록 사이클마다 어느 한 스래드로부터 다른 스래드로 스위칭한다. fine-grain multithreading이라고도 한다.
blocked multithreading
스래드의 명령어들은 cache miss와 같이 latency를 유발하는 사건이 발생할 때까지 연속해서 실행되고, 사건 발생 시 다른 스래드로 스위치된다. coarse-grain multithreading이라고도 부른다.
simultaneous multithreading: SMT
명령어들이 다수의 스래드로부터 수퍼스칼라 프로세서의 실행 유닛들로 동시에 발송(issue)된다. 넓은 수퍼스칼라 명령어 발송 능력과 다수의 thread context의 결합 형태이다. intel사의 Hyperthreading은 두 개의 스래드를 지원하는 SMT이다.
chip multiprocessing
전체 프로세서가 하나의 칩에 중복되어 들어가며, 각 프로세서는 별도의 스래드들을 처리한다. 파이프라인 설계에서 복잡도가 증가되는 것과는 상관없이 칩 상의 이용 가능한 영역이 효과적으로 사용될 수 있다는 장점이 있다. multicore(또는 chip level multiprocessing; CMP)가 여기에 속한다(?).
스칼라 프로세서의 경우
- 멀티스래딩을 지원하지 않는 단일 스래드 스칼라, interleaved multithreaded scalar, blocked multithreaded scalar가 있다.
- multithreading을 지원하지 않는 수퍼스칼라, 의존성으로 인해 사이클 당 발송 가능 명령어 수가 제한 받는 interleaved multirheading 수퍼스칼라, blocked multithreaded 수퍼스칼라, 단일 word에 여러 명령어가 담기도록 컴파일러에 의해 구성되는 VLIW(Very Large Instruction Word), interleaved multithreading VLIW, blocked multithreaded VLIW가 있다.
- simultaneous multithreading, (그림의 경우) 각기 2-발송 수퍼스칼라 프로세서이자 각각의 스래드가 사이클 당 두 개의 명령어 발송이 가능한 chip multiprocessor가 있다.
'Learning stuff' 카테고리의 다른 글
JIT (0) | 2013.03.05 |
---|---|
CPU Bound, I/O Bound, Memory Bound, Cache Bound (0) | 2013.03.05 |
cmp simulator (0) | 2013.03.05 |
Event-driven simulation (0) | 2013.03.05 |
trace_driven 이란 (0) | 2013.03.05 |