+ 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다.
공격적 파이프라이닝
파이프라이닝을 적용할 때 이론상 CPI는 1이지만, 해저드로 인해 사실상 CPI가 1보다 크다.
=> 더 성능을 향상시키기 위해 CPI를 1 이하로 만들자.
명령어 레벨에서의 병렬성(ILP,. Instruction Level Parallel)을 증가시킨다.
슈퍼 파이프라이닝
파이프라인의 각 단계의 클럭 주기를 줄인다. (= 단계 수 증가)
< 문제점 >
1. Clock Skew 현상이 심화될 수 있다.
2. 파이프라인 해저드 문제 발생률이 더 높아지고, 해저드에 따른 성능 패널티가 높아진다.
3. 클럭이 높아짐에 따라 클럭 주기를 더 작게 나누기 힘들어진다. (어렵다.)
4. 클럭 속도 상승은 발열 문제를 발생시킨다.
5. HW 설계가 어려워진다.
슈퍼스칼라 파이프라이닝
파이프라인을 여러 개 두어, 한 클럭 사이클에서 여러 개의 독립된 명령어를 병렬적으로 처리할 수 있게 한다.
정적 스케쥴링과 동적 스케쥴링을 함께 사용한다.
- 독립적 명령어들은 동시에 처리하고, 의존성이 있으면 순차 수행한다.
- 최대한 많은 명령어를 수행하기 위해 out-of-order를 수행한다.
< 문제점 >
명령어 스케쥴링, 컴파일러의 로직, HW 설계가 매우 복잡하다.
오늘날 대부분 컴퓨터가 사용한다.
VLIW (Very Long Instruction Word) 구조
하나의 명령어 묶음(Instruction Word)에 여러 개의 독립적인 명령어를 포함시킨다.
조건
1. 프로세서 내에 여러 개의 실행 장치(ALU 등)를 갖는다.
2. 한 명령어 Word 내에 실제로 여러 개의 연산 코드와 피연산자를 집어 넣어 명령어를 실행한다.
+ 각각 별도의 실행 장치에서 실행하여 병렬성을 높인다.
3. 동시에 실행 가능한 명령어는 서로 간 의존성이 없도록 구성한다.
컴파일러에 의한 정적 분석을 통해 독립된 명령어를 찾는다.
- HW적 복잡도는 낮고, 발열 문제가 적다.
< 문제점 >
1. 재컴파일이 필요하다.
2. 컴파일러 설계가 어렵다.
3. 전적으로 정적 스케쥴링에 의존하면서, 동적 스케쥴링은 어렵다.
=> 예측이 용이하고 복잡하지 않은 단순 계산 프로그램 전용 프로그램 프로세서에 강점을 보인다.
ex) GPU
'Computer Science > Computer Architecture' 카테고리의 다른 글
[Computer Architecture] Cache Memory 개요 (2) | 2023.11.25 |
---|---|
[Computer Architecture] 메모리 (0) | 2023.11.24 |
[Computer Architecture] 해저드 (0) | 2023.11.18 |
[Computer Architecture] 파이프라이닝 (1) | 2023.11.11 |
[Computer Architecture] 데이터 경로 (0) | 2023.11.05 |