Study Hub

Microarchitecture / High

Performance

Performance는 instruction count, CPI, Taktperiode를 연결해 Ausführungszeit와 Durchsatz를 계산하는 RO의 공통 언어입니다.

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`로 돌아와야 안정적입니다.

Beginner Story

CPU를 카페 작업대라고 생각하면 Latenz는 손님 한 명의 주문이 끝날 때까지의 시간이고 Durchsatz는 1분 동안 몇 잔이 나오는가입니다.

Taktperiode는 작업대의 박자입니다. 박자가 짧아도 한 주문에 필요한 박자 수가 많으면 전체 시간은 길 수 있습니다.

Pipeline은 손님 여러 명을 동시에 다른 단계에 올려 두는 방식입니다. 한 손님의 Latenz보다 전체 Durchsatz를 주로 개선합니다.

Glossary / Key Terms

  • Ausführungszeit프로그램 시작부터 종료까지 걸린 실제 시간입니다. Exam tip: 마지막 비교는 보통 이 값을 기준으로 합니다.
  • Instruction Count실제로 실행된 machine instruction 수입니다. Exam tip: loop와 Pseudobefehl expansion을 조심하세요.
  • CPIinstruction 하나당 평균 cycle 수입니다. Exam tip: instruction mix가 있으면 weighted average로 구합니다.
  • IPCcycle 하나당 완료되는 instruction 수입니다. Exam tip: 단순 scalar에서는 대략 `1/CPI`입니다.
  • Taktperiodeclock cycle 하나의 실제 시간 길이입니다. Exam tip: `f=1/T_c`로 Taktfrequenz와 변환합니다.
  • Taktfrequenz초당 clock cycle 수입니다. Exam tip: `1 GHz = 1 ns`를 기준값으로 잡으세요.
  • Latenz작업 하나가 시작해서 끝날 때까지의 시간입니다. Exam tip: Durchsatz와 구분하는 서술형이 자주 나옵니다.
  • Durchsatz단위 시간당 완료되는 작업 수입니다. Exam tip: Pipeline의 주된 개선 대상입니다.
  • Kritischer Pfad한 clock 안에서 지나야 하는 가장 긴 combinational path입니다. Exam tip: Single-cycle Taktperiode를 정합니다.

Step-by-Step Method

  1. 1. 목표값 표시time, cycles, CPI, frequency, speedup 중 무엇을 구하는지 먼저 표시합니다.
  2. 2. 단위 통일MHz/GHz를 ns로, ps를 ns로 바꾸어 계산식을 세웁니다.
  3. 3. CPI 계산instruction mix가 있으면 각 비율을 소수로 바꿔 weighted CPI를 구합니다.
  4. 4. 시간 계산`Ausführungszeit = IC x CPI x T_c` 또는 `cycles x T_c`를 적용합니다.
  5. 5. 검산최종 단위가 seconds 계열인지, speedup이 1보다 큰 방향인지 확인합니다.

Visual Model

T_c = 1 / ftime = IC x CPI x T_cIPC = 1 / CPI

Performance formula panel

Ausführungszeit, CPI, Taktperiode, IPC, Speedup 공식을 한 패널에 묶습니다.

Ausführungszeit = IC x CPI x T_c, T_c = 1/f, IPC = 1/CPI, Speedup = Time_old/Time_new

Critical path comparison

add path와 lw path를 비교해 single-cycle clock이 longest path로 정해짐을 보여 줍니다.

PC, Instruction Memory, Register File, ALU, Data Memory, WB mux

Latenz vs Durchsatz

단일 instruction latency와 pipeline steady-state throughput을 분리합니다.

IF, ID, EX, MEM, WB, stall, flush

Interactive Visual

Performance Formula Lab

IC, CPI, clock period를 바꿔 execution time과 frequency를 계산하세요.

ready

JavaScript가 켜져 있으면 이 영역이 조작 가능한 visual lab으로 바뀝니다.

Worked Examples

기본 실행 시간

Problem: IC=12,000, CPI=1.5, T_c=2 ns일 때 Ausführungszeit는?

  1. Total cycles = 12,000 x 1.5 = 18,000
  2. Time = 18,000 x 2 ns = 36,000 ns
  3. 36,000 ns = 36 us

instructions와 cycles가 약분되어 time만 남습니다.

Frequency만 보고 비교하지 않기

Problem: A는 2 GHz/CPI 2.4, B는 1 GHz/CPI 1.1입니다. 같은 IC면 어느 쪽이 빠른가요?

  1. A: T_c=0.5 ns, instruction당 2.4 x 0.5 = 1.2 ns
  2. B: T_c=1.0 ns, instruction당 1.1 x 1.0 = 1.1 ns
  3. B가 더 빠릅니다.

같은 IC라면 `CPI x T_c`만 비교해도 됩니다.

Common Mistakes

  • Taktfrequenz만 보고 빠른 CPU를 고름항상 `IC x CPI x T_c`로 전체 시간을 비교합니다.
  • percent를 50처럼 곱함50%는 0.50으로 바꿔 weighted CPI를 계산합니다.
  • Pipeline speedup을 stage 수와 같다고 함stall, flush, fill, stage imbalance를 total cycles에 반영합니다.

Active Recall

  • Ausführungszeit 공식과 단위 약분을 말하세요.Hint: instructions, cycles/instruction, seconds/cycle
    정답 확인

    `IC x CPI x T_c`이며 최종 단위는 seconds입니다.

  • 500 MHz는 몇 ns per cycle인가요?Hint: 1 GHz = 1 ns
    정답 확인

    2 ns입니다.

  • Pipeline은 Latenz와 Durchsatz 중 무엇을 주로 개선하나요?Hint: 여러 instruction을 겹칩니다.
    정답 확인

    주로 Durchsatz입니다.

  • Single-cycle에서 clock period는 평균 path인가요 longest path인가요?Hint: 모든 instruction이 한 cycle 안에 끝나야 합니다.
    정답 확인

    longest path, 즉 kritischer Pfad입니다.

Exam Connection

Übung 5는 CPI, cycle, performance 계산을 통해 단위 감각을 확인합니다.

Übung 6은 single-cycle critical path를 performance 공식과 연결합니다.

Pipeline 단원에서는 ideal CPI가 아니라 stall/flush를 반영한 effective CPI를 계산해야 합니다.

Source Grounding

Grounding entries are course-file and source-window hints for study. When a problem needs an exact page number, branch penalty, address, or formula convention, verify the cited PDF window before finalizing the answer.

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

  1. 문제의 목표가 time, cycle count, CPI, frequency, speedup 중 무엇인지 표시합니다.
  2. f가 주어지면 먼저 T_c = 1/f로 바꿉니다.
  3. instruction mix가 있으면 weighted CPI를 구합니다. 예: 0.5*1 + 0.3*2 + 0.2*3.
  4. single-cycle datapath delay 문제라면 평균 path가 아니라 가장 긴 kritischer Pfad를 고릅니다.
  5. 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

검산: instructionscycles가 약분되어 최종 단위가 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

Active Recall

  1. Ausführungszeit = IC x CPI x T_c에서 각 항의 단위는 무엇인가요?
  2. 500 MHz의 Taktperiode는 몇 ns인가요?
  3. Pipeline이 주로 개선하는 것은 Latenz인가요, Durchsatz인가요?
  4. Single-cycle datapath에서 lw가 critical path가 되기 쉬운 이유를 hardware component 순서로 말해 보세요.

Source Grounding