Pipe Line
연산을 순차적으로 수행하는 대신, 여러 단계로 분리하여 동시에 처리함으로써 처리 속도를 향상하는 기술.
프로세서의 작업처리 방식을 최적화하여 전체 시스템 성능을 향상시킬 수 있음
Pipelined laundry
중복하여 실행. 병렬화가 성능을 향상
세탁을 하는 순서가 세탁기 → 건조기 → 접기 → 옷장 순서가 있고 이 작업을 4번 수행해야 한다면 순차적으로 실행(Single-cycle)할 시 위 그림과 같이 2AM에 종료되지만, 각 단계를 동시에 수행함으로써 더 빨리 작업을 끝낼 수 있음
MIPS Pipeline
간단하게 5단계로 나눔. (실제로는 훨씬 더 복잡)
- IF: 명령어를 메모리로부터 가져옴
- ID: 명령어 decode, 레지스터 읽기
- EX: 연산 수행 또는 주소 계산
- MEM: 메모리 액세스
- 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 |