파이프라인 (컴퓨팅)

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
파일:Pentium4superpipeline.png
인텔 펜티엄 4 프로세스의 명령어 파이프라인

컴퓨터 과학에서 파이프라인(영어: pipeline)은 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조를 가리킨다. 이렇게 연결된 데이터 처리 단계는 한 여러 단계가 서로 동시에, 또는 병렬적으로 수행될 수 있어 효율성의 향상을 꾀할 수 있다. 각 단계 사이의 입출력을 중계하기 위해 버퍼가 사용될 수 있다.

대표적인 파이프라인 구조는 다음과 같은 것들이 있다.

  • 명령어 파이프라인: 오른쪽 그림과 같이, 같은 CPU 회로 안에서 여러 명령어들이 단계적으로 수행되는 것을 가리킨다. 각 명령어는 다시 페치, 디코딩, 연산 등의 세부 주기로 나뉘어 각 파이프라인 단계에 의해 수행된다.
  • 그래픽스 파이프라인: 대부분의 그래픽 카드는 그래픽 처리 과정을 3차원 사영, 윈도 클리핑, 셰이딩, 렌더링 등으로 나누어 각각의 하부 모듈에서 병렬적으로 수행한다.
  • 소프트웨어 파이프라인: 한 소프트웨어의 출력이 자동으로 다른 소프트웨어의 입력으로 연결될 경우 이를 소프트웨어 파이프라인이라고 한다. 유닉스 계열 운영체제에서 사용되는 파이프가 대표적이다.

해설[편집]

파이프라인은 공장의 조립 라인과 유사한 개념으로 만들어졌다. 예를 들어 자동차 조립 라인이라면, 자동차를 조립하는 과정을 크게 엔진 설치, 문과 후드 설치, 바퀴 설치 등으로 나눌 수 있을 것이다. 이 과정을 하나의 조립라인에서 모두 수행하는 것보다, 첫 번째 라인에서 엔진을 설치하여 두 번째 라인으로 보내고, 두 번째 라인에서 문과 후드를 설치하여 세 번째 라인으로 보내고, 세 번째 라인에서 바퀴를 설치하여 조립을 완료한다면, 각각의 라인이 동시에 동작할 수 있어 차량 생산을 더 효율적으로 할 수 있다.

부품마다 별개의 조립 라인을 이용한다고 해서 개별 차량의 생산 시간이 줄어드는 것은 아니다. 오히려 라인 간 이동에 의해 개별 차량의 생산 시간은 늘어날 수도 있다. 파이프라인 구조에서도 마찬가지로, 데이터 처리를 한 단계에서 전부 처리하는 것에 비해 각 데이터 요소의 처리 시간이 줄어들지는 않는다. 그러나 각 파이프라인이 병렬적으로 동시에 동작함으로써 전체 시스템의 효율성 향상을 꾀할 수 있다.