---
schema_version: 1
exam_id: "sose26-probeklausur"
aufgabe: 7
unit_id: "7b"
source_group_id: "7b"
official_exam: true
official_solution: true
language: "ko"
---

# 7b — 세 processor의 총 cycle

> **학습 목표:** 실제 control-flow path의 10개 instruction과 jump 두 번을 근거로 Eintakt, Mehrtakt, Pipeline 총 cycle을 각각 계산할 수 있다.
>
> **왜 따로 배우는가:** 정적 line 수와 실제 실행 instruction 수는 다릅니다. processor별 식을 적용하기 전에 dynamic path를 세지 않으면 세 답이 모두 같은 원인으로 틀립니다.
>
> **범위:** Aufgabe 7 · 15점 Aufgabe의 최소 학습 단위 · 시험 p14–15 · 공식 해설 p39–40

## 1. 문제 원문 (Deutsch)

이 unit은 공식 Teilaufgabe 또는 표의 한 행·한 access를 학습 가능한 최소 단위로 다시 나눈 것입니다. 아래 전사는 source group `7b`의 공식 독일어 문제 원문이며, 페이지 이미지를 바로 뒤에 함께 두어 코드·표·도식을 대조할 수 있게 했습니다.

~~~text
7b) Ausführungszeitanalyse

Betrachten Sie den Code aus Teilaufgabe a). Angenommen, die Ausführung startet in Zeile 20: wie viele Takten benötigen Eintakt-, Mehrtakt- und Pipelineprozessor, um die Instruktion alles bis einschließlich Zeile 26 zu berechnen?

Geben Sie eindeutig Name des Prozessors und Anzahl an Takten ein.

Lösung:
~~~

![공식 시험 원문 — exam-p15.png](../../assets/exam-p15.png)

*공식 시험 원문: `exam-p15.png` · Probeklausur.pdf · PDF p.15*

### 이 unit에서 풀 항목

line20부터 line26까지 실제 control-flow path의 cycle을 계산하세요.

## 2. 쉬운 한국어 해석

7b) 실행 시간 분석

a)의 코드를 살펴보시오. 실행이 20행에서 시작한다고 가정할 때, 26행까지 포함하여 해당 실행을 계산하는 데 Eintakt, Mehrtakt, Pipeline 프로세서는 각각 몇 Takt가 필요한가?

프로세서의 이름과 Takt 수를 명확하게 적으시오.

풀이:

### 이 unit에 해당하는 최소 작업

line20부터 line26까지 실제 control-flow path의 cycle을 계산하세요.

이 문제에서 최종 결과만 맞히는 것보다 중요한 것은 `7b`에 필요한 중간 판단을 답안지에 남기는 것입니다.

## 3. 무엇을 묻는 문제인가

### 공식 문제의 요구사항

- 20행에서 시작해 jump를 반영한 실제 동적 실행 경로를 결정한다.
- Eintaktprozessor의 총 Takt 수를 계산한다.
- Mehrtaktprozessor의 총 Takt 수를 계산한다.
- Pipelineprozessor의 총 Takt 수를 계산한다.
- 각 결과를 프로세서 이름과 Takt 수의 쌍으로 명확히 제시한다.

### 조건과 제약

- 실행 시작점은 20행이다.
- 범위는 동적 control flow를 따라 26행의 명령어를 실행할 때까지이다.
- 분석 대상 코드는 7a에 제시된 코드이다.
- 공식 해설은 이 경로에서 총 10개의 명령어와 2개의 jump가 실행된다고 해석한다.
- 공식 해설은 해당 Mehrtakt FSM에서 이 경로의 모든 명령어가 각각 4 Takt를 사용한다고 가정한다.
- 공식 해설은 5-stage Pipeline에서 jump 하나당 두 명령어가 flush된다고 가정한다.

### 원문 오탈자·도식 관련 주의

- 원문의 'um die Instruktion alles bis einschließlich Zeile 26 zu berechnen'은 독일어 문법상 어색하다. 문구를 원문 그대로 보존했으며, 공식 해설은 '20행에서 시작해 26행을 포함할 때까지 동적으로 실행되는 명령어 전체'로 해석한다.
- 원문만으로는 jump가 어느 Pipeline 단계에서 확정되는지와 flush penalty가 몇 Takt인지 명시되지 않는다. 공식 해설 p40은 jump당 2 flush를 사용한다.
- Mehrtakt 명령어별 상태 수는 문제 본문에 다시 제시되지 않고 강의의 FSM을 전제로 한다.

### 도식 시각 확인 상태

- **도식 의존 여부:** 필수
- **시각 확인 상태:** verified spot-check
- **직접 확인한 asset:** exam-p15.png, solution-p40.png
- **확인 기준:** component/box 위치와 공식 해설의 표시를 텍스트 추출이 아닌 2× 원본 raster에서 대조했습니다.

### 이 unit의 학습 목표

- **관찰 가능한 목표:** 실제 control-flow path의 10개 instruction과 jump 두 번을 근거로 Eintakt, Mehrtakt, Pipeline 총 cycle을 각각 계산할 수 있다.
- **출제 의도:** 정적 line 수와 실제 실행 instruction 수는 다릅니다. processor별 식을 적용하기 전에 dynamic path를 세지 않으면 세 답이 모두 같은 원인으로 틀립니다.
- **공식 근거 범위:** Probeklausur.pdf 시험 p15 7b의 line20–26 실행시간 질문과 p14 source listing, Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p40의 10/40/18 Takte 표.
- **Aufgabe 공통 선수지식:** 한 cycle의 stage는 IF→ID→EX→MEM→WB 순서입니다. Jump가 확인되기 전에 뒤의 instruction이 이미 들어오므로 wrong-path instruction이 flush되어 nop이 됩니다. x0에 대한 write는 버려져 dependency를 만들지 않습니다.

## 4. 선수 개념과 핵심 용어

### dynamic instruction count

- **뜻:** jump target을 따라 실제로 실행되는 instruction instance의 수입니다.
- **이 문제에서:** 공식 경로의 N=10을 얻을 때 사용합니다.

### fill/drain

- **뜻:** 5-stage pipeline이 첫 결과를 내고 마지막 instruction을 끝내기 위해 필요한 기본 4 cycle overhead입니다.
- **이 문제에서:** ideal pipeline 식 N+(5-1)에 4를 더할 때 사용합니다.

### flush penalty

- **뜻:** control hazard로 잘못 fetch한 instruction을 버리면서 추가되는 cycle입니다.
- **이 문제에서:** jump 두 번×각 2 flush=4 cycle을 계산할 때 사용합니다.

### CPI by FSM path

- **뜻:** Mehrtakt에서 해당 dynamic path의 각 instruction이 요구하는 cycle 수입니다.
- **이 문제에서:** 이 문제의 모든 실행 instruction이 4 cycle이라는 주어진 가정으로 10×4를 계산할 때 사용합니다.

### 이 문제에 적용할 풀이 규칙

### 규칙 1. N은 listing 줄 수가 아니라 dynamic path에서 센다

line20–26만 보면 7줄이지만 jump로 line42–44도 실행되므로 공식 N은 10입니다.

- **시험지에 남길 것:** 20→21→42→43→44→22→23→24→25→26을 적고 각 line 옆에 1부터 10까지 번호를 붙입니다.

### 규칙 2. processor별 식을 섞지 않는다

Eintakt은 N×1, 이 Mehrtakt 경로는 N×4, Pipeline은 N+4+flushes를 사용합니다.

- **시험지에 남길 것:** E/M/P 세 행에 식과 숫자를 별도로 적습니다.

### 규칙 3. Pipeline penalty를 두 종류로 나눈다

기본 fill/drain 4와 jump flush 4는 원인이 다르므로 따로 적어야 부분점수와 검산이 쉽습니다.

- **시험지에 남길 것:** 10 + 4 + (2 jumps × 2 flushes)로 항을 분리합니다.

### 공식 문제 전에 푸는 작은 유사 예제

**문제:** 실제 실행 instruction N=6, 각 Mehrtakt instruction 4 cycle, 5-stage Pipeline, jump 1개당 2 flush일 때 세 processor의 cycle을 구하세요.

**주어진 것**

- Eintakt은 instruction당 1 cycle입니다.
- Mehrtakt은 이 경로에서 instruction당 4 cycle입니다.
- Pipeline data stall은 없고 jump는 1개입니다.

### 예제 단계 1. Eintakt cycle을 계산합니다.

- **왜:** instruction 하나가 한 cycle에 완료됩니다.
- **종이에:** 6×1=6

### 예제 단계 2. Mehrtakt cycle을 계산합니다.

- **왜:** 주어진 경로의 instruction마다 4 cycle입니다.
- **종이에:** 6×4=24

### 예제 단계 3. Pipeline의 N, fill/drain, flush를 더합니다.

- **왜:** 겹쳐 실행되지만 pipeline을 채우고 control hazard를 제거하는 overhead가 있습니다.
- **종이에:** 6+4+1×2=12

**예제 정답:** Eintakt 6 cycle, Mehrtakt 24 cycle, Pipeline 12 cycle.

**독립 검산:** Pipeline이 이 작은 예에서 N보다 작아지지 않고 penalty 항이 모두 비음수인지 확인합니다.

## 5. 공식 정답 요약

**공식 결론:** 실행 순서: 20→21→42→43→44→22→23→24→25→26. 따라서 Eintakt 10 Takte, Mehrtakt 40 Takte, Pipeline 10+4+2×2=18 Takte입니다.

### 시험지 문장별 정답 해설

아래는 시험지의 항목 순서를 그대로 유지합니다. 각 항목에서 원문 → 한국어 번역 → 정답 → 판단 근거 → 실제로 쓸 답을 바로 이어서 읽으세요.



### 현재 소문제의 요구·판단·답을 한 흐름으로 연결

### `7b`에서 정확히 답할 대상

- **시험지가 요구하는 답:** line20부터 line26까지 실제 control-flow path의 cycle을 계산하세요.
- **이 소문제의 공식 답:** 실행 순서: 20→21→42→43→44→22→23→24→25→26. 따라서 Eintakt 10 Takte, Mehrtakt 40 Takte, Pipeline 10+4+2×2=18 Takte입니다.

### 판단 1. 실제 실행 instruction을 target을 따라 세어 10을 얻습니다.

- **왜:** processor별 cycle 식의 공통 입력 N은 static line 수가 아니라 dynamic control-flow count입니다.
- **이 판단에서 답안지에 남길 것:** 20→21→42→43→44→22→23→24→25→26, N=10, J=2를 적습니다.

### 판단 2. Eintakt: 10×1.

- **왜:** Eintakt processor는 이 문제 가정에서 각 instruction을 한 긴 cycle에 완료합니다.
- **이 판단에서 답안지에 남길 것:** Eintakt=10 instructions×1 cycle=10 Takte를 적습니다.

### 판단 3. Mehrtakt: 이 path의 각 instruction이 4 cycle이라는 주어진 FSM 가정으로 10×4.

- **왜:** 공식 해설은 실제 경로의 instruction types가 모두 4 cycle을 필요로 한다고 명시합니다.
- **이 판단에서 답안지에 남길 것:** Mehrtakt=10×4=40 Takte와 'path-specific' 근거를 적습니다.

### 판단 4. Pipeline: N+(5-1)+2 jumps×2 flush.

- **왜:** ideal 5-stage 실행 14 cycle에 두 jump가 각각 두 wrong-path instruction을 flush해 4 cycle을 더합니다.
- **이 판단에서 답안지에 남길 것:** 10+4+(2×2)=18 Takte를 항별로 적습니다.

### 위 판단이 최종 답으로 이어지는 이유

실제 dynamic 순서는 20→21→42→43→44→22→23→24→25→26으로 총 10 instruction이며 jump는 두 번입니다. Pipeline은 fill/drain 4 cycle과 jump당 2 flush를 더합니다.

### 답안 작성 시 주의

원문 line20–26이 7줄이라고 해서 7 instruction만 세면 jump target으로 실행되는 line42–44를 놓칩니다.

![공식 Musterlösung/Hinweise — solution-p40.png](../../assets/solution-p40.png)

*공식 Musterlösung/Hinweise: `solution-p40.png` · Probeklausur Musterlösung und Hinweise.pdf · PDF p.40*

## 6. 풀이 전략

1. jump target을 따라 20→21→42→43→44→22→23→24→25→26을 적어 N=10과 jump=2를 확인합니다.
2. Eintakt: 10×1.
3. Mehrtakt: 이 path의 각 instruction이 4 cycle이라는 주어진 FSM 가정으로 10×4.
4. Pipeline: N+(5-1)+2 jumps×2 flush.

## 7. 단계별 상세 풀이

### 단계 1. 실제 실행 instruction을 target을 따라 세어 10을 얻습니다.

- **이유:** processor별 cycle 식의 공통 입력 N은 static line 수가 아니라 dynamic control-flow count입니다.
- **종이에 남길 것:** 20→21→42→43→44→22→23→24→25→26, N=10, J=2를 적습니다.
- **완료 기준:** N=10과 jump count=2를 별도로 증명할 수 있습니다.
- **막힐 때 힌트:** line21→42와 line44→22 두 이동을 포함하세요.
- **가장 흔한 첫 오류:** line20–26의 7줄만 세거나 wrong-path instruction을 N에 포함합니다.

### 단계 2. Eintakt: 10×1.

- **이유:** Eintakt processor는 이 문제 가정에서 각 instruction을 한 긴 cycle에 완료합니다.
- **종이에 남길 것:** Eintakt=10 instructions×1 cycle=10 Takte를 적습니다.
- **완료 기준:** 공식 10 Takte와 dynamic count가 연결됩니다.
- **막힐 때 힌트:** jump도 Eintakt에서 하나의 instruction cycle입니다.
- **가장 흔한 첫 오류:** jump penalty를 Eintakt에 별도로 더합니다.

### 단계 3. Mehrtakt: 이 path의 각 instruction이 4 cycle이라는 주어진 FSM 가정으로 10×4.

- **이유:** 공식 해설은 실제 경로의 instruction types가 모두 4 cycle을 필요로 한다고 명시합니다.
- **종이에 남길 것:** Mehrtakt=10×4=40 Takte와 'path-specific' 근거를 적습니다.
- **완료 기준:** 모든 Mehrtakt instruction이 항상 4 cycle이라고 과도하게 일반화하지 않습니다.
- **막힐 때 힌트:** 이 program path에 한정된 4-cycle 가정입니다.
- **가장 흔한 첫 오류:** Pipeline의 overlap 식 N+4를 Mehrtakt에도 적용합니다.

### 단계 4. Pipeline: N+(5-1)+2 jumps×2 flush.

- **이유:** ideal 5-stage 실행 14 cycle에 두 jump가 각각 두 wrong-path instruction을 flush해 4 cycle을 더합니다.
- **종이에 남길 것:** 10+4+(2×2)=18 Takte를 항별로 적습니다.
- **완료 기준:** 공식 18 Takte와 각 4 cycle overhead의 원인을 설명합니다.
- **막힐 때 힌트:** fill/drain 4와 jump penalty 4를 따로 표시하세요.
- **가장 흔한 첫 오류:** 10+4만 계산해 flush를 누락하거나 jump 두 번을 instruction count에서 빼고 또 penalty로 처리합니다.

## 8. 문제와 공식 해설의 비교·검증

- **문제가 요구하는 것:** line20부터 line26까지 실제 control-flow path의 cycle을 계산하세요.
- **공식 해설이 제시하는 결론:** 실행 순서: 20→21→42→43→44→22→23→24→25→26. 따라서 Eintakt 10 Takte, Mehrtakt 40 Takte, Pipeline 10+4+2×2=18 Takte입니다.
- **결론을 재현하는 핵심 논리:** 실제 dynamic 순서는 20→21→42→43→44→22→23→24→25→26으로 총 10 instruction이며 jump는 두 번입니다. Pipeline은 fill/drain 4 cycle과 jump당 2 flush를 더합니다.
- **검증 방법:** 위 micro-step의 `종이에 남길 것`을 순서대로 만들고 각 `완료 기준`을 확인합니다. 최종 산출물이 공식 결론과 같은지 대조합니다.
- **전제와 주의 범위:** 원문 line20–26이 7줄이라고 해서 7 instruction만 세면 jump target으로 실행되는 line42–44를 놓칩니다.
- **채택할 시험 답:** 이 가이드에서는 공식 Musterlösung의 결론을 시험 답으로 유지하며, 일반 ISA 또는 다른 구현과 달라질 수 있는 부분은 위 전제와 주의 범위에서 분리합니다.

## 9. 시험장에서 쓸 최종 답안

실행 순서: 20→21→42→43→44→22→23→24→25→26. 따라서 Eintakt 10 Takte, Mehrtakt 40 Takte, Pipeline 10+4+2×2=18 Takte입니다.

답안지에는 결과만 쓰지 말고, 7절의 중간 산출물 가운데 판정을 증명하는 식·bit field·register 상태·cycle·cache 상태를 함께 남기세요.

## 10. 자주 하는 실수와 검산 체크리스트

### 대표 실수

- 원문 line20–26이 7줄이라고 해서 7 instruction만 세면 jump target으로 실행되는 line42–44를 놓칩니다.
- line20–26의 7줄만 세거나 wrong-path instruction을 N에 포함합니다.
- jump penalty를 Eintakt에 별도로 더합니다.
- Pipeline의 overlap 식 N+4를 Mehrtakt에도 적용합니다.
- 10+4만 계산해 flush를 누락하거나 jump 두 번을 instruction count에서 빼고 또 penalty로 처리합니다.

### 빠른 self-check

- **회상 질문:** Pipeline의 ideal 14 cycle이 18 cycle로 늘어난 정확한 원인은 무엇인가요?
- [ ] 공식 source listing에서 dynamic instruction 10개와 jump 두 번을 직접 표시할 수 있다.
- [ ] 세 processor의 10/40/18을 식의 각 항 의미와 함께 설명할 수 있다.

## 11. 짧은 확인 문제와 전이 연습

### 개념 재구성

**문제:** 공식 문제의 Eintakt, Mehrtakt, Pipeline cycle 식을 N과 jump 수를 사용해 재구성하세요.

**힌트:** 1, 4, N+4+2J입니다.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** 이 경로에서 Eintakt=N, Mehrtakt=4N, Pipeline=N+4+2J입니다. N=10, J=2이면 10, 40, 18입니다.

**채점 기준**
  - Eintakt=N
  - Mehrtakt=4N
  - Pipeline=N+4+2J
  - 10, 40, 18

</details>

### 변형 문제

**문제:** N=12, jump=3, 각 Mehrtakt instruction=4 cycle인 같은 5-stage 모델에서 세 cycle 수를 구하세요.

**힌트:** Pipeline은 12+4+3×2입니다.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** Eintakt 12 cycle, Mehrtakt 48 cycle, Pipeline 22 cycle.

**채점 기준**
  - Eintakt 12
  - Mehrtakt 48
  - Pipeline 22

</details>

### 오답 진단

**문제:** 학생이 Pipeline을 10+5+2=17 cycle로 계산했습니다. 두 잘못된 항을 교정하세요.

**힌트:** stage 수 자체가 아니라 stage-1, jump 수가 아니라 flush 수를 더합니다.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** 5-stage fill/drain은 5가 아니라 4이고, jump 두 번은 각각 2 flush이므로 penalty가 2가 아니라 4입니다. 따라서 10+4+4=18 cycle입니다.

**채점 기준**
  - 5가 아니라 4
  - 2가 아니라 4
  - 18 cycle

</details>

## 12. 근거 자료

- `[문제 출처] current:Probeklausur.pdf` — 시험 p14–15 · 공식 해설 p39–40
- `[공식 해설] current:Probeklausur Musterlösung und Hinweise.pdf` — 시험 p14–15 · 공식 해설 p39–40
- `[정확한 원문 group] 7b` — 시험 p.15 · 공식 해설 p.40
- `[소문항 범위] Probeklausur.pdf 시험 p15 7b의 line20–26 실행시간 질문과 p14 source listing, Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p40의 10/40/18 Takte 표.`
- `[개념 근거 · 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-p15.png` — Probeklausur.pdf · PDF p.15
- `solution-p40.png` — Probeklausur Musterlösung und Hinweise.pdf · PDF p.40

정확한 강의 슬라이드 한 페이지를 확정하지 못한 개념 자료는 `file-level`로 표시했습니다. 페이지 번호를 추측해서 만들지 않았습니다.
