IT

파이프라인 (Pipe-Line)

유앤아이의 뉴패러다임 2009. 7. 23. 23:07
전자공학에서의 파이프라인은 명령어를 처리하는데 있어 단계를 세분화하여 전체적인 처리 효율을 높힌 기술을 말합니다. 생산 공장 등에 도입한 분업의 개념과 같다고 볼 수 있습니다.

처리할 데이터

연산 유닛

완성된 데이터

aa'' 입력

---------------------- 50Hz -------------------->

AA

bb'' 입력

---------------------- 50Hz -------------------->

BBAA

cc'' 입력

---------------------- 50Hz -------------------->

CCBBAA

dd'' 입력

---------------------- 50Hz -------------------->

DDCCBBAA

 

aa'', bb'', cc'', dd'' 데이터를 처리는 기본적인 방식은, 위 표와 같이 데이터 하나를 처리하고 그 결과물을 출력한 뒤 다음 데이터를 입력받습니다. 각각의 데이터를 처리하는데 50 클럭이 소요된다는 가정하에 aa''~dd''까지 처리하는 시간은 총 200Hz 입니다.

 

  하지만 이와 같은 방법은 하나의 데이터가 처리하는 동안 뒤에 줄을 선 데이터는 먼저 입력된 데이터의 처리가 완료될 때까지 대기해야 합니다. 이 시간을 단축하면서 동시에 작업 효율을 높히고자 고안한 것이 바로 파이프라인입니다.


파이프라인은 데이터를 가공하는 몇 단계로 나누며 각 단계는 정해진 일만 수행한 뒤 다음 단계로 내보냅니다. 제조 공정 분업화를 들면 1단계에서는 기판만 제작한 뒤 2단계로 넘기고나서 곧바로 다음 기판을 제작하기 시작합니다. 2단계에서는 1단계에서 완성된 기판으로 받아 조립하여 3단계로 넘긴 뒤 다음 기판이 오면 즉시 조립에 들어가는 방식입니다.

 

처리

시간

파이프라인화 한 연산 유닛

(각 단계마다 10Hz 소요)

완성된

데이터

1단계

2단계

3단계

4단계

5단계

10Hz

aa''

 

 

 

 

 

20Hz

bb''

Aa''

 

 

 

 

30Hz

cc''

Bb''

aA''

 

 

 

40Hz

dd''

Cc''

bB''

AA''

 

 

50Hz

ee''

Dd''

cC''

BB''

AA'

AA

60Hz

ff''

Ee''

dD''

CC''

BB'

BBAA

70Hz

 

Ff''

eE''

DD''

CC'

CCBBAA

80Hz

 

 

fF''

EE''

DD'

DDCCBBAA

 


파이프라인을 도입한 연산 유닛의 처리 시간은 비약적으로 향상됩니다. 위 표를 보다시피 첫 데이터 출력 시간은 50Hz로 같지만 AA~DD까지 완성하는데 소요한 시간은 단 80Hz로 절반 이상 떨어지는 것을 알 수 있습니다.


이렇듯 파이프라인은 데이터가 연속으로 들어올수록 진가를 발휘합니다. FF까지 완성되는데 파이프라인화 한 유닛과 그렇지 않은 유닛이 소요한 시간은 100Hz, 300Hz로 DD까지 처리하는데 걸린 시간보다 더욱 벌어진 것을 알 수 있습니다. (※ 실질적으로 각 단계별 처리 시간은 모두 동일하지 않습니다. 처음부터 다를 수 있으며 어떠한 이유로 인해 지연되기도 합니다. 만약 2단계에서 처리시간이 지연된다면 1단계는 데이터를 내보낼 수 없으며 받을 수도 없습니다.)

 

  파이프라인의 단계를 늘릴수록 각 단계별 처리 방식은 점점 단순해집니다. 이는 단계별 처리 시간이 단축됨을 의미하며 더 나아가 연산 유닛이 좀 더 높은 클럭으로 동작할 수 있게끔 도와줍니다. 그러나 섯불리 파이프라인 단계를 늘리면 치명적인 문제점에 노출되는데 그것은 아래 파이프라인의 단점과 관련이 깊습니다.

 

  연산 작업을 효율적으로 만들어주는 파이프라인도 단점이 없는 것은 아닙니다. 바로 모든 연산 단계가 100% 성공률을 보이지 않는다는 것으로 만약 연산이 실패하여 잘못된 결과를 도출하면 이제까지 작업한 분량은 모두 폐기 처분됩니다. 이는 전체적인 작업시간을 지연시키는 요인으로 작용합니다.

 

  만약 aa'' 데이터가 5단계에서 처리 오류가 일어났다면 이제까지 파이프라인에 들어온 모든 데이터를 폐기하고 처음부터 다시 연산을 시작합니다. 이로 인해 aa''를 4단계까지 처리했던 40Hz시간과 뒤이어 들어온 데이터들의 처리 시간이 헛수고로 돌아가고 맙니다. 또 다른 단점으로는 aa''를 입력하고나서 어떠한 원인으로 bb''를 5Hz 늦게 입력했다면 각 단계별 5Hz씩 총 25Hz 동안 연산 유닛이 쉬게 된다는 점입니다. 이렇게 처리 실패시 소요되는 시간, 각 단계별 걸리는 시간차이를 극복하기 위해 프로세서 개발사는 여러가지 방법을 강구하고 있으며 도입하고 있습니다.

 

  파이프라인화 한 연산 유닛의 대부분은 하나가 아닌 복수의 파이프라인을 가지고 있습니다. 파이프라인이 많을수록 처리시간은 파이프라인 갯 수 배(倍) 가까이 향상됩니다.

 

처리시간

데이터

배분

유닛

2개의 파이프라인을 가진 연산 유닛

(각 단계마다 10Hz 소요)

완성된

데이터

데이터

재배열

1단계

2단계

3단계

4단계

5단계

10Hz

aa''

bb''

aa''

 

 

 

 

 

 

bb''

 

 

 

 

 

 

20Hz

cc''

dd''

cc''

Aa''

 

 

 

 

 

dd''

Bb''

 

 

 

 

 

30Hz

ee''

ff''

ee''

Cc''

aA''

 

 

 

 

ff''

Dd''

bB''

 

 

 

 

40Hz

 

 

Ee''

cC''

AA''

 

 

 

 

Ff''

dD''

BB''

 

 

 

50Hz

 

 

 

eE''

CC''

AA'

AA

BBAA

 

 

fF''

DD''

BB'

BB

60Hz

 

 

 

 

EE''

CC'

CC

DDCCBBAA

 

 

 

FF''

DD'

DD

'IT' 카테고리의 다른 글

POWER SUPPLY에 대해서  (0) 2009.07.24
IBM PC 탄생 28주년  (0) 2009.07.24
동작 속도와 용량 단위  (0) 2009.07.23
윈도우 2003 Server 사양 자세히 알아보기  (0) 2009.07.23
구글 크롬으로 컴퓨터 보호하기  (2) 2009.07.23