기기구조

CPU Time

ohyujeong 2022. 3. 21. 15:57

컴퓨터의 성능을 말할 때 2가지의 기준이 있다.

 

1. Response Time

하나의 작업이 끝날 때까지 걸리는 시간, 즉 응답시간이다. 

따라서 Response Time은 요청이 온 순서대로 작업을 끝내면 좋아진다.

 

2. Throughput

정해진 시간 간격 안에 얼마나 많은 일을 하는지, 즉 처리량이다.

Response Time이 짧은 작업부터 하면 좋아진다.

 

응답시간과 처리량은 서로 어떤 영향이 있는가?

- 빠른 CPU로 교체했을 때 : Response Time 감소, Throughput이 증가

- CPU를 추가했을 때 : Response Time에는 변화 X, Throughput 증가

-> Response time에 따라서 Throughput은 영향이 있지만, Throughput에 ResponseTime에 영향X

-> Response time에 포커스해서 CPU의 성능을 개선해보자

 Relative Performance(상대속도)

Define Performance = 1 / Execution Time(수행 시간)

수행시간의 역수를 이용해서 비교할 수 있다.

 

 -> X 가 Y보다 n배 빠르다.



Ex) 수행시간이 10s인 A, 15s인 B가 있다.

Execution Time B / Execution Time A = 15s / 10s = 1.5

-> A는 B보다 1.5배 빠르다.

 

Measuring Execution Time

  • Elapsed time
    • 모든 측면에서의 총 응답시간(CPU 작업시간, I/O 작업시간, OS overhead, Idle time 등)
    • 시스템 전체의 performance를 정의
  • CPU time
    • CPU에서 주어진 job을 처리하는 데 걸린 시간 (CPU 작업시간)

CPU Clocking

모든 디지털 시스템은 박자(Clock) 에 맞춰 일을 한다.

 

Ex) 2배속 댄스는 2배 빨라진 '박자'에 맞춰 춤을 빨리 추듯이, '박자'에 따라 일의 속도가 달라짐

-> 박자가 빨라질수록 춤의 수행시간 감소, 즉 짧은박자일수록 Clock이 작아질수록 수행시간 빨라짐

-> 박자가 빨라지니까 Clock Cycle 개수는 증가함 (박자를 잘게 쪼개는 너낌..)

 

 

  • Clock period
    • duration of a clock cycle (한 clock cycle의 주기) 
    • Clock period의 역수
          (Clock rate가 4GHz)
  • Clock frequency(rate)
    • cycles per second (초 당 사이클 수(사이클 몇 번))
         

 

 

-> clock period

 

cf) ps는 0이 12개, ns는 9개, ms는 6개

cf2) 100억은 0이 10개, GH는 0이 9개

 

EX) 노트북 스펙 중 CPU Clock 이 2.9GHz 이라면

해당 노트북에 탑재된 CPU가 2.9GHz 박자까지 (1초에 29억번까지 안정적으로 감당할 수 있다.)

 

CPU Time

 

CPU Clock Cycles

- Job 수행에 몇 Clock이 필요한지

 

Clock Rate = Frequency

 

따라서 성능향상은

  • Clock Cycles 수 감소 -> 명령어 개수와, 명령어 당 cycle 개수 줄이면 감소됨
  • Clock Rate 증가 

CPU Time Example

Computer A : 2GHz clock, 10s CPU time

 

A를 B 컴퓨터로 디자인 

- 6s CPU time 목표

- faster clock, but causes 1.2 X clock cycles

   why? clock 빨라지면, 필요한 clock 수가 증가 (박자가 빨라지면, 한 박자 안에 할 수 있는 동작이 줄어듦)

 

-> 초 당 사이클 수를 4GHz 로 맞추면 디자인 성공 

Instruction Count and CPI

Cycles per Instruction : Instruction 당 필요한 사이클 

-> 하나의 동작(Instruction)은 한 박자 안에 안 끝날 수 있으니까 동작을 끝내는 데 필요한 사이클 개수

ex) 춤의 다이아몬드 스텝은 총 4박자가 필요하듯이..

 

Clock Cycle은 결국 명령어의 개수와, 명령어 당 필요한 Cycle 개수의 곱

 

-> 명령어 개수와 명령어 당 Cycle 개수 (CPI) 감소할수록 CPU Time 빨라짐

 

CPI Example 

 

Computer A : Cycle Time = 250ps, CPI = 2.0 (평균 CPI)

Computer B : Cycle Time = 500ps, CPI = 1.2 (평균 CPI)

Same ISA ( 같은 일을 할 때, A와 B가 필요한 Instruction 수가 같다고 가정)

 

Performance Summary 

program에 필요한 Instruction 개수 X CPI X Clock period