Jerry's Log

CPI

contents

클럭당 명령어 수(Cycles Per Instruction, CPI) 는 프로세서의 평균 효율성을 측정하는 데 사용되는 핵심 컴퓨터 아키텍처 지표입니다. 이는 CPU가 단일 명령어를 성공적으로 실행하는 데 필요한 평균 클럭 사이클 수를 정량화합니다.

CPI 값이 낮을수록 프로세서의 설계와 파이프라인 효율성이 높다는 것을 의미합니다.


⚙️ 핵심 개념 및 공식

CPI는 프로그램 전체 실행 또는 특정 코드 섹션의 실행을 측정하여 계산되는 평균값입니다. 공식적인 정의는 다음과 같습니다.

$$CPI = \frac{\text{프로그램에 필요한 총 클럭 사이클}}{\text{실행된 총 명령어 수}}$$

CPI vs. IPC (사이클당 명령어 수)

CPI는 종종 그 역수인 IPC(Instructions Per Cycle, 사이클당 명령어 수) 와 함께 논의됩니다.

$$IPC = \frac{1}{\text{CPI}}$$

여러 명령어를 동시에 실행하는 현대의 슈퍼스칼라 프로세서에서는 IPC 값이 종종 1보다 큽니다 (따라서 CPI는 1보다 작습니다).


CPI에 영향을 미치는 요인 (파이프라인 효율성)

명령어를 병렬로 실행할 수 있는 프로세서의 이상적인 CPI는 1 미만입니다. CPI는 명령어 파이프라인이 스톨(stall) 또는 버블(bubble) 을 겪을 때마다 증가합니다 (즉, IPC는 감소합니다).

1. 아키텍처 요인

이는 내재적인 설계 선택 사항입니다.

2. 실행 요인 (스톨)

이는 CPI를 이상적인 값에서 벗어나게 하는 런타임 지연입니다.


전체 성능 공식에서의 CPI

CPI는 프로그램의 총 실행 시간을 계산하는 데 사용되는 기본 공식의 핵심 구성 요소입니다. 이 공식은 CPU 설계자가 균형을 맞춰야 하는 트레이드오프를 보여줍니다.

$$\text{CPU 시간} = (\text{명령어 수}) \times \text{CPI} \times (\text{클럭 사이클 시간})$$

$\text{CPI} \times \text{클럭 사이클 시간}$의 곱은 명령어당 평균 시간입니다.

구성 요소 설계 목표 영향을 미치는 요소
명령어 수 최소화 컴파일러 최적화, ISA 선택 (CISC/RISC)
CPI 최소화 파이프라인 설계, 캐시 계층 구조, 분기 예측
클럭 사이클 시간 최소화 (주파수 극대화) 하드웨어 기술, 파이프라인 깊이

트레이드오프

엔지니어는 종종 단순한 마이크로아키텍처(낮은 CPI, 높은 클럭 사이클 시간)와 복잡한 마이크로아키텍처(낮은 CPI를 위해 높은 클럭 사이클 시간을 감수) 중에서 선택해야 합니다. 최적의 설계는 이 세 가지 요소의 곱을 최소화하는 것입니다.

references