기글 하드웨어 위키는 일정 레벨을 충족하는 회원분들께서 직접 참여하실 수 있는 공간입니다. 컴퓨터, 하드웨어, 소프트웨어, 각종 디지털 기기, 즉 IT 관련 정보만 올릴 수 있습니다. 여기에 해당되지 않는 항목은 삭제하고 이용에 재재가 주어집니다.

파이프라이닝

조회 수 11746 추천 수 0 2009.12.31 00:45:19
[레벨:0]DJ™ *.39.90.94

파이프라이닝(pipelining)이란 명령어의 처리율(throughput)을 높이기 위하여 사용되는 기법이다.

 

명령어를 수행하기 위한 각각의 스테이지를 병렬로 구동시켜 명령어의 처리 흐름이 끊이지 않도록 하여

마치 수도관을 흐르는 물처럼 끊임없인 명령어가 처리 된다고 하여 이러한 이름이 붙었다.

 

p1.jpg

 

다음 4 스테이지 구조를 갖는 프로세서를 살펴보자. 파이프라이닝을 사용하지 않는 프로세서라면 다음과 같이 명령어가 처리 될 것이다. 1클럭 사이클에 하나의 동작을 한다고 가정 해 보자. 그렇다면 저 동작을 하는 동안 4클럭 사이클의 시간이 소모가 될 것이다. 그렇다면 명령어를 두 개를 처리하려면 8클럭 사이클이 소모 될 것이고, 세 개를 처리하려면 12클럭 사이클이 소모 될 것이다. 명령어가 한 개 처리 되는데 t만큼의 시간이 소요 된다면 그 처리율(throughput)은 1명령/t가 될 것이다. 그런데 이것은 시간낭비이다.

 

만약에 읽기를 하고나서 해석 단계로 넘어간다면 다음 명령이 올 때 까지 읽기를 하는 유닛은 쉬게 될 것이다. 다른 단계도 마찬가지이다. 자기 차례가 오지 않는 한 다음 명령이 올 때 까지는 쉬게 된다. 따라서 각 단계별로 쉴 틈 없이 부려먹기 위해서 파이프라이닝이라는 기법을 사용하는 것이다.

 

p2.jpg 

 

파이프라이닝 구조를 사용한 프로세서의 스테이지이다. 아까보다 훨씬 빡세게 부려먹는다는 것을 그림만 보아도 알 수 있다. 이제 이 프로세서의 처리율은 얼마나 되는 것일까? 계산을 해보자.

 

명령1은 기록 처리 중이고, 명령2는 실행 중이며, 명령3은 해석중이고, 명령4는 읽기 단계에 있다. 이것을 식으로 풀어보면 다음과 같다.

 

4/4명령/t + 3/4명령/t + 2/4명령/t + 1/4명령/t = 2.5명령/t

 

처리율이 무려 2배 이상 증가했다. 파이프라이닝은 스테이지 수와 클럭과 밀접한 연관이 있다. 결론만 내리자면 스테이지는 길수록, 클럭 주파수가 높을수록 처리율이 향상된다. 물론 파이프라인에 있는 데이터가 항상 가득 차 있다는 조건하에. 이제 이 부분을 배우면 펜티엄4가 왜 그리도 무식하게 클럭이 높은지 이해할 수 있다.

 

p3.jpg

 

다음 그림은 스테이지 수가 8단계로 늘어난 파이프라인 구조의 프로세서이다. 클럭 주파수는 아까전의 프로세서와 같다. 그래서 스테이지수가 8단계가 되면 하나의 명령을 처리하는데 의 시간이 필요 할 것이다. 그렇다면 이 프로세서의 명령어 처리율은 어느 정도가 될까?

 

8/8명령/2t + 7/8명령/2t + 6/8명령/2t + 5/8명령/2t + 4/8명령/2t + 3/8명령/2t + 2/8명령/2t + 1/8명령/2t = 2.25명령/t

 

성능 향상이 되기는커녕 오히려 약간 줄었다. 근데 이 계산이 과연 맞을까?

 

중요한 것을 간과한 것이 있다. 스테이지가 늘어났다는 것은, 하나의 명령을 처리하는 과정이 훨씬 세분화 되었다는 것을 뜻한다. 즉, 각 스테이지당 하는 일이 4단계 스테이지의 구조에 비해서 줄어들었다는 것이다. 이것은 무엇을 의미하는가? 1 클럭 사이클 당 하는 일이 반으로 줄었기 때문에 클럭 주파수를 2배로 올리기가 쉬워졌다는 이야기가 된다. 그래서 클럭 사이클은 2t가 아니라 t가 된다.

 

p4.jpg

 

8/8명령/t + 7/8명령/t + 6/8명령/t + 5/8명령/t + 4/8명령/t + 3/8명령/t + 2/8명령/t + 1/8명령/t = 4.5명령/t

 

파이프라이닝을 사용하지 않는 구조보다 무려 성능이 4배 이상 증가되었다.

 

참고로 이야기 하자면 펜티엄4 프레스캇의 경우, 파이프라인이 무려 31스테이지나 된다. 31스테이지나 되면 당연히 3.0GHz이상의 고 클럭 주파수로 끌어올리기가 쉬울 것이고, 그 만큼의 클럭 주파수가 보장 되어야 뛰어난 성능을 발휘할 수가 있다.


기글하드웨어는 2006년 6월 28일에 개설된 해외 컴퓨터 하드웨어 뉴스와 정보, 유저들의 사용기를 주로 소개하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴 관련 문의는 이메일로 보내주세요. 관리자 이메일