Define : performance =
X is n times fater than Y
예를들어서 -> A라는 컴퓨터에는 10초의 실행속도를 보이고 B라는 컴퓨터에서는 15초라는 실행속도를 보이면 상대적 퍼포먼스를 구하기위해서는
즉 A가 1.5배 더 빠르다.
Elapse time (경과시간)
CPU time (CPU 시간, 순수 CPU시간)
Operation of digital hardware governed by a constant-rate clock.
Clock period(= Clock cycle time) : duration of clock cycle (CPU 클락 주기)
Clock rate(= Clock frequency, Clock speed) : cycles per second
위 둘은 역수관계이다. 즉, Clock Cycle Time = 1 / Clock rate
클럭 레이트가 높을수록 CPU 타임은 낮아진다.
(Higher the rate, smaller the CPU time)
예를 들어 CPU 1GHz 속도로, 10개의 Instruction을 수행하는데 한 Instruction당 15 cycle을 돈다고 하면 10개의 인스트럭션을 수행할 때는 150개 싸이클을 돌아야된다. 그럼 CPU Time은 사이클 도는수 (150) * 클럭속도 (1GHz) = 150ns CPU Time이 된다.
Computer A : 2Ghz Clock, 10s CPU time
Designing Computer B
Aim for 6s CPU time on this computer
Can do faster clock but this causes 1.2 * clock cycles for the rest of the CPU design.
✅ IPC = 1 / CPI
✅ IPS (초당 명령어 갯수)
= IC / CPU Time
= Clock rate(초당사이클수) x IPC(사이클당 명령어 갯수)
✅ Clock rate = Clock cycles / CPU Time
조건
Computer A: Cycle Time = 250ps, CPI = 2.0
Computer B: Cycle Time = 500ps, CPI = 1.2
Same ISA
Which is faster and how much?
A : CPU time A = Instruction Count * 2.0 * 250ps = Instruction Count * 500 ps
B : CPU time B = Instruction Count * 1.2 * 500ps = Instruction Count * 600 ps
Instruction Count * 600 ps / Instruction Count * 500 ps = 1.2 faster …
If different instruction classes take different numbers of cycles (각각 다른 명령어들과 클럭 사이클수를 가질때)
CPI Example 문제를 풀어보자
문제 1
Seqeunce 1 와 Sequence 2의 클럭 사이클을 구하기 위해서는
갈색 동그라미 들을 곱해준다.
Sequence 1: IC = 5 (2 + 1 + 2)
o Clock Cycles = (1*2 + 2*1 + 3*2) = 10
o Avg. CPI = 10/5 = 2.0
Sequence 2: IC = 6 (4 + 1 + 1)
o Clock Cycles = (4*1 + 1*2 + 1*3) = 9
o Avg CPI = 9/6 = 1.5
Performance Summary
CPU Time = (Instruction / Program) * (Clock cycles / Instruction) * (Seconds / Clock cycle)
Performance depends on :