CPU Performance 결정 요소 : Execution Time, Clock Period, CPI
1. Execution Time(실행시간)
💡 컴퓨터 성능 평가 기준은 프로그램 실행 시간
실행 시간의 두 가지 개념
- 경과 시간(Elapsed Time)
- 사용자가 실제로 느끼는 전체 실행 시간
- OS 스케줄링, 입출력 지연, 네트워크 지연 등 모든 요소 포함
- CPU 시간(CPU Time)
- 순수하게 CPU에서 명령어가 실행되는 시간만 고려
- 성능 분석 시 주로 사용하는 기준
👉 성능 연구에서는 CPU 시간을 기준으로
2. 클럭과 주파수
- 클럭 신호(Clock Signal): CPU 동작을 동기화하는 신호 (0 ↔ 1 반복)
- 주파수(Frequency): 1초에 클럭이 몇 번 변화하는지 (Hz)
- 1Hz = 1초에 한 번 변화
- 1GHz = 1초에 10⁹번 변화
- 클럭 주기(Clock Period): 한 번의 클럭 사이클에 걸리는 시간
- 클럭 주기 = 1 / 주파수
- 예: 4GHz CPU → 1사이클 = 0.25ns (250ps)
👉 클럭 속도가 높을수록 CPU는 더 많은 명령을 단위 시간에 처리 가능
3. CPU 시간 공식
CPU Time = Clock Cycles × Clock Cycle Time
CPU Time = Clock Cycles / Clock Rate
CPU Time = Instruction Count × CPI × Clock Cycle Time
CPU Time = Instruction Count x CPI / Clock Rate
Clock Rate = 1 / Clock Cycle TIme
Clock Cycles = Instruction Count x CPI
CPU 시간은 다음 3가지 요소로 나뉜다:
- Instruction Count: 실행된 명령어 수 (알고리즘/프로그래머 영향)
- CPI (Cycles Per Instruction): 명령어 하나당 평균 소요 사이클 (하드웨어/ISA 영향)
- Clock Cycle Time: 클럭 한 사이클에 걸리는 시간 (CPU 클럭 속도 영향)
4. CPI(Cycles Per Instruction)
명령어마다 걸리는 사이클이 다르므로, 전체 명령어와 사이클 수를 합산해 평균을 계산


ex )
- 코드 1: A 2개(1사이클), B 1개(2사이클), C 2개(3사이클) → 총 10사이클 / 5명령어 = CPI 2.0
- 코드 2: A 4개, B 1개, C 1개 → 총 9사이클 / 6명령어 = CPI 1.5
- 결론: 코드 2가 명령어 수는 더 많아도 실행 시간은 더 짧음.
4. 성능 향상 방법
- Instruction Count 감소
- 더 효율적인 알고리즘 작성
- 불필요한 연산 제거
- 프로그래밍 언어 : Python(인터프리터) -> 명령어 많음, C(컴파일러 언어) -> 명령어 적음
- 컴파일러 최적화 기능
- CPI 감소
- 하드웨어 최적화 (파이프라이닝, 슈퍼스칼라 등)
- 효율적인 명령어 집합(ISA) 설계
- 컴파일러 최적화 기능
- 클럭 주기 단축 (주파수 증가)
- 더 높은 클럭 속도로 동작
- 하지만 발열, 전력 소모 증가라는 한계 존재
- 멀티코어
- 2005년 전후, 클럭 속도 증가가 발열·전력 문제로 막히면서 CPU 발전 방향이 멀티코어로 전환됨.
- 이후 성능 향상은 병렬 프로그래밍을 얼마나 잘 활용하느냐에 달림.
[ 예시 문제 ]
- 조건
- 컴퓨터 A: 4GHz, CPI = 2.0
- 컴퓨터 B: 2GHz, CPI = 1.2
- 동일한 프로그램 실행
- CPU 시간 계산
- A: I × 2 × 0.25ns = 0.5I ns
- B: I × 1.2 × 0.5ns = 0.6I ns
=> A가 B보다 약 1.2배 빠름
'개발 > 💻 CS 지식' 카테고리의 다른 글
| [ 빅데이터응용 ] Chapter1. Database Application Design and Development (1) | 2025.09.20 |
|---|---|
| [ 소프트웨어공학 ] 소프트웨어 프로세스 : 소프트웨어 프로세스 모델과 소프트웨어 프로세스 활동 (0) | 2025.09.19 |
| 🍇 [ 컴퓨터 그래픽스 ] Vectors (0) | 2025.09.11 |
| [ 컴퓨터구조 ] Chapter1 : Computer Abstractions and Technology (1) | 2025.09.11 |
| 🍇 [ 컴퓨터 그래픽스 ] Randomness ( 1 ) (0) | 2025.09.04 |