2 minute read

Computer Performance

컴퓨터 성능은 시스템이 작업을 얼마나 효율적으로 수행하는지를 측정하는 중요한 개념이다. 성능을 평가하는 여러 지표가 있으며, 여기서는 Response Time(응답 시간)과 Throughput(처리량), CPU Time, CPU clocking, 명령어 수(IC), CPI 등의 개념을 중심으로 성능이 어떻게 결정되고 향상될 수 있는지를 설명한다.

1. 성능 측정 기준 : Response Time vs Throughput

응답 시간(Response Time) 또는 실행 시간(Execution Time)

  • 하나의 작업(프로그램)이 시작부터 종료될 때까지 걸리는 시간
  • 사용자가 직접 체감하는 속도와 밀접한 관련이 있다.
  • 낮을수록 성능이 좋다.

처리량(Throughput)

  • 일정한 시간 동안 컴퓨터가 처리할 수 있는 작업의 개수
  • 예: 초당 처리할 수 있는 트랜잭션 수, 시간당 실행할 수 있는 프로그램 개수
  • 높을수록 성능이 좋다.

성능 향상 요소

  • 더 빠른 프로세서로 교체 : 응답시간 단축, 처리량 증가
  • 멀티 프로세서 추가 : 단일 작업 기준 응답 시간 큰 변화 없음, 처리량 증가

2. 상대적 성능(Relative Performance)

컴퓨터의 성능을 비교할 때 다음과 같이 정의한다.

Performance = 1/Execution_Time

두 시스템 A와 B가 있을 때, 상대 성능은 다음과 같이 계산할 수 있다.

Relative Performance = Execution_TimeB / Execution_TimeA

Alt text

예제

  • 시스템 A에서 프로그램 실행 시간 : 10초
  • 시스템 B에서 프로그램 실행 시간 : 15초
  • 상대 성능:
    • Execution_TimeB / Execution_TimeA = 15s/10s = 1.5

    • 즉, 시스템 A가 B보다 1.5배 빠름

3. 실행 시간 측정(Elapsed Time vs CPU Time)

경과 시간(Elapsed Time)

  • 프로그램이 실행되는 전체 시간
  • CPU 연산뿐만 아니라 I/O 대기, OS 오버헤드, 다른 프로그램 실행 등도 포함
  • 시스템의 전반적인 성능(System Performance)을 평가하는 데 사용됨

CPU 시간(CPU Time)

  • 특정 프로그램을 실행하는 동안 CPU가 실제로 연산에 사용한 시간
  • I/O 대기 시간과 다른 프로그램 실행 시간은 포함되지 않는다.
  • 두 가지로 나뉨
    • User CPU Time : 사용자 프로그램 실행 시간
    • System CPU TIme : OS에서 사용하는 시간

4. CPU 클로킹(CPU Clocking)과 성능

클록 주기(Clock Cycle Time)와 클록 속도(Clock Rate)

CPU는 일정한 속도로 동작하는 클록 신호에 의해 연산을 수행하며, 클록 속도가 성능에 직접적인 영향을 미친다.

Alt text

  • 클록 주기(Clock Period) : 한 클록 사이클의 길이 (예: 250ps = 0.25ns = 250x10-12s)
  • 클록 속도(Clock Rate, Hz) : 초당 실행할 수 있는 클록 사이클 수 (예: 4.0GHz = 4 x 109Hz)

CPU Time

Alt text

CPU 시간 최적화 방법

  • 클록 사이클 수 줄이기
  • 클록 속도 높이기
  • 클록 속도를 무조건 높이면 발열 증가 및 전력 소모 증가 등의 부작용이 발생할 수 있다.

CPU Time Example

Computer A : 2GHz clock, 10s CPU Time Designing Computer B

  • Aim for 6s CPU time
  • Can do faster clock, but causes 1.2 x clock cycles

Alt text

5. 명령어 수 (Instruction Count, IC)와 CPI(Cycles Per Instruction)

CPU 시간과 명령어 수의 관계

CPU 실행 시간은 명령어 수(InstructionCount, IC), CPI(Cycles Per Instruction, 명령어당 클록 사이클 수), 클록 주기에 의해 결정된다.

Alt text

Alt text

CPI 계산 예제

Alt text

추가 설명

CPI(명령어당 클록 사이클 수, Cycles Per Instruction)는 CPU가 각 명령어를 실행하는 데 평균적으로 필요한 클록 사이클의 수를 의미한다. 하지만 모든 명령어가 동일한 클록 사이클을 필요로 하는 것은 아니다. 일부 명령어는 적은 클록 사이클로 실행되고, 다른 명령어는 더 많은 클록 사이클이 필요할 수도 있다. 따라서 명령어들이 서로 다른 실행 시간을 가질 때, 가중 평균 CPI(Weighted Average CPI)를 계산해 CPU 성능을 보다 정확하게 평가할 수 있다.

Alt text

  • example : A, B, C 클래스의 명령어를 사용한 대체 컴파일된 코드 시퀀스(동일한 작업을 수행하지만 다른 방식으로 컴파일된 코드 시퀀스를 의미)

Alt text

6. 성능 요약

Alt text

컴퓨터 성능에 영향을 미치는 요소

  • 알고리즘 : 명령어 수(Instruction Count) 및 CPI에 영향
  • 프로그래밍 언어 : 컴파일러 최적화 수준, 명령어 수 변화
  • 컴파일러 : 명령어 수 및 CPI에 영향
  • 명령어 집합 구조(ISA) : 명령어 수, CPI, 클록 속도에 영향