Ch1. Performance and Power
CPU 성능 공식 & 전력 공식
- Haram Lee
- 2026-03-09
- studies / 26-1 / computer-architecture
1. CPU 성능 공식
기본 개념: 클럭
- CPU는 일정한 속도로 똑딱이는 클럭에 맞춰 동작한다.
- 클럭 주기 (Clock Cycle Time): 클럭 1번 똑딱이는 데 걸리는 시간
- 예: 250ps = 0.25ns = 250 × 10⁻¹²초
- 클럭 주파수 (Clock Rate): 1초에 몇 번 똑딱이는가
- 예: 4.0GHz = 4000MHz = 4.0 × 10⁹Hz
- 둘은 역수 관계: Clock Rate = 1 / Clock Cycle Time
핵심 공식 1: CPU Time
\text{CPU Time} = \text{CPU Clock Cycles} \times \text{Clock Cycle Time} = \frac{\text{CPU Clock Cycles}}{\text{Clock Rate}}
예제 1 — CPU Time Example
- 문제 조건:
- Computer A: 클럭 2GHz, CPU Time 10초
- Computer B 설계 목표:
- CPU Time을 6초로 줄이고 싶음
- 단, 더 빠른 클럭을 쓰면 클럭 사이클 수가 A의 1.2배가 됨
- Computer B의 클럭 속도는 얼마여야 하는가?
- 풀이:
- A의 클럭 사이클 수 계산
\text{Clock Cycles}_A = \text{CPU Time}_A \times \text{Clock Rate}_A = 10s \times 2\text{GHz} = 20 \times 10^9
- B의 클럭 사이클 수 계산
\text{Clock Cycles}_B = 1.2 \times \text{Clock Cycles}_A = 1.2 \times 20 \times 10^9 = 24 \times 10^9
- B의 클럭 속도 계산
\text{Clock Rate}_B = \frac{\text{Clock Cycles}_B}{\text{CPU Time}_B} = \frac{24 \times 10^9}{6s} = 4\text{GHz}
- 즉 Computer B는 4GHz 클럭이 필요하다.
핵심 공식 2: CPI 도입
- 클럭 사이클 수는 명령어 수와 명령어당 사이클 수로 분해된다.
\text{Clock Cycles} = \text{IC} \times \text{CPI}
\text{CPU Time} = \text{IC} \times \text{CPI} \times \text{Clock Cycle Time} = \frac{\text{IC} \times \text{CPI}}{\text{Clock Rate}}
- IC (Instruction Count): 프로그램 실행에 필요한 총 명령어 수
- 프로그램, ISA, 컴파일러가 결정
- CPI (Cycles Per Instruction): 명령어 1개당 평균 클럭 사이클 수
- CPU 하드웨어가 결정
- 명령어 종류마다 다를 수 있음 → 평균값 사용
예제 2 — CPI Example (어느 컴퓨터가 빠른가?)
- 문제 조건:
- Computer A: Cycle Time = 250ps, CPI = 2.0
- Computer B: Cycle Time = 500ps, CPI = 1.2
- 같은 ISA 사용 (→ IC는 동일)
- 어느 쪽이 얼마나 빠른가?
- 풀이:
- A의 CPU Time 계산
\text{CPU Time}_A = I \times 2.0 \times 250\text{ps} = I \times 500\text{ps}
- B의 CPU Time 계산
\text{CPU Time}_B = I \times 1.2 \times 500\text{ps} = I \times 600\text{ps}
- 성능 비교
\frac{\text{CPU Time}_B}{\text{CPU Time}_A} = \frac{I \times 600\text{ps}}{I \times 500\text{ps}} = 1.2
- 즉 A가 B보다 1.2배 빠르다.
- 핵심 포인트: B가 CPI는 낮지만(명령어당 사이클 수 적음), 클럭 자체가 느려서(사이클 1번에 걸리는 시간이 2배) 결국 A가 더 빠르다. CPI만 보면 안 되고 클럭 속도와 함께 봐야 한다.
핵심 공식 3: 가중 평균 CPI
- 명령어 종류마다 CPI가 다를 때 사용한다.
\text{Clock Cycles} = \sum_{i=1}^{n}(\text{CPI}_i \times \text{IC}_i)
\text{CPI}_{\text{avg}} = \frac{\text{Clock Cycles}}{\text{IC}} = \sum_{i=1}^{n}\left(\text{CPI}_i \times \frac{\text{IC}_i}{\text{IC}}\right)
- 여기서 \frac{\text{IC}_i}{\text{IC}} 는 상대 빈도(Relative Frequency) — 전체 명령어 중 해당 종류의 비율이다.
예제 3 — CPI in More Detail (가중 평균 CPI)
- 문제 조건:
| Class | CPI | Sequence 1 IC | Sequence 2 IC |
|---|---|---|---|
| A | 1 | 2 | 4 |
| B | 2 | 1 | 1 |
| C | 3 | 2 | 1 |
- Sequence 1 풀이:
\text{IC}_{\text{total}} = 2 + 1 + 2 = 5
\text{Clock Cycles} = (2 \times 1) + (1 \times 2) + (2 \times 3) = 2 + 2 + 6 = 10
\text{Avg CPI} = \frac{10}{5} = 2.0
- Sequence 2 풀이:
\text{IC}_{\text{total}} = 4 + 1 + 1 = 6
\text{Clock Cycles} = (4 \times 1) + (1 \times 2) + (1 \times 3) = 4 + 2 + 3 = 9
\text{Avg CPI} = \frac{9}{6} = 1.5
- 비교:
| Sequence 1 | Sequence 2 | |
|---|---|---|
| IC | 5 | 6 |
| Clock Cycles | 10 | 9 |
| Avg CPI | 2.0 | 1.5 |
- Sequence 2가 명령어 수(IC)는 더 많지만, 총 클럭 사이클 수가 더 적어서 더 빠르다.
- 즉 IC가 많다고 무조건 느린 것이 아님. CPI와 함께 봐야 한다.
예제 4 — Exercise (연습문제: 세 프로세서 비교)
- 문제 조건:
| 프로세서 | Clock Rate | CPI |
|---|---|---|
| P1 | 3GHz | 1.5 |
| P2 | 2.5GHz | 1.0 |
| P3 | 4.0GHz | 2.2 |
- 문제 a: 초당 명령어 수(Instructions per second)가 가장 높은 프로세서는?
- Instructions per second = Clock Rate / CPI
\text{P1} = \frac{3 \times 10^9}{1.5} = 2 \times 10^9 \text{ IPS}
\text{P2} = \frac{2.5 \times 10^9}{1.0} = 2.5 \times 10^9 \text{ IPS}
\text{P3} = \frac{4.0 \times 10^9}{2.2} \approx 1.82 \times 10^9 \text{ IPS}
- P2가 초당 명령어 수가 가장 높다.
- 문제 b: 각 프로세서가 프로그램을 10초에 실행할 때 클럭 사이클 수는?
- Clock Cycles = CPU Time × Clock Rate
\text{P1} = 10s \times 3 \times 10^9 = 30 \times 10^9 \text{ cycles}
\text{P2} = 10s \times 2.5 \times 10^9 = 25 \times 10^9 \text{ cycles}
\text{P3} = 10s \times 4.0 \times 10^9 = 40 \times 10^9 \text{ cycles}
최종 통합 공식 (The BIG Picture)
\text{CPU Time} = \underbrace{\frac{\text{Instructions}}{\text{Program}}}_{\text{알고리즘·컴파일러·ISA}} \times \underbrace{\frac{\text{Clock Cycles}}{\text{Instruction}}}_{\text{ISA·하드웨어(CPI)}} \times \underbrace{\frac{\text{Seconds}}{\text{Clock Cycle}}}_{\text{하드웨어(클럭 속도)}}
- 각 요소별 영향 정리:
| 요소 | IC | CPI | 클럭 주기 |
|---|---|---|---|
| 알고리즘 | ✅ | ✅ (간접) | ❌ |
| 프로그래밍 언어 | ✅ | ✅ | ❌ |
| 컴파일러 | ✅ | ✅ | ❌ |
| ISA | ✅ | ✅ | ✅ |
2. 전력 공식 (Power Wall)
CMOS 전력 공식
\text{Power} = \text{Capacitive load} \times \text{Voltage}^2 \times \text{Frequency}
- Capacitive load: 트랜지스터 스위칭 시 충전/방전되는 용량 (트랜지스터 수에 비례)
- Voltage: 동작 전압 → 제곱으로 영향을 주므로 줄이면 매우 효과적
- Frequency: 클럭 주파수 → 빠를수록 전력 증가
예제 5 — Reducing Power (전력 감소 계산)
- 문제 조건:
- Capacitive load: 기존의 85%
- Voltage: 기존의 85% (15% 감소)
- Frequency: 기존의 85% (15% 감소)
- 새 CPU의 전력은 기존 대비 몇 %인가?
- 풀이:
\frac{P_{\text{new}}}{P_{\text{old}}} = \frac{C_{\text{old}} \times 0.85 \times (V_{\text{old}} \times 0.85)^2 \times F_{\text{old}} \times 0.85}{C_{\text{old}} \times V_{\text{old}}^2 \times F_{\text{old}}}
= 0.85 \times 0.85^2 \times 0.85 = 0.85^4 \approx 0.52
- 전력이 기존의 약 52% 수준으로 감소 (약 절반)
- Voltage가 제곱이라 특히 중요하다. 전압을 15% 낮추면 전압 항목만으로 0.85² ≈ 0.72, 즉 28% 감소 효과가 난다.
전력 벽 (Power Wall) — 수십 년간의 변화
| 항목 | 변화량 |
|---|---|
| Capacitive load | ×30 증가 |
| Voltage | 5V → 1V (대폭 감소) |
| Frequency | ×1000 증가 |
- 수십 년간 전압을 낮춰서 전력 증가를 억제해 왔으나, 이제는 전압을 더 낮출 수도, 열을 더 제거할 수도 없는 한계에 도달했다.
두 공식의 핵심 연결 관계
text
성능을 높이려면?
├─ 클럭 속도(Frequency) ↑
│ └─ 하지만 Power ∝ Frequency → 전력·발열 증가
│
├─ 전압(Voltage) ↓
│ └─ Power ∝ Voltage² → 매우 효과적이었으나 이미 한계
│
└─ 결론: 단일 코어 클럭 속도 향상으로는 한계
→ 멀티코어 + 병렬 프로그래밍으로 해결- 즉, 전력 공식의 한계가 성능 공식의 방향을 바꾼 것이다. 클럭을 올리면 성능은 오르지만 전력도 비례해서 오르기 때문에, 현대 CPU는 클럭을 무작정 올리는 대신 코어를 여러 개 탑재하는 방향으로 발전했다.