컴퓨터의 성능을 말할 때 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