CPU 파이프라인과 비파이프라인의 처리량·복잡도 비교
CPU 파이프라인과 비파이프라인 구조를 처리량, CPI, 레이턴시, 해저드, 클럭 속도와 설계 복잡도 관점에서 비교한다.
2026-08-14 · 최초 발행 2026-01-03
명령어를 끝까지 처리한 뒤 다음 명령어를 시작하는 구조
비파이프라인 CPU는 한 번에 하나의 명령어만 실행한다. 명령어가 모든 단계를 마쳐야 다음 명령어가 시작되므로 제어 구조는 단순하지만, 처리량은 낮다.
Inst 1: [IF][ID][EX][MEM][WB]
Inst 2: [IF][ID][EX][MEM][WB]
Inst 3: [IF][ID][EX][MEM][WB]
이 구조에서는 명령어가 순차적으로 진행된다. 해저드를 따로 처리할 필요가 없고 CPI는 5단계 기준으로 5다.
반면 파이프라인 CPU는 서로 다른 명령어를 각기 다른 단계에 동시에 배치한다. 한 명령어가 실행 단계에 있는 동안 다음 명령어는 해독 단계, 또 다른 명령어는 인출 단계에 있을 수 있다.
Inst 1: [IF][ID][EX][MEM][WB]
Inst 2: [IF][ID][EX][MEM][WB]
Inst 3: [IF][ID][EX][MEM][WB]
Inst 4: [IF][ID][EX][MEM][WB]
Inst 5: [IF][ID][EX][MEM][WB]
명령어 단위의 실행 단계는 같지만, 파이프라인이 채워진 뒤에는 매 사이클마다 명령어 완료가 가능하다. 이상적 CPI는 약 1이지만, 이를 위해서는 해저드 탐지와 제어가 필요하다.
처리량 차이가 성능을 만든다
비파이프라인의 처리량은 다음과 같다.
처리량 = 1 명령어 / 5 사이클
= 0.2 명령어/사이클
이상적인 파이프라인은 매 사이클 명령어 하나를 완료한다.
처리량 = 1 명령어 / 1 사이클
= 1 명령어/사이클
따라서 단계 수가 5인 경우 이상적인 속도 향상은 5배다. 실제 환경에서는 해저드로 인한 손실이 반영된다.
Speedup = 5배 (이상적)
≈ 3~4배 (실제, 해저드 고려)
CPI도 같은 차이를 보여준다.
CPI = 5 (5단계)
이상적 CPI = 1
실제 CPI ≈ 1.2 ~ 1.5 (해저드로 인한 스톨)
100개 명령어를 5단계, 1 GHz 클럭에서 처리한다고 가정한 비교는 다음과 같다.
총 사이클 = 100 × 5 = 500 사이클
실행 시간 = 500 / 1,000,000,000 = 0.5 마이크로초
총 사이클 = 4 (시작) + 100 × 1 = 104 사이클
실행 시간 = 104 / 1,000,000,000 = 0.104 마이크로초
속도 향상 = 500 / 104 ≈ 4.8배
총 사이클 = 4 + 100 × 1.3 = 134 사이클
실행 시간 = 134 / 1,000,000,000 = 0.134 마이크로초
속도 향상 = 500 / 134 ≈ 3.7배
| 구분 | 비파이프라인 | 파이프라인 (이상적) | 파이프라인 (실제) |
|---|---|---|---|
| CPI | 5 | 1 | 1.2 ~ 1.5 |
| 100 명령어 | 500 사이클 | 104 사이클 | 134 사이클 |
| 처리량 | 0.2 명령어/사이클 | 1 명령어/사이클 | 0.77 명령어/사이클 |
| 속도 향상 | 1배 (기준) | 4.8배 | 3.7배 |
파이프라인은 단일 명령어의 레이턴시를 줄이는 방식이 아니다. 하나의 명령어는 여전히 모든 단계를 통과한다.
비파이프라인: 5 사이클
파이프라인: 5 사이클 (동일)
차이는 정상 상태의 처리량에서 발생한다.
비파이프라인: 1 명령어 / 5 사이클
파이프라인: 1 명령어 / 1 사이클 (정상 상태)
파이프라인의 처리량은 5배 높다.
성능과 맞바꾸는 설계 비용
비파이프라인은 단순한 제어 유닛과 단일 데이터 경로로 구성할 수 있다. 해저드 처리도 필요하지 않아 설계와 검증 비용이 낮고, 교육용 구조로 다루기 쉽다. 낮은 클럭 속도와 적은 트랜지스터 수는 전력 소비 측면에서도 유리하다.
파이프라인은 여러 데이터 경로, 해저드 탐지, 포워딩 경로를 추가로 필요로 한다. 설계 기간과 검증 비용이 늘고 전문 지식이 요구된다. 높은 클럭 속도, 더 많은 트랜지스터, 추측 실행에 따른 낭비는 전력 소비를 높이는 요인이 된다.
트랜지스터 수는 다음처럼 가정한다.
비파이프라인: 100만 개 (가정)
파이프라인: 150~200만 개
| 구분 | 비파이프라인 | 파이프라인 |
|---|---|---|
| 하드웨어 복잡도 | 낮음 | 높음 |
| 설계 복잡도 | 낮음 | 높음 |
| 전력 소비 | 낮음 | 높음 |
| 트랜지스터 수 | 적음 | 많음 (1.5~2배) |
| 개발 비용 | 낮음 | 높음 |
겹쳐 실행할 때 생기는 해저드
비파이프라인에서는 동시에 진행 중인 명령어가 없으므로 데이터 의존성, 분기, 자원 충돌에 따른 해저드가 없다. 제어가 단순하고 실행 시간을 예측하기 쉬우며 디버깅도 수월하다.
파이프라인에서는 명령어가 겹쳐 실행되므로 데이터 해저드(RAW, WAR, WAW), 제어 해저드, 구조적 해저드를 다뤄야 한다. 데이터 포워딩과 스톨 삽입, 분기 예측, 자원 복제가 대표적인 대응 방식이다. 그만큼 제어는 복잡해지고 실행 시간은 비결정적이 될 수 있다.
| 해저드 유형 | 비파이프라인 | 파이프라인 |
|---|---|---|
| 데이터 해저드 | 없음 | 발생 (포워딩으로 해결) |
| 제어 해저드 | 없음 | 발생 (분기 예측으로 해결) |
| 구조적 해저드 | 없음 | 발생 (자원 복제로 해결) |
| 해결 복잡도 | 불필요 | 높음 |
단계 분리가 클럭 속도에 주는 영향
비파이프라인은 한 클럭 사이클 안에 모든 단계를 수행하므로 가장 긴 전체 경로에 맞춰야 한다.
클럭 주기 ≥ 가장 긴 단계 시간
= Fetch + Decode + Execute + Memory + WriteBack
= 2 ns (예시)
클럭 속도 = 500 MHz
파이프라인은 한 사이클에 한 단계씩 수행한다. 따라서 각 단계 중 가장 긴 시간에 맞춰 클럭 주기를 정할 수 있다.
클럭 주기 ≥ 가장 긴 단계 시간
= Max(Fetch, Decode, Execute, Memory, WriteBack)
= 0.5 ns (예시)
클럭 속도 = 2 GHz
두 예시의 클럭 속도 비율은 다음과 같다.
클럭 속도 비율 = 2000 / 500 = 4배
| 구분 | 비파이프라인 | 파이프라인 |
|---|---|---|
| 클럭 주기 | 2 ns (예시) | 0.5 ns (예시) |
| 클럭 속도 | 500 MHz | 2 GHz |
| 속도 비율 | 1배 (기준) | 4배 |
적용되는 CPU 환경
비파이프라인 CPU는 저전력이 필요하거나 애플리케이션이 단순한 경우, 교육용 환경, 일부 임베디드 시스템에 적합하다. 초기 CPU인 Intel 8080, 8086 초기와 교육용 프로세서, 일부 저전력 마이크로컨트롤러가 예시다. 현재는 거의 사용되지 않으며 역사적 의미가 크다.
파이프라인 CPU는 고성능, 멀티태스킹, 복잡한 애플리케이션을 요구하는 현대 컴퓨팅 환경에 맞는다. 모든 현대 CPU와 Intel Core, AMD Ryzen, ARM Cortex, Apple M 시리즈가 예시이며 표준 기술로 자리 잡았다.
| 분야 | 비파이프라인 | 파이프라인 |
|---|---|---|
| 데스크톱 | 없음 | 100% |
| 서버 | 없음 | 100% |
| 모바일 | 없음 | 100% |
| 임베디드 | 일부 | 대부분 |
| 교육 | 일부 | 대부분 |
| 현재 사용 | 거의 없음 | 표준 |
단순한 순차 실행에서 현대 CPU까지
1970년대~1980년대 초의 Intel 8080, 8086 초기에는 단순한 구조와 낮은 클럭 속도를 가진 비파이프라인 방식이 사용됐다. 낮은 처리량은 성능 한계로 이어졌다.
1980년대 중반부터 RISC 프로세서인 MIPS, SPARC, ARM과 Intel 80486 (1989)에 파이프라인이 도입됐다. 5단계 파이프라인은 3~5배 처리량 증가와 높은 클럭 속도를 제공했다.
1990년대현재의 프로세서는 1020단계 깊이의 파이프라인을 사용하며 슈퍼스칼라, Out-of-Order 실행, 추측 실행을 결합한다. CPI < 1도 가능하다.
| 구분 | 비파이프라인 | 파이프라인 |
|---|---|---|
| 성능 | 낮음 | 높음 (3~5배) |
| 복잡도 | 낮음 | 높음 |
| 전력 | 낮음 | 높음 |
| 해저드 | 없음 | 있음 (처리 필요) |
| 클럭 속도 | 낮음 | 높음 (4배) |
| 사용 | 거의 없음 | 표준 |
| 적합한 분야 | 교육, 저전력 임베디드 | 모든 현대 컴퓨팅 |
비파이프라인은 CPI가 5이고 처리량이 0.2 명령어/사이클이지만, 구조가 단순하고 해저드가 없으며 전력 소비가 적다. 파이프라인은 이상적으로 CPI 1과 처리량 1 명령어/사이클에 도달하고, 실제로는 CPI 1.21.5로 34배의 성능 향상을 제공한다. 대신 복잡한 하드웨어와 해저드 처리, 높은 전력 소비를 감수해야 하며, 현대 CPU는 10~20단계 파이프라인과 슈퍼스칼라, Out-of-Order 실행으로 이 구조를 확장한다.