CPU_파이프라인, 슈퍼 파이프라인, 슈퍼 스칼라, 슈퍼 파이프라인 슈퍼 스칼라, VLIW(Very long Instruction World), EPIC, 해저드
▣ CPU_파이프라인, 슈퍼 파이프라인, 슈퍼 스칼라, 슈퍼 파이프라인 슈퍼 스칼라, VLIW(Very long Instruction World), EPIC, 해저드
CPU 처리성능 향상을 위해 Instruction 처리 과정을 여러 단계로 세분화하는 병렬처리 기법
- Instruction Fetch (IF) : 다음에 실행할 명령어를 명령어 레지스터 저장
- Instruction Decode (ID) : 명령어를 해석
- Execution (EX) : 해석한 결과로 명령어 실행
- Write Back (WB) : 실행결과 메모리에 저장
– T: 명령어 실행 시간, k: 파이프라인 단계, N 실행 명령어 수
구분 | 개념도 | 내용 |
파이프라인 | 순차적인 병렬처리가 아닌 상호 충돌하지 않은 명령어 처리 단계를 병렬로 처리하여 다중 명령의 실행을 효과적으로 수행하고 성능을 향상시키는 병렬처리 기법 (명령어의 실행 Overlapping으로 구현) - Micro Instruction 기반 병렬처리 - Pt = k + (N – 1) |
![]() |
슈퍼 파이프라인 | 하나의 Pipeline을 여러부분으로 나누어 연속적인 흐름과정을 처리함으로써 성능을 향상하는 병렬처리 기술 Pipeline Stage를 세분화하여 Clock Cycle시간을 줄여 속도향상 - CPU Clock Degree 기반 파이프라인 - SPt = k + 1/n * (N – 1) n: CPU Clock degree (1 Clock 당 수행 횟수) |
![]() |
슈퍼 스칼라 | 프로세서 내에 Pipeline된 ALU를 여러개 포함시켜서 매 사이클마다 복수의 명령어들이 동시에 실행될 수 있도록 하는 병렬 처리 기술 - 다수 기능 유닛기반 파이프라인 중첩 - SSt = k + (N – m)/m m: 파이프라인 중첩 수 |
![]() |
슈퍼 파이프라인 슈퍼 스칼라 |
- CPU Clock Degree기반 파이프라인 중첩 - SPSSt = k + (N – m)/(m * n) |
![]() |
VLIW (Explicitly Parallel Instruction Computing) |
동시에 수행될 수 있는 명령어들을 컴파일러 수준에서 추출하여 하나의 명령어로 압축하여 수행하는 병렬처리 기술(컴파일시 검출) - 동시 수행 명령어를 컴파일러 수준으로 추출 - Instruction 압축 |
![]() |
EPIC | - 컴파일러가 병렬성을 찾아내는 아키텍처 - HP와 Intel 공동개발 Intel Itanium (IA64) - 사용자의 컴파일러가 소스 코드로부터 병렬성을 찾아내고 병렬처리용 기계어 코드를 생성하여 수행하는 방식 |
![]() |
암기 슈파분슈스병
* 출처 : 도리의 디지털라이프
– 파이프라인 기반 명령어 처리 시 병렬처리 특성으로 인한 구조적, 데이터, 제어 해저드에 따른 대응 필요
종류 | 세부 설명 | 해소방안 |
구조적 해저드 (Structural Hazards) |
파이프라인의 두 명령어가 동시에 한 하드웨어에 접근할 때 발생 같은 메모리 접근 등 하드웨어가 병행 수행을 지원하지 않는 경우 자원 충돌(Resource Conflicts) 발생 |
명령어 메모리와 데이터 메모리 분리 |
데이터 해저드 (Data Hazards) |
현재 파이프라인에서 수행중인 명령에서 사용하는 데이터가 다음 파이프라인에서도 사용될 경우 다음 파이프라인은 현재 파이프라인이 해당 데이터를 모두 사용할 때까지 기다려야 함 명령 값이 이전 명령에 종속되어 대기함 |
Forwarding, 컴파일러의 명령어 스케쥴링 |
제어 해저드 (Control Hazards) |
분기가 발생하면 다음 파이프라인은 모두 의미가 없어짐 분기(jump, branch 등) 명령어에 의해 처리 |
분기 예측, 지연 분기(명령어 실행순서를 재배치) |
2017년 86번
정답 : 3번
1) k-단계 명령어 파이프라인을 사용하면 k배를 초과하는 속도 향상을 얻을 수 있다.
-> k 단계를 나누어도 k배 만큼의 속도 향상을 얻을 수는 없음.
파이프라인 해저드 등 병렬처리를 방해하는 요소들이 많기 때문임
2) 파이프라인 클록은 처리시간이 가장 짧은 단계를 기준으로 정해진다.
-> 가장 긴 단계를 기준으로 정해야 함
3) 수퍼파이프라이닝(superpipelining) 기술은 단계들을 더욱 작게 분할하는 기술이다. (맞음)
4) 구조 해저드(structural hazard)문제를 해결하기 위해 지연 분기(delayed branch) 또는 루프 버퍼 기법을 사용한다.
-> 제어 해저드 방식임
2011년 77번
정답 : 4번
명령어 디코딩 로직의 복잡도는 파이프라인 속도 저하와 상관 없음
명령어 디코딩 로직은 하나의 파이프라인이 아니라 모든 파이프라인이 공통적으로 걸려 있는 것이기 때문에 파이프라인 간의 속도 저하와는 상관 없음