Introduction to Pipelining & Instruction set
학습목표:
파이프라이닝 기술을 설명할 수 있다. : CPU의 프로그램 처리 속도를 높이기 위하여 CPU내부 하드웨어를 여러 단계로 나누어 동시에 처리하는 기술
슈퍼스칼라 기술을 설명할 수 있다. :CPU의 처리 속도를 더욱 높이기 위하여 내부에 두 개 혹은 그 이상의 명령어 파이프라인들을 포함시킨 구조
멀티코어의 개념을 설명할 수 있다. : 여러 개의 CUP코어들을 하나의 칩에 포함시킨 프로세서
간략요약: 파이프라이닝과 슈퍼스칼라로 CPU의 속도를 향상
명령어 파이프라이닝(instruction pipelining)이란? CPU의 프로그램 처리 속도를 높이기 위하여 CPU내부 하드웨어를 여러 단계로 나누어 동시에 처리하는 기술
파이프라이닝의 기술 종류
1) 2-단계 명령어 파이프라인: 명령어를 실행하는 하드웨어를 인출단계(Fetch stage)와 실행단계(Execute stage)라는 두 개의 독립적인 파이프라인 모듈로 분리
장점: 명령어 처리 속도가 두배 향상
단점: 인출(Fetch stage)/실행(Execute stage)시간이 동일하지 않으면 효과가 없음
해결책: 파이프라인 단계를 세분화해 각 단계의 처리 시간을 (거의)같아지도록 해서 속도 향상한다.
2) 4-단계 명령어 파이프라인: 명령어-> 명령어인출(IF)->명령어해독(ID)->오퍼랜드인출(OF)->실행(EX)으로 구성 -> 실행결과로 구성
IF: 다음 명령어를 기억장치로 부터 인출
ID: 해독기(Decoder)를 이용하여 명령어를 해석
OF:기억장치로부터 오퍼랜드를 인출
EX:지정된 연산을 수행
효율 저하 원인들(단점):
1)모든 명령어들이 파이프라인 단계들을 모두 거쳐야 하는건 아니지만 하드웨어를 단순화시키기 위해서는 모든 명령어가 네 단계들을 모두 통과해야한다.
2)파이프라인의 클록은 처리 시간이 가장 오래 걸리는 단계를 기준으로 결정
3) IF 단계와 OF단계가 동시에 기억장치를 엑세스하게 되면, 기억장치 충돌(Memory conflict) 이 일어나 지연이 발생한다.
4) 조건 분기(Conditional branch)명령어가 실행되면, 미리 인출하여 처리하던 명령어들이 무효화된다.
효율 저하 원인 해결책:
1)분기 예측(Branch prediction)
2)분기 목적지 선인출(Prefetch branch target)
3)루프 버퍼(Loop buffer)
4) 지연 분기(Delayed branch)
슈퍼스칼라(Superscalar)란? CPU의 처리 속도를 더욱 높이기 위하여 내부에 두 개 혹은 그 이상의 명령어 파이프라인들을 포함시킨 구조
슈퍼스칼라의 속도 저하요인: 명령어들 간의 데이터 의존 관계, 하드웨어(레지스터, 캐시, 기억장치 등) 이용대 대한 경합 발생
해결책: 명령어 실행 순서 재배치하여 명령어들 간의 데이터 의존성 제거, 하드웨어 추가 설치로 경합을 감소시킨다.
멀티-코어란? 여러 개의 CUP코어들을 하나의 칩에 포함시킨 프로세서이다. 칩 레벨 멀티프로세서(CMP),단일-칩 프로세서 라고도 한다.
CUP코어란? 명령어 실행에 필요한 CPU내부의 핵심 하드웨어 모듈(슈퍼스칼라 H/W, ALU, 레지스터 등)
멀티-코어의 종류: 듀얼-코어, 쿼드-코어, 헥사-코어


