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)

  • 문제 조건:
ClassCPISequence 1 ICSequence 2 IC
A124
B211
C321
  • 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 1Sequence 2
IC56
Clock Cycles109
Avg CPI2.01.5
  • Sequence 2가 명령어 수(IC)는 더 많지만, 총 클럭 사이클 수가 더 적어서 더 빠르다.
  • IC가 많다고 무조건 느린 것이 아님. CPI와 함께 봐야 한다.

예제 4 — Exercise (연습문제: 세 프로세서 비교)

  • 문제 조건:
프로세서Clock RateCPI
P13GHz1.5
P22.5GHz1.0
P34.0GHz2.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{하드웨어(클럭 속도)}}
  • 각 요소별 영향 정리:
요소ICCPI클럭 주기
알고리즘✅ (간접)
프로그래밍 언어
컴파일러
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 증가
Voltage5V → 1V (대폭 감소)
Frequency×1000 증가
  • 수십 년간 전압을 낮춰서 전력 증가를 억제해 왔으나, 이제는 전압을 더 낮출 수도, 열을 더 제거할 수도 없는 한계에 도달했다.

두 공식의 핵심 연결 관계

text
성능을 높이려면?
  ├─ 클럭 속도(Frequency) ↑
  │     └─ 하지만 Power ∝ Frequency → 전력·발열 증가
  │
  ├─ 전압(Voltage) ↓
  │     └─ Power ∝ Voltage² → 매우 효과적이었으나 이미 한계
  │
  └─ 결론: 단일 코어 클럭 속도 향상으로는 한계
              → 멀티코어 + 병렬 프로그래밍으로 해결
  • 즉, 전력 공식의 한계가 성능 공식의 방향을 바꾼 것이다. 클럭을 올리면 성능은 오르지만 전력도 비례해서 오르기 때문에, 현대 CPU는 클럭을 무작정 올리는 대신 코어를 여러 개 탑재하는 방향으로 발전했다.
Discussion