Pipeline의 개념과 성능

Pipe Line

연산을 순차적으로 수행하는 대신, 여러 단계로 분리하여 동시에 처리함으로써 처리 속도를 향상하는 기술.

프로세서의 작업처리 방식을 최적화하여 전체 시스템 성능을 향상시킬 수 있음

Pipelined laundry

중복하여 실행. 병렬화가 성능을 향상

세탁을 하는 순서가 세탁기 → 건조기 → 접기 → 옷장 순서가 있고 이 작업을 4번 수행해야 한다면 순차적으로 실행(Single-cycle)할 시 위 그림과 같이 2AM에 종료되지만, 각 단계를 동시에 수행함으로써 더 빨리 작업을 끝낼 수 있음

MIPS Pipeline

간단하게 5단계로 나눔. (실제로는 훨씬 더 복잡)

  1. IF: 명령어를 메모리로부터 가져옴
  2. ID: 명령어 decode, 레지스터 읽기
  3. EX: 연산 수행 또는 주소 계산
  4. MEM: 메모리 액세스
  5. WB: 결과를 레지스터에 삽입

Pipeline Performance

각 스테이지별 걸리는 시간

  • 레지스터를 읽고 쓰는데 100ps
  • 다른 스테이지는 200ps

따라서 각 명령어는 다음과 같은 시간이 걸림

Single-cycle, pipelined lw 성능 비교

  • single-cycle: 2400ps
  • pipelined: 1400ps

Pipeline Speedup (성능 향상)

만약 스테이지가 완료되는 시간이 동일하다면

파이프라인을 적용한 각 명령어들의 시작 시간 딜레이 = (파이프라인을 적용하지 않은 각 명령어들의 시작 시간) / 스테이지 수

만약 스테이지를 완료되는 시간이 동일하지 않다면

성능 향상률이 감소. Latency (각 명령어를 완료하는데 걸리는 시간)은 감소하지 않음. 오히려 증가.

CPU의 성능 향상 방법에는 두가지가 존재

  • response time 감소
  • throughput (시간당 작업량) 증가

pipleine은 throughput을 증가시켜서 cpu 성능을 향상

 

'컴퓨터 구조' 카테고리의 다른 글

파이프라인과 DataPath, Control  (2) 2023.11.09
Hazard  (0) 2023.09.24
ALU Control  (0) 2023.07.11
프로세서의 명령어 실행 과정  (0) 2023.07.07
실수의 표현과 연산  (0) 2023.07.06