파이프라인 구조
파이프라인 구조 개념
- 여러 개의 명령어가 중첩해 실행되는 구조
- 연속된 명령어들 사이의 병렬성 활용
- 단일 작업의 실행시간을 줄이는 대신, 전체 작업부하의 총 처리량을 개선
특징
- 여러 개의 작업들이 동시에 처리
- 파이프라인 단계의 길이가 각기 다르면 성능개선이 줄어듬
참고 : cs.sch.ac.kr/lecture/arch/2009-2/09-컴구조-6-파이프라인.pdf
하나의 명령어가 4단계를 거쳐 완료되는 데에 소요되는 시간을 명령어 사이클이라고 하며, 각각의 단계에 소요되는 시간을 파이프라인 사이클이라고 한다.
파이프라인 사이클을 일정하게 하면 각 단계들을 동기적으로 동작시킬 수가 있으므로 제어하기가 간편하다.
파이프라인 사이클을 같도록 설계하려면 시간이 가장 많이 소요되는 단계를 기준으로 삼는다. 파이프라인 사이클이 일정하지 않을 수도 있는데,
이때는 각 단계 사이에 버퍼를 두어 비동기식으로 동작이 계속 이루어지게 한다.
참고: http://jade314.tistory.com/entry/파이프라인방식 [마음을 공유하는 사람]
정리
파이프 라인을 쓰지 않는다면?
=> 하나의 명령어(요청)를 처리하는데 1,2,3,4 단계가 있다고 가정할때
하나의 명령어(요청)를 하나씩 처리 완료한다면, 이미 지나간 단계는 놀거나, 대기하는 단계가 놀게 됨(->총 처리량 감소에 영향)
파이프 라인을 쓴다면?
=> 파이프 라인 구조로 처리한다면, 모든 단계가 계속적으로 쉬지않고 일을 처리하여 총 처리량을 늘릴 수 있게됨
(동기적으로 각 단계가 같은 단위시간으로 일을 처리하고 넘겨야 함 - 가장 긴 시간을 필요로 하는 단계의 시간으로 맞춰 작동하게 됨.)