파이프라인이란 같은 CPU 처리속도(성능)를 높이기 위해서 명령어 수행을 단계적으로 나누어, 병렬로 처리하는 것을 말한다.
예를들어 하나의 세탁과정을 3단계로 아래의 그림과 같이 세탁기, 건조기, 개기 이렇게 나눠진다고 해보자.
위의 그림과 같이 하나의 세탁과정이 끝나고 다음 세탁과정을 한다면, 4회의 세탁과정을 하려면 자정까지 걸린다. 하지만 세탁과정을 아래의 그림과 같이 단계별로 병렬로 처리한다면, 4회의 세탁과정을 하는데 10시 안에 끝낼 수 있다.
위의 예시와 같이 같은 CPU 회로 안에서 명령어 수행을 단계적으로 나누어, 병렬로 처리하면 명령어 처리속도를 높일 수 있고, 이러한 작업방식을 파이프라인이라고 한다.
CPU 명령어 처리하는 것을 4단계로 나누어 병렬처리 하는 것을 4단 파이프라인이라고 한다. 명령어 수행 단계를 아래와 같이 4단계로 나누어 병렬로 처리한다.
CPU 명령어 처리하는 것을 5단계로 나누어 병렬처리 하는 것을 5단 파이프라인이라고 한다. 명령어 수행 단계를 아래와 같이 4단계로 나누어 병렬로 처리한다.
파이프라인으로 여러 명령어를 실행하는 중에 일부 명령어가 취소될 경우 실행 중인 명령어가 전체 취소되어 오버헤드가 발생할 수 있다. (오버헤드는 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간, 메모리 등을 의미한다.)
참고사이트 :
https://cs.stanford.edu/people/eroberts/courses/soco/projects/risc/pipelining/index.html
https://namu.wiki/w/%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8
https://witscad.com/course/computer-architecture/chapter/concepts-of-pipelining
http://www.cs.iit.edu/~cs561/cs350/CPU/5stage.html