1 . Computer Performance 

 

컴퓨터의 성능, 즉 Performance를 측정하기위해서는 어떠한 지표가 필요할까. 크게 아래의 둘로 나뉜다.

  • Response time : 특정 작업을 수행하는데 걸리는 시간, Execution time or Latency
  • Throughput : 단위시간당 수행하는 작업의 양, Bandwidth

 

성능(performance) = 1/실행 시간(execution time)
(성능x / 성능y) = (실행시간y / 실행시간x) = n 

 

 

따라서 computer X 가 computer Y보다 performance가 높다는 것은

Performance X > Performance Y 또는 (1 / Execution time X) < (1 / Execution time Y)  

 

 

여기서 Execution time 이란 어떠한 결과를 내놓는데 걸리는 총 시간으로 다음 시간들의 합이 된다.

  • processing
  • I/O
  • OS overhead
  • idle time

 

위에서는 response time (execution time) 을 기준으로 performance 를 측정하였으나, 이러한 execution time 에는

Elapsed time, CPU execution time(CPU time) 등이 존재한다.

  • Elapsed time (wall-clock time) : 작업을 수행하는 전체 시간
  • CPU execution time (CPU time) : 작업을 수행하기 위해 CPU가 소모한 시간, I/O accesses 나 다른 program들이 소모한 시간은 포함되지 않는다. System CPU time 과 User CPU time 으로 구분된다.

 

CPU performance를 측정한다는 것은, User CPU time 에 의한performance를 측정하는것을 의미한다.

따라서 User CPU time을 중심으로 performance를 측정한다.

 


2. Computer Performance and Clock

 

  • Clock? 일정한 주기의 square wave signal. 컴퓨터는 Clock을 기준으로 동작을 수행한다.

 

Clock cycle의 개념을 CPU time 에 도입하면 위와같이 표현되는데, CPU 실행시간은 결국 프로그램당 Clock이 몇번 동작했는가에 클럭 cycle time 을 곱하면 된다.

 

 

여기서 다시  Clock Cycle이 몇번 필요한지는 명령어의 개수와 명령어당 Cycle이 몇개 필요한지 계산하면 도출해낼 수 있다. 여기서 instruction 1개당 필요한 cycle수가 CPI 이다.

종합하면 아래와 같다.