---
schema_version: 1
exam_id: "sose26-probeklausur"
aufgabe: 7
unit_id: "7a-1"
source_group_id: "7a"
official_exam: true
official_solution: true
language: "ko"
---

# 7a-1 — 네 번째 instruction fetch 시점

> **학습 목표:** line 21을 첫 dynamic instruction으로 삼아 jump target을 따라간 뒤, 공식 p39의 상자 배치와 강의의 IF→ID→EX cycle trace를 구분하여 네 번째 fetch snapshot을 검산할 수 있다.
>
> **왜 따로 배우는가:** pipeline stage 문제는 source code의 물리적 줄 순서가 아니라 실제 control flow 순서를 사용합니다. jump를 건너뛰면 이후 모든 stage가 한꺼번에 틀립니다.
>
> **범위:** Aufgabe 7 · 15점 Aufgabe의 최소 학습 단위 · 시험 p14–15 · 공식 해설 p39–40

## 1. 문제 원문 (Deutsch)

이 unit은 공식 Teilaufgabe 또는 표의 한 행·한 access를 학습 가능한 최소 단위로 다시 나눈 것입니다. 아래 전사는 source group `7a`의 공식 독일어 문제 원문이며, 페이지 이미지를 바로 뒤에 함께 두어 코드·표·도식을 대조할 수 있게 했습니다.

~~~text
7a) Pipeline-Stufen verstehen

Bestimmen, welcher Befehl in den jeweiligen Pipeline-Stufen gespeichert ist, zu dem gegebenen Codeabschnitt und den folgenden zwei Zeitpunkten:

- Wenn im Prozessor der vierte Befehl geladen wird (d.h. er sich in der Fetch-Phase befindet).
- Wenn im Prozessor der siebte Befehl geladen wird.

Dabei bezeichnen wir den Befehl in Zeile 21 als den ersten Befehl und den Befehl in Zeile 20 als den nullten, der in diesem Kontext in den Pipeline-Prozessor geladen wird.

```text
19: ...
20: mul x10, x11, x12
21: j 0x2A
22: ori x16, x14, 1
23: sub x17, x15, x14
24: sw x10, 8(x15)
25: addi x16, x16, 40
26: sw x10, -4(x17)
27: ...

39: ...
40: slti x5, x10, 4
41: slli x22, x10, 2
42: addi x23, x11, 2
43: addi x21, x11, -7
44: j 0x16
45: ...
```

Abbildung 2: Schreiben Sie hier die Lösung für die erste Teilaufgabe.

Abbildung 3: Schreiben Sie hier die Lösung für die zweite Teilaufgabe.
~~~

![공식 시험 원문 — exam-p14.png](../../assets/exam-p14.png)

*공식 시험 원문: `exam-p14.png` · Probeklausur.pdf · PDF p.14*

### 이 unit에서 풀 항목

첫 jump 이후 IF/ID/EX/MEM/WB를 채우세요.

## 2. 쉬운 한국어 해석

7a) Pipeline 단계 이해

주어진 코드 구간에 대하여 다음 두 시점에 각 Pipeline 단계에 어떤 명령어가 저장되어 있는지 결정하시오.

- 프로세서가 네 번째 명령어를 불러오는 시점, 즉 그 명령어가 Fetch 단계에 있는 시점.
- 프로세서가 일곱 번째 명령어를 불러오는 시점.

이 문맥에서는 21행의 명령어를 첫 번째 명령어로, 20행의 명령어를 Pipeline 프로세서에 적재되는 0번째 명령어로 센다.

```text
19: ...
20: mul x10, x11, x12
21: j 0x2A
22: ori x16, x14, 1
23: sub x17, x15, x14
24: sw x10, 8(x15)
25: addi x16, x16, 40
26: sw x10, -4(x17)
27: ...

39: ...
40: slti x5, x10, 4
41: slli x22, x10, 2
42: addi x23, x11, 2
43: addi x21, x11, -7
44: j 0x16
45: ...
```

그림 2: 첫 번째 세부 문제의 답을 여기에 작성하시오.

그림 3: 두 번째 세부 문제의 답을 여기에 작성하시오.

### 이 unit에 해당하는 최소 작업

첫 jump 이후 IF/ID/EX/MEM/WB를 채우세요.

이 문제에서 최종 결과만 맞히는 것보다 중요한 것은 `7a-1`에 필요한 중간 판단을 답안지에 남기는 것입니다.

## 3. 무엇을 묻는 문제인가

### 공식 문제의 요구사항

- 21행을 첫 번째 명령어로 세는 원문의 기준에 따라 네 번째 명령어가 Fetch 단계에 있을 때 각 Pipeline 단계의 명령어를 결정한다.
- 같은 기준에 따라 일곱 번째 명령어가 Fetch 단계에 있을 때 각 Pipeline 단계의 명령어를 결정한다.
- 두 시점의 결과를 각각 Abbildung 2와 Abbildung 3의 빈 칸에 기록한다.

### 조건과 제약

- 20행의 mul은 0번째 명령어이고 21행의 j는 첫 번째 명령어이다.
- 첫 번째 관찰 시점은 네 번째 명령어가 Fetch 단계에 있는 때이다.
- 두 번째 관찰 시점은 일곱 번째 명령어가 Fetch 단계에 있는 때이다.
- Jump로 인해 실제로 실행되는 동적 명령어 순서는 단순한 행 번호 증가 순서와 다를 수 있다.
- 답은 원본 그림의 Pipeline 단계별 빈 칸에 들어갈 명령어 형태로 제시해야 한다.

### 원문 오탈자·도식 관련 주의

- Abbildung 2와 Abbildung 3은 Pipeline datapath 위의 빈 답안 상자를 포함하는 그림 의존 자료이다. 이 JSON에는 그림의 배선과 상자 위치를 재구성하지 않았으며 exam-p14.png를 직접 확인해야 한다.
- 원문은 jump operand 0x2A와 0x16이 각각 코드의 어느 행을 가리키는지 문장으로 명시하지 않는다. 공식 해설은 0x2A=42, 0x16=22라는 대응을 사용한다.
- 공식 해설 p39의 두 그림에는 육안으로 확인되는 답안 상자가 네 개이지만, 텍스트만으로 각 상자와 IF/ID/EX/MEM/WB의 대응을 새로 추정해서는 안 된다.

### 도식 시각 확인 상태

- **도식 의존 여부:** 필수
- **시각 확인 상태:** verified spot-check
- **직접 확인한 asset:** exam-p14.png, solution-p39.png
- **확인 기준:** component/box 위치와 공식 해설의 표시를 텍스트 추출이 아닌 2× 원본 raster에서 대조했습니다.

### 이 unit의 학습 목표

- **관찰 가능한 목표:** line 21을 첫 dynamic instruction으로 삼아 jump target을 따라간 뒤, 공식 p39의 상자 배치와 강의의 IF→ID→EX cycle trace를 구분하여 네 번째 fetch snapshot을 검산할 수 있다.
- **출제 의도:** pipeline stage 문제는 source code의 물리적 줄 순서가 아니라 실제 control flow 순서를 사용합니다. jump를 건너뛰면 이후 모든 stage가 한꺼번에 틀립니다.
- **공식 근거 범위:** Probeklausur.pdf 시험 p14 7a의 line 20/21 counting과 첫 snapshot, Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p39 상단 Abbildung 18.
- **Aufgabe 공통 선수지식:** 한 cycle의 stage는 IF→ID→EX→MEM→WB 순서입니다. Jump가 확인되기 전에 뒤의 instruction이 이미 들어오므로 wrong-path instruction이 flush되어 nop이 됩니다. x0에 대한 write는 버려져 dependency를 만들지 않습니다.

## 4. 선수 개념과 핵심 용어

### dynamic instruction

- **뜻:** 프로그램 실행 중 control flow를 따라 실제로 fetch된 instruction instance입니다.
- **이 문제에서:** line 21을 첫 instruction으로 세고 jump target line 42부터 계속 셀 때 사용합니다.

### Fetch

- **뜻:** PC가 가리키는 instruction을 Instruction Memory에서 가져오는 pipeline stage입니다.
- **이 문제에서:** 문제의 'vierter Befehl geladen' 시점에서 기준 stage를 정할 때 사용합니다.

### flush

- **뜻:** jump가 확정된 뒤 잘못 가져온 sequential instruction을 무효화해 nop으로 만드는 처리입니다.
- **이 문제에서:** 공식 snapshot의 빈 MEM/WB 위치와 jump penalty를 해석할 때 사용합니다.

### stage snapshot

- **뜻:** 한 시점에 IF, ID, EX, MEM, WB에 있는 instruction을 동시에 기록한 표입니다.
- **이 문제에서:** 시험 p14의 도식과 공식 p39의 네 입력 상자를 표준 5-stage 표와 비교할 때 사용합니다.

### 이 문제에 적용할 풀이 규칙

### 규칙 1. 먼저 dynamic control flow 목록을 만든다

stage 배치를 시작하기 전에 jump target을 따라 실제 fetch 순서를 확정해야 line 번호를 순차로 잘못 세지 않습니다.

- **시험지에 남길 것:** line 21 → line 42 → line 43 → line 44처럼 화살표 목록을 씁니다.

### 규칙 2. 문제가 정한 counting convention을 그대로 쓴다

시험은 line 20을 0번째, line 21을 1번째로 정의하므로 일반적인 첫 instruction 감각보다 문제 문구가 우선입니다.

- **시험지에 남길 것:** 각 dynamic line 위에 0,1,2,3,4 번호를 직접 적습니다.

### 규칙 3. 공식 상자 배치와 표준 stage 시간표를 분리한다

공식 p39의 첫 세 상자는 42→43→44 순이지만, 유효 dynamic 순서 42→43→44가 동시에 파이프라인에 있다면 가장 최근 line44가 IF, line43이 ID, 가장 오래된 line42가 EX에 있어야 합니다.

- **시험지에 남길 것:** 왼쪽에는 공식 상자 순서, 오른쪽에는 IF/ID/EX/MEM/WB 표를 따로 만들고 차이를 표시합니다.

### 공식 문제 전에 푸는 작은 유사 예제

**문제:** code가 line 10: j 30, line 11: addi, line 30: addi, line 31: sub, line 32: j 12일 때 line 10을 첫 instruction으로 한 처음 네 dynamic instruction을 쓰세요.

**주어진 것**

- j는 무조건 target으로 control flow를 바꿉니다.
- source code의 다음 줄은 jump가 선택되면 유효 dynamic instruction이 아닙니다.
- 첫 instruction 번호는 1입니다.

### 예제 단계 1. 첫 instruction line 10의 target을 찾습니다.

- **왜:** 물리적 다음 line 11 대신 실제 다음 fetch 위치를 결정해야 합니다.
- **종이에:** 1: line 10 j→30

### 예제 단계 2. target block에서 순서대로 두 instruction을 적습니다.

- **왜:** 새 jump를 만나기 전에는 sequential control flow입니다.
- **종이에:** 2: line 30 addi, 3: line 31 sub

### 예제 단계 3. 네 번째 dynamic instruction을 적고 다음 target을 표시합니다.

- **왜:** snapshot 기준 instruction과 이후 control flow를 함께 확인하기 위해서입니다.
- **종이에:** 4: line 32 j→12

**예제 정답:** 처음 네 dynamic instruction은 line 10, line 30, line 31, line 32입니다.

**독립 검산:** jump 때문에 line 11이 목록에 들어가지 않았고 line 32의 target은 다음 단계로만 표시했는지 확인합니다.

## 5. 공식 정답 요약

**공식 결론:** [공식 도식 모호성] 공식 p39 상단 네 상자의 왼쪽→오른쪽 표기는 `addi x23,x11,2`(line42), `addi x21,x11,-7`(line43), `j 0x16`(line44), `nop`입니다. 그러나 강의의 5-stage 시간 순서로 독립 추적하면 네 번째 유효 instruction인 line44가 Fetch일 때 IF=`j 0x16`(line44), ID=`addi x21,x11,-7`(line43), EX=`addi x23,x11,2`(line42), MEM=`nop`, WB=`nop`입니다.

### 시험지 문장별 정답 해설

아래는 시험지의 항목 순서를 그대로 유지합니다. 각 항목에서 원문 → 한국어 번역 → 정답 → 판단 근거 → 실제로 쓸 답을 바로 이어서 읽으세요.



### 현재 소문제의 요구·판단·답을 한 흐름으로 연결

### `7a-1`에서 정확히 답할 대상

- **시험지가 요구하는 답:** 첫 jump 이후 IF/ID/EX/MEM/WB를 채우세요.
- **이 소문제의 공식 답:** [공식 도식 모호성] 공식 p39 상단 네 상자의 왼쪽→오른쪽 표기는 `addi x23,x11,2`(line42), `addi x21,x11,-7`(line43), `j 0x16`(line44), `nop`입니다. 그러나 강의의 5-stage 시간 순서로 독립 추적하면 네 번째 유효 instruction인 line44가 Fetch일 때 IF=`j 0x16`(line44), ID=`addi x21,x11,-7`(line43), EX=`addi x23,x11,2`(line42), MEM=`nop`, WB=`nop`입니다.

### 판단 1. line 21을 첫 instruction으로 놓습니다.

- **왜:** 공식 문제는 line 20을 0번째, line 21을 첫 번째라고 명시해 counting ambiguity를 제거합니다.
- **이 판단에서 답안지에 남길 것:** line 20 위에 0, line 21 위에 1을 적습니다.

### 판단 2. jump 뒤 speculative line을 표시합니다.

- **왜:** line 21의 j 0x2A는 target line 42로 가므로 sequential line 22·23은 유효 control-flow 목록과 구분해야 합니다.
- **이 판단에서 답안지에 남길 것:** line 21→42 화살표와 line 22·23에 wrong-path 표시를 적습니다.

### 판단 3. 첫 jump의 두 wrong-path instruction이 만든 flush bubble을 표시합니다.

- **왜:** 공식 processor는 jump 확정 전에 가져온 두 instruction을 유효 작업으로 남기지 않습니다.
- **이 판단에서 답안지에 남길 것:** line22와 line23을 wrong path로 표시하고 표준 snapshot의 MEM/WB에 nop을 적습니다.

### 판단 4. 네 번째 유효 instruction line44의 표준 stage snapshot과 공식 p39 공간 배치를 나란히 적습니다.

- **왜:** 공식 그림은 첫 세 상자를 line42→43→44로 채우지만 이를 IF→ID→EX로 읽으면 dynamic instruction의 나이 순서가 뒤집히기 때문입니다.
- **이 판단에서 답안지에 남길 것:** 표준 trace: IF=line44 j, ID=line43 addi, EX=line42 addi, MEM=nop, WB=nop. 공식 상자 왼→오: line42, line43, line44, nop. 옆에 [공식 도식 모호성]을 적습니다.

### 위 판단이 최종 답으로 이어지는 이유

유효 dynamic 순서는 line21→42→43→44입니다. 강의의 IF→ID→EX 진행 순서로는 네 번째 유효 instruction line44가 IF에 있을 때 line43이 ID, line42가 EX에 있어야 합니다. 공식 p39는 동일한 세 instruction을 첫 세 상자에 42→43→44 순으로 적어 stage 진행과 반대로 보이므로 공식 그림의 공간 배치와 독립 cycle trace를 구분해야 합니다.

### 답안 작성 시 주의

공식 그림의 상자 위치를 곧바로 IF/ID/EX라는 이름과 동일시하지 마세요. 공식 공간 배치와 표준 stage 시간표를 둘 다 적고 모순을 표시해야 합니다.

![공식 Musterlösung/Hinweise — solution-p39.png](../../assets/solution-p39.png)

*공식 Musterlösung/Hinweise: `solution-p39.png` · Probeklausur Musterlösung und Hinweise.pdf · PDF p.39*

## 6. 풀이 전략

1. line 21을 첫 instruction으로 놓습니다.
2. jump target을 따라 유효 dynamic instruction 1–4를 적습니다.
3. 첫 jump 때문에 생긴 두 flush bubble을 표시합니다.
4. 표준 IF→ID→EX 순서와 공식 p39 상자 배치를 각각 대조합니다.

## 7. 단계별 상세 풀이

### 단계 1. line 21을 첫 instruction으로 놓습니다.

- **이유:** 공식 문제는 line 20을 0번째, line 21을 첫 번째라고 명시해 counting ambiguity를 제거합니다.
- **종이에 남길 것:** line 20 위에 0, line 21 위에 1을 적습니다.
- **완료 기준:** 네 번째 instruction을 일반 line 순서가 아니라 문제 convention으로 셉니다.
- **막힐 때 힌트:** 시험 p14의 'Zeile 21 als den ersten Befehl' 문장을 표시하세요.
- **가장 흔한 첫 오류:** line 20을 첫 번째로 세어 모든 번호가 하나씩 밀립니다.

### 단계 2. jump 뒤 speculative line을 표시합니다.

- **이유:** line 21의 j 0x2A는 target line 42로 가므로 sequential line 22·23은 유효 control-flow 목록과 구분해야 합니다.
- **종이에 남길 것:** line 21→42 화살표와 line 22·23에 wrong-path 표시를 적습니다.
- **완료 기준:** 첫 jump 뒤 실제 target block 42,43,44를 순서대로 찾습니다.
- **막힐 때 힌트:** 0x2A를 decimal line 번호와 연결하세요.
- **가장 흔한 첫 오류:** line 21 다음을 line 22로 계속 세어 target block을 놓칩니다.

### 단계 3. 첫 jump의 두 wrong-path instruction이 만든 flush bubble을 표시합니다.

- **이유:** 공식 processor는 jump 확정 전에 가져온 두 instruction을 유효 작업으로 남기지 않습니다.
- **종이에 남길 것:** line22와 line23을 wrong path로 표시하고 표준 snapshot의 MEM/WB에 nop을 적습니다.
- **완료 기준:** 두 bubble이 line21의 jump가 EX에서 확정될 때 생긴다는 것을 설명합니다.
- **막힐 때 힌트:** 강의 Teil 2 p99 및 p105의 taken jump당 두 instruction flush 규칙을 사용하세요.
- **가장 흔한 첫 오류:** 잘못 fetch한 instruction을 그대로 stage에 남겨 실행된다고 봅니다.

### 단계 4. 네 번째 유효 instruction line44의 표준 stage snapshot과 공식 p39 공간 배치를 나란히 적습니다.

- **이유:** 공식 그림은 첫 세 상자를 line42→43→44로 채우지만 이를 IF→ID→EX로 읽으면 dynamic instruction의 나이 순서가 뒤집히기 때문입니다.
- **종이에 남길 것:** 표준 trace: IF=line44 j, ID=line43 addi, EX=line42 addi, MEM=nop, WB=nop. 공식 상자 왼→오: line42, line43, line44, nop. 옆에 [공식 도식 모호성]을 적습니다.
- **완료 기준:** 공식 그림을 정확히 전사하면서도 표준 IF→ID→EX 시간표와의 차이를 설명할 수 있습니다.
- **막힐 때 힌트:** 동시에 있는 세 유효 instruction 가운데 가장 나중에 fetch된 line44가 IF에 있어야 합니다.
- **가장 흔한 첫 오류:** 공식 상자의 왼쪽부터 기계적으로 IF, ID, EX라고 이름 붙여 line42가 line43·44보다 늦게 fetch된 것처럼 만듭니다.

## 8. 문제와 공식 해설의 비교·검증

- **문제가 요구하는 것:** 첫 jump 이후 IF/ID/EX/MEM/WB를 채우세요.
- **공식 해설이 제시하는 결론:** [공식 도식 모호성] 공식 p39 상단 네 상자의 왼쪽→오른쪽 표기는 `addi x23,x11,2`(line42), `addi x21,x11,-7`(line43), `j 0x16`(line44), `nop`입니다. 그러나 강의의 5-stage 시간 순서로 독립 추적하면 네 번째 유효 instruction인 line44가 Fetch일 때 IF=`j 0x16`(line44), ID=`addi x21,x11,-7`(line43), EX=`addi x23,x11,2`(line42), MEM=`nop`, WB=`nop`입니다.
- **결론을 재현하는 핵심 논리:** 유효 dynamic 순서는 line21→42→43→44입니다. 강의의 IF→ID→EX 진행 순서로는 네 번째 유효 instruction line44가 IF에 있을 때 line43이 ID, line42가 EX에 있어야 합니다. 공식 p39는 동일한 세 instruction을 첫 세 상자에 42→43→44 순으로 적어 stage 진행과 반대로 보이므로 공식 그림의 공간 배치와 독립 cycle trace를 구분해야 합니다.
- **검증 방법:** 위 micro-step의 `종이에 남길 것`을 순서대로 만들고 각 `완료 기준`을 확인합니다. 최종 산출물이 공식 결론과 같은지 대조합니다.
- **독립 cycle 검산:** 공식 p39의 첫 세 상자는 유효 instruction을 오래된 것→최근 것 순으로 적어 둔 것처럼 보이지만, 이를 그림의 왼쪽부터 IF→ID→EX라고 이름 붙이면 강의의 시간 진행과 반대가 됩니다. 따라서 공식 상자의 공간 전사와 표준 IF/ID/EX/MEM/WB 표를 나란히 제시했습니다.
- **전제와 주의 범위:** 공식 그림의 상자 위치를 곧바로 IF/ID/EX라는 이름과 동일시하지 마세요. 공식 공간 배치와 표준 stage 시간표를 둘 다 적고 모순을 표시해야 합니다.
- **채택할 시험 답:** 답안 그림의 네 상자를 채우라는 요구에는 공식 p39의 왼쪽→오른쪽 공간 배치를 재현합니다. 답을 stage 이름으로 서술할 때는 강의의 IF→ID→EX 시간 순서로 독립 검산한 표를 쓰고 `[공식 도식 모호성]`을 명시합니다.

## 9. 시험장에서 쓸 최종 답안

[공식 도식 모호성] 공식 p39 상단 네 상자의 왼쪽→오른쪽 표기는 `addi x23,x11,2`(line42), `addi x21,x11,-7`(line43), `j 0x16`(line44), `nop`입니다. 그러나 강의의 5-stage 시간 순서로 독립 추적하면 네 번째 유효 instruction인 line44가 Fetch일 때 IF=`j 0x16`(line44), ID=`addi x21,x11,-7`(line43), EX=`addi x23,x11,2`(line42), MEM=`nop`, WB=`nop`입니다.

답안지에는 결과만 쓰지 말고, 7절의 중간 산출물 가운데 판정을 증명하는 식·bit field·register 상태·cycle·cache 상태를 함께 남기세요.

## 10. 자주 하는 실수와 검산 체크리스트

### 대표 실수

- 공식 그림의 상자 위치를 곧바로 IF/ID/EX라는 이름과 동일시하지 마세요. 공식 공간 배치와 표준 stage 시간표를 둘 다 적고 모순을 표시해야 합니다.
- line 20을 첫 번째로 세어 모든 번호가 하나씩 밀립니다.
- line 21 다음을 line 22로 계속 세어 target block을 놓칩니다.
- 잘못 fetch한 instruction을 그대로 stage에 남겨 실행된다고 봅니다.
- 공식 상자의 왼쪽부터 기계적으로 IF, ID, EX라고 이름 붙여 line42가 line43·44보다 늦게 fetch된 것처럼 만듭니다.

### 빠른 self-check

- **회상 질문:** 공식 p39의 첫 세 상자를 표준 IF→ID→EX로 읽으면 어떤 시간 순서 모순이 생기나요?
- [ ] 시험 p14를 가리고 line 21부터 첫 네 dynamic instruction과 jump target을 재구성할 수 있다.
- [ ] 공식 p39 상단 네 상자의 공간 순서와 표준 IF/ID/EX/MEM/WB trace를 각각 쓰고, 둘의 차이를 설명할 수 있다.

## 11. 짧은 확인 문제와 전이 연습

### 개념 재구성

**문제:** jump가 포함된 pipeline snapshot을 풀기 전 만드는 control-flow 준비표의 항목을 재구성하세요.

**힌트:** counting 기준, 현재 line, target, wrong path를 포함하세요.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** 문제가 정한 instruction 번호, 현재 line, jump target, 다음 유효 line, flush되는 wrong-path line을 표로 만듭니다.

**채점 기준**
  - instruction 번호
  - jump target
  - 다음 유효 line
  - wrong-path line

</details>

### 변형 문제

**문제:** line 5: j 12, line 6: addi, line 12: sub, line 13: sw, line 14: j 7에서 line 5를 첫 instruction으로 할 때 네 번째 dynamic instruction은 무엇입니까?

**힌트:** 5의 다음은 6이 아니라 target 12입니다.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** 순서는 line 5, line 12, line 13, line 14이므로 네 번째 dynamic instruction은 line 14의 j 7입니다.

**채점 기준**
  - line 5
  - line 12
  - line 13
  - line 14

</details>

### 오답 진단

**문제:** 학생이 line 21,22,23,24를 첫 네 instruction으로 세었습니다. 첫 오류와 수정된 control flow를 쓰세요.

**힌트:** line 21의 j target을 먼저 적용하세요.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** 첫 오류는 unconditional jump line 21 뒤에 line 22를 유효 instruction으로 센 것입니다. 실제 control flow는 line 21에서 line 42로 가고 이어 line 43, line 44를 봅니다.

**채점 기준**
  - unconditional jump
  - line 22
  - line 42
  - line 43
  - line 44

</details>

## 12. 근거 자료

- `[문제 출처] current:Probeklausur.pdf` — 시험 p14–15 · 공식 해설 p39–40
- `[공식 해설] current:Probeklausur Musterlösung und Hinweise.pdf` — 시험 p14–15 · 공식 해설 p39–40
- `[정확한 원문 group] 7a` — 시험 p.14 · 공식 해설 p.39
- `[소문항 범위] Probeklausur.pdf 시험 p14 7a의 line 20/21 counting과 첫 snapshot, Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p39 상단 Abbildung 18.`
- `[개념 근거 · file-level] current:Vorlesung/Rechnerorganisation - Teil 2.pdf` — Pipeline stage와 Hazard
- `[개념 근거 · file-level] current:Uebung/Lösung 9.pdf` — Pipeline timing, forwarding, stall
- `[개념 근거 · file-level] current:Uebung/Lösung 10.pdf` — RAW hazard와 branch 처리

### 이 파일에서 직접 대조한 공식 이미지

- `exam-p14.png` — Probeklausur.pdf · PDF p.14
- `solution-p39.png` — Probeklausur Musterlösung und Hinweise.pdf · PDF p.39

정확한 강의 슬라이드 한 페이지를 확정하지 못한 개념 자료는 `file-level`로 표시했습니다. 페이지 번호를 추측해서 만들지 않았습니다.
