본문 바로가기
Computer/컴퓨터구조

[컴퓨터구조] Pipelining(1): 파이프라이닝이란

by 거부기씨 2024. 6. 1.
728x90
반응형

파이프라이닝(pipelining)은 여러 명령어가 중첩되어 실행되는 구현 기술이다. 

 

RISC-V 명령어에서는 전통적으로 5단계가 걸린다.

  1. 메모리에서 명령어 가져온다.
  2. 명령어 해독하는 동시에 레지스터를 읽는다.
  3. 연산 수행하거나 주소 계산
  4. 데이터 메모리에 있는 피연산자에 접근
  5. 결과값을 레지스터에 쓴다.

4번 5번 과정의 경우 필수는 아니며 명령어에 따라서 실행되지 않을 수 있다.

 

단일 사이클과의 성능을 비교해보자.

 

단일 사이클 모델에서는 모든 명령어가 한 클럭 사이클 이내에 실행된다. 따라서 가장 느린 명령어를 수용할 수 있을 만큼 클럭 사이클이 충분히 길어야 한다. 가장 느린 명령어는 lw로 위의 표에서 800ps가 걸린다.

 

파이프라인 구현에서는 모든 단계가 한 클럭 사이클에 처리된다. 따라서 클럭 사이클은 가장 느린 동작을 수용할 만큼 충분히 길어야 한다. 최악의 경우인 200ps를 한 클럭 사이클로 잡는다.

 

위에는 단일 사이클 구현, 아래는 파이프라인 구현을 보여준다.

 

보통 명령어의 수가 많아질 수록, 이상적인 조건 하에서 파이프라이닝되지 않은 컴퓨터와 파이프라인 컴퓨터에서 실제 프로그램의 실행시간 비율은 명령어 사이의 시간 비율과 비슷하다. (800/200 = 4.0)

 

파이프라이닝은 개별 명령어의 실행시간을 줄이지는 못하지만 대신 명령어 처리량을 증대시킴으로써 성능을 향상시킨다.

 

RISC-V 명령어 집합은 원래 파이프라인 실행을 위해 설계된 것으로 다음과 같은 특징을 갖는다.

  1. 모든 RISC-V 명령어는 같은 길이를 갖는다. 
  2. 명령어 형식이 몇 가지 안되고, rs1, rs2 필드가 항상 같은 위치에 있다.
  3. 메모리 피연산자가 적재/저장 명령어에서만 나타난다.

 

다음 명령어가 다음 클럭 사이클에 실행될 수 없는 상황이 있다. 이러한 경우를 hazard라고 부르는데 세 가지 종류가 있다. 여기서는 간단히 살펴보기만 하자.

  • structural hazard : 같은 클럭 사이클에 실행하기를 원하는 명령어의 조합을 하드웨어가 지원할 수 없어 발생한다.
  • data hazard : 어떤 단계가 다른 단계가 끝나기를 기다려야 하기 때문에 파이프라인이 지연되는 경우 발생한다.
  • control hazard : 다른 명령어들이 실행 중에 하나의 명령어의 결과값에 기반을 둔 결정을 할 필요가 있을 때 일어난다.

자세한 hazard와 그 해결 방법은 추후에 더 자세히 알아보도록 할 것이다.

728x90
반응형