개발/💻 CS 지식

[ 컴퓨터구조 ] Chapter1. CPU Performance - Execution Time, CPU Clock, CPI

정소은 2025. 9. 18. 08:43

 

 

 

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.  성능 향상 방법

  1. Instruction Count 감소
    • 더 효율적인 알고리즘 작성
    • 불필요한 연산 제거
    • 프로그래밍 언어 : Python(인터프리터) -> 명령어 많음, C(컴파일러 언어) -> 명령어 적음
    • 컴파일러 최적화 기능
  2. CPI 감소
    • 하드웨어 최적화 (파이프라이닝, 슈퍼스칼라 등)
    • 효율적인 명령어 집합(ISA) 설계
    • 컴파일러 최적화 기능
  3. 클럭 주기 단축 (주파수 증가)
    • 더 높은 클럭 속도로 동작
    • 하지만 발열, 전력 소모 증가라는 한계 존재
  4. 멀티코어
    • 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배 빠름