Why This Matters
RO 시험의 performance 문제는 공식 암기가 아니라 단위와 조건을 해석하는 문제입니다. 같은 Taktfrequenz라도 CPI가 다르면 실행 시간은 달라지고, 같은 CPI라도 instruction count가 다르면 결과가 달라집니다.
Single-cycle, multicycle, pipeline, cache 단원은 모두 performance로 다시 연결됩니다. Single-cycle에서는 kritischer Pfad가 Taktperiode를 정하고, multicycle에서는 state 수가 CPI를 만들며, pipeline에서는 stall과 flush가 effective CPI를 올립니다.
초보자는 MHz가 크면 무조건 빠르다고 생각하기 쉽습니다. 하지만 시험 답안은 항상 `IC x CPI x T_c`로 돌아와야 안정적입니다.
Full beginner lecture
Performance
Beginner Intuition
Performance는 "CPU가 빠르다"를 하나의 숫자로 외우는 단원이 아닙니다. RO 시험에서는 항상 세 가지 질문으로 쪼갭니다. 첫째, 프로그램이 실제로 몇 개의 instruction을 실행하는가? 둘째, instruction 하나가 평균 몇 clock cycle을 쓰는가? 셋째, clock cycle 하나가 실제 시간으로 얼마나 긴가? 이 셋을 곱하면 Ausführungszeit = Instruction Count x CPI x Taktperiode가 됩니다.
German term도 같이 잡아 두세요. Latenz는 한 작업이 시작해서 끝날 때까지의 시간입니다. Durchsatz는 단위 시간당 끝나는 작업 수입니다. Pipeline은 보통 single instruction의 Latenz를 마법처럼 줄이는 구조가 아니라, 여러 instruction을 겹쳐서 Durchsatz를 올리는 구조입니다. 그래서 pipeline 문제에서는 ideal CPI만 보지 말고 stall, flush, memory miss 같은 penalty를 같이 세야 합니다.
Formula Panel
Execution time / Ausführungszeit
= Instruction Count x CPI x Taktperiode
Total cycles
= Instruction Count x CPI
Taktfrequenz f
= 1 / Taktperiode
IPC
= 1 / CPI (단순 scalar processor에서의 기본 관계)
Speedup
= Time_old / Time_new
단위 검산은 점수 방어용입니다.
instructions x cycles/instruction x seconds/cycle = seconds
1 GHz -> 1 ns
500 MHz -> 2 ns
250 MHz -> 4 ns
1 ns -> 1000 ps
Exam Method
- 문제의 목표가 time, cycle count, CPI, frequency, speedup 중 무엇인지 표시합니다.
f가 주어지면 먼저 T_c = 1/f로 바꿉니다.- instruction mix가 있으면 weighted CPI를 구합니다. 예:
0.5*1 + 0.3*2 + 0.2*3. - single-cycle datapath delay 문제라면 평균 path가 아니라 가장 긴
kritischer Pfad를 고릅니다. - pipeline 문제라면 fill time, stall, flush를 total cycles에 더합니다.
Visual Block: Critical Path
add path:
PC -> Instruction Memory -> Register File -> ALU -> WB mux -> Register File
lw path:
PC -> Instruction Memory -> Register File -> ALU(address)
-> Data Memory(read) -> WB mux -> Register File
Ein-Takt rule:
T_c >= longest active instruction path
lw는 instruction fetch, register read, ALU address calculation, data memory read, writeback을 모두 지나기 때문에 single-cycle processor의 clock period를 정하는 대표적인 path입니다.
Worked Example 1
문제: IC = 12,000, CPI = 1.5, T_c = 2 ns인 프로그램의 Ausführungszeit를 구하세요.
Total cycles = 12,000 x 1.5 = 18,000 cycles
Time = 18,000 x 2 ns = 36,000 ns = 36 us
검산: instructions와 cycles가 약분되어 최종 단위가 time으로 남습니다.
Worked Example 2
문제: Processor A는 2 GHz, CPI 2.4이고 Processor B는 1 GHz, CPI 1.1입니다. 같은 IC라면 어느 쪽이 빠른가요?
A: 2 GHz -> T_c = 0.5 ns
time per instruction = 2.4 x 0.5 ns = 1.2 ns
B: 1 GHz -> T_c = 1.0 ns
time per instruction = 1.1 x 1.0 ns = 1.1 ns
정답·검산 확인
B가 더 빠릅니다. clock frequency만 보고 A라고 답하면 틀립니다. RO에서는 항상 CPI x T_c까지 비교합니다.
Worked Example 3
문제: instruction mix가 ALU 50% 4 cycles, lw 25% 5 cycles, sw 10% 4 cycles, branch 15% 3 cycles입니다. 평균 CPI는?
CPI_avg = 0.50*4 + 0.25*5 + 0.10*4 + 0.15*3
= 2.00 + 1.25 + 0.40 + 0.45
= 4.10
검산: 평균 CPI는 각 class cycle 수의 범위 근처에 있어야 합니다. 410처럼 나오면 percent를 0.50이 아니라 50으로 곱한 실수입니다.
Common Mistakes
MHz와 ns 변환에서 1000 배를 틀립니다. 기준값 1 GHz = 1 ns를 먼저 적으세요.- CPI가 낮으면 항상 빠르다고 생각합니다. IC와 Taktperiode도 함께 봐야 합니다.
- Pipeline speedup을 stage 수와 같다고 외웁니다. 실제 문제에서는 stall, flush, stage imbalance가 들어갑니다.
- Single-cycle clock을 평균 delay로 잡습니다. clock은 가장 긴 path, 즉
kritischer Pfad가 정합니다.
Active Recall
Ausführungszeit = IC x CPI x T_c에서 각 항의 단위는 무엇인가요?500 MHz의 Taktperiode는 몇 ns인가요?- Pipeline이 주로 개선하는 것은 Latenz인가요, Durchsatz인가요?
- Single-cycle datapath에서
lw가 critical path가 되기 쉬운 이유를 hardware component 순서로 말해 보세요.
Source Grounding
current:Vorlesung\Rechnerorganisation - Teil 2.pdf: Rechenleistung, Ein-Takt, Mehrtakt, Pipeline, CPI/IPC, Latenz/Durchsatz.current:Uebung\Übung 5.pdf, current:Uebung\Lösung 5.pdf: performance, cycles, CPI 계산.current:Uebung\Übung 6.pdf, current:Uebung\Lösung 6.pdf: single-cycle critical path와 performance 계산.