---
schema_version: 1
exam_id: "sose26-probeklausur"
aufgabe: 6
unit_id: "6a-1"
source_group_id: "6a"
official_exam: true
official_solution: true
language: "ko"
---

# 6a-1 — Fetch 상태

> **학습 목표:** Mehrtakt Fetch 상태의 두 병렬 효과인 IR 적재와 PC+4 갱신을 source→operation→destination 문장으로 설명할 수 있다.
>
> **왜 따로 배우는가:** 상태 이름만 반복하면 datapath 이해를 증명하지 못합니다. Fetch 이후 어떤 register가 어떤 새 값을 갖는지 말해야 다음 FSM 상태와 timing 분석도 연결됩니다.
>
> **범위:** Aufgabe 6 · 14점 Aufgabe의 최소 학습 단위 · 시험 p12–13 · 공식 해설 p37–38

## 1. 문제 원문 (Deutsch)

이 unit은 공식 Teilaufgabe 또는 표의 한 행·한 access를 학습 가능한 최소 단위로 다시 나눈 것입니다. 아래 전사는 source group `6a`의 공식 독일어 문제 원문이며, 페이지 이미지를 바로 뒤에 함께 두어 코드·표·도식을 대조할 수 있게 했습니다.

~~~text
Aufgabe 6: Mehrtaktprozessor

6a) FSM verstehen und beschreiben

Geben Sie in maximal drei Sätzen an, wofür jeder der folgenden Zustände verantwortlich ist.

Hinweise:

• Beschreiben Sie die konkrete Verantwortung bzw. Funktionalität des jeweiligen Zustandes.
• Ungenaue oder sachlich falsche Formulierungen (wie z.B. „im Fetch-Zustand wird die Instruktion gefetcht“) werden mit einem Punkt Abzug bewertet.

Fetch:

In diesem Zustand wird eine Instruktion aus dem Speicher unter der Adresse des PC-Registers geladen und im Instruction-Register abgelegt. Zudem wird der Wert des PC-Registers um 4 erhöht und im PC-Register aktualisiert, um den Übergang zur nächsten Instruktion zu ermöglichen.

MemAdr:

[leeres Antwortfeld]

JAL:

[leeres Antwortfeld]

BEQ:

[leeres Antwortfeld]
~~~

![공식 시험 원문 — exam-p12.png](../../assets/exam-p12.png)

*공식 시험 원문: `exam-p12.png` · Probeklausur.pdf · PDF p.12*

### 이 unit에서 풀 항목

Fetch가 구체적으로 하는 일을 최대 3문장으로 쓰세요.

## 2. 쉬운 한국어 해석

문제 6: 다중 사이클 프로세서(Mehrtaktprozessor)

6a) FSM 이해 및 설명

다음 각 상태가 무엇을 담당하는지 최대 세 문장으로 쓰시오.

주의사항:

• 각 상태가 맡는 구체적인 책임 또는 기능을 설명하시오.
• 'Fetch 상태에서는 명령을 fetch한다'와 같이 부정확하거나 사실과 다른 표현은 1점 감점된다.

Fetch:

이 상태에서는 PC 레지스터의 주소에 있는 명령 하나를 메모리에서 읽어 Instruction Register에 저장한다. 또한 다음 명령으로 진행할 수 있도록 PC 레지스터의 값을 4만큼 증가시키고 그 결과로 PC 레지스터를 갱신한다.

MemAdr:

[빈 답안 칸]

JAL:

[빈 답안 칸]

BEQ:

[빈 답안 칸]

### 이 unit에 해당하는 최소 작업

Fetch가 구체적으로 하는 일을 최대 3문장으로 쓰세요.

이 문제에서 최종 결과만 맞히는 것보다 중요한 것은 `6a-1`에 필요한 중간 판단을 답안지에 남기는 것입니다.

## 3. 무엇을 묻는 문제인가

### 공식 문제의 요구사항

- Fetch, MemAdr, JAL, BEQ 각 FSM 상태의 구체적인 책임과 수행 동작을 설명한다.
- 상태 이름을 되풀이하지 않고 memory/register/PC에 실제로 무엇을 읽고 계산하고 저장하는지 서술한다.

### 조건과 제약

- 설명은 최대 세 문장으로 제한된다.
- 각 상태의 구체적인 책임 또는 기능을 써야 한다.
- 부정확하거나 사실과 다른 문장은 1점 감점된다.
- 시험지에는 Fetch 설명이 이미 채워져 있고 MemAdr, JAL, BEQ의 답안 칸만 비어 있다.

### 원문 오탈자·도식 관련 주의

- 원문은 'jeder der folgenden Zustände'라고 쓰고 전체 설명에 'maximal drei Sätzen' 제한을 둔다. 상태별 세 문장인지 전체 세 문장인지 문법적으로 약간 여지가 있으나, 시험지 레이아웃은 상태마다 별도 답안 칸을 제공한다.
- Fetch는 빈 문제가 아니라 시험지에 완성된 설명이 미리 인쇄되어 있다. MemAdr, JAL, BEQ만 빈 칸이다.
- 'im Fetch-Zustand wird die Instruktion gefetcht'는 원문이 제시한 감점 대상 예시이므로 올바른 설명으로 취급하면 안 된다.

### 도식 시각 확인 상태

- **도식 의존 여부:** 이 최소 unit의 핵심 판정은 텍스트·수식·코드로 재현할 수 있습니다.
- **공식 페이지 상태:** exam-p12.png, solution-p37.png가 원문 대조용으로 렌더되어 연결되어 있습니다.

### 이 unit의 학습 목표

- **관찰 가능한 목표:** Mehrtakt Fetch 상태의 두 병렬 효과인 IR 적재와 PC+4 갱신을 source→operation→destination 문장으로 설명할 수 있다.
- **출제 의도:** 상태 이름만 반복하면 datapath 이해를 증명하지 못합니다. Fetch 이후 어떤 register가 어떤 새 값을 갖는지 말해야 다음 FSM 상태와 timing 분석도 연결됩니다.
- **공식 근거 범위:** Probeklausur.pdf 시험 p12의 Mehrtakt FSM Fetch 상태와 Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p37 Fetch.
- **Aufgabe 공통 선수지식:** State 이름을 되풀이하지 말고 그 cycle에서 ‘어디서 읽어 어디에 저장하는가’를 말합니다. 주파수는 모든 사용 cycle path 중 가장 긴 delay의 역수입니다.

## 4. 선수 개념과 핵심 용어

### PC

- **뜻:** 현재 fetch할 instruction 주소를 보관하는 program counter입니다.
- **이 문제에서:** instruction memory 주소 source와 다음 순차 주소 PC+4의 출발값을 설명할 때 사용합니다.

### Instruction Register

- **뜻:** memory에서 읽은 현재 instruction bits를 다음 cycle까지 보관하는 내부 register입니다.
- **이 문제에서:** Fetch의 memory read 결과 destination을 명시할 때 사용합니다.

### PC+4

- **뜻:** 32-bit 고정 길이 instruction에서 다음 순차 instruction의 주소입니다.
- **이 문제에서:** Fetch 중 PC가 왜 4 증가하는지 설명할 때 사용합니다.

### state boundary

- **뜻:** 한 cycle의 combinational 결과가 register에 저장되어 다음 state가 사용할 수 있게 되는 경계입니다.
- **이 문제에서:** Fetch 종료 시 IR과 PC의 값을 snapshot으로 적을 때 사용합니다.

### 이 문제에 적용할 풀이 규칙

### 규칙 1. 상태 설명은 source-operation-destination으로 쓴다

Fetch라고 이름만 쓰지 말고 PC가 memory 주소가 되고 read data가 IR로 가며 PC+4가 PC에 기록된다고 써야 동작이 관찰됩니다.

- **시험지에 남길 것:** PC→Instruction Memory→IR와 PC→+4→PC 두 화살표를 그립니다.

### 규칙 2. 두 결과를 모두 남긴다

Fetch는 instruction 적재와 순차 PC 준비를 같은 상태에서 수행하므로 하나만 쓰면 공식 답의 절반을 놓칩니다.

- **시험지에 남길 것:** Fetch 후 snapshot에 IR'=Mem[PC_old], PC'=PC_old+4 두 식을 적습니다.

### 공식 문제 전에 푸는 작은 유사 예제

**문제:** Fetch 시작 시 PC=0x0100이고 주소 0x0100의 instruction memory 값이 0x00500293이라면 Fetch 종료 상태를 쓰세요.

**주어진 것**

- instruction 길이는 4 Byte입니다.
- memory read 결과는 Instruction Register에 저장됩니다.
- 다음 순차 PC는 기존 PC+4입니다.

### 예제 단계 1. 기존 PC를 instruction memory 주소로 사용합니다.

- **왜:** 현재 실행할 instruction bits를 가져오기 위해서입니다.
- **종이에:** Mem[0x0100] = 0x00500293

### 예제 단계 2. memory read 결과를 IR에 기록합니다.

- **왜:** 다음 Decode state가 opcode와 register field를 안정적으로 읽어야 합니다.
- **종이에:** IR' = 0x00500293

### 예제 단계 3. 기존 PC에 4를 더해 PC를 갱신합니다.

- **왜:** branch/jump가 바꾸지 않는 경우의 다음 순차 instruction 주소를 준비합니다.
- **종이에:** PC' = 0x0100 + 4 = 0x0104

**예제 정답:** Fetch 종료 시 IR=0x00500293, PC=0x0104입니다.

**독립 검산:** IR 값은 주소가 아니라 instruction bits인지, PC 증가는 4 Byte인지 확인합니다.

## 5. 공식 정답 요약

**공식 결론:** Instruktion wird unter der PC-Adresse aus dem Speicher gelesen und im Instruction-Register gespeichert; gleichzeitig wird PC um 4 erhöht und aktualisiert.

### 시험지 문장별 정답 해설

아래는 시험지의 항목 순서를 그대로 유지합니다. 각 항목에서 원문 → 한국어 번역 → 정답 → 판단 근거 → 실제로 쓸 답을 바로 이어서 읽으세요.



### 현재 소문제의 요구·판단·답을 한 흐름으로 연결

### `6a-1`에서 정확히 답할 대상

- **시험지가 요구하는 답:** Fetch가 구체적으로 하는 일을 최대 3문장으로 쓰세요.
- **이 소문제의 공식 답:** Instruktion wird unter der PC-Adresse aus dem Speicher gelesen und im Instruction-Register gespeichert; gleichzeitig wird PC um 4 erhöht und aktualisiert.

### 판단 1. source register를 PC로 적습니다.

- **왜:** Fetch할 memory 위치는 현재 PC가 가리키므로 모든 나머지 동작의 기준이 됩니다.
- **이 판단에서 답안지에 남길 것:** PC_old→Instruction Memory address 화살표를 적습니다.

### 판단 2. memory read 결과의 destination을 IR로 적습니다.

- **왜:** 읽은 instruction은 다음 cycle의 Decode에서 사용되므로 내부 register에 보존되어야 합니다.
- **이 판단에서 답안지에 남길 것:** IR' = Mem[PC_old] 식과 IRWrite 의미를 적습니다.

### 판단 3. PC+4 계산과 PC write를 적습니다.

- **왜:** 고정 길이 32-bit instruction의 다음 순차 주소를 미리 준비하기 위해서입니다.
- **이 판단에서 답안지에 남길 것:** PC' = PC_old + 4와 write destination PC를 적습니다.

### 위 판단이 최종 답으로 이어지는 이유

PC가 instruction memory의 주소가 되고 읽은 instruction은 Instruction Register에 저장됩니다. 동시에 다음 순차 instruction을 위해 PC+4를 계산·갱신합니다.

### 답안 작성 시 주의

‘instruction을 fetch한다’처럼 state 이름을 반복하는 설명은 점수가 약합니다.

![공식 Musterlösung/Hinweise — solution-p37.png](../../assets/solution-p37.png)

*공식 Musterlösung/Hinweise: `solution-p37.png` · Probeklausur Musterlösung und Hinweise.pdf · PDF p.37*

## 6. 풀이 전략

1. source register를 PC로 적습니다.
2. memory read 결과의 destination을 IR로 적습니다.
3. PC+4 계산과 PC write를 적습니다.

## 7. 단계별 상세 풀이

### 단계 1. source register를 PC로 적습니다.

- **이유:** Fetch할 memory 위치는 현재 PC가 가리키므로 모든 나머지 동작의 기준이 됩니다.
- **종이에 남길 것:** PC_old→Instruction Memory address 화살표를 적습니다.
- **완료 기준:** instruction 주소와 instruction data를 구분해 말할 수 있습니다.
- **막힐 때 힌트:** CPU가 다음 instruction을 어디서 읽을지 보관하는 register를 찾으세요.
- **가장 흔한 첫 오류:** IR을 memory 주소 source라고 적습니다.

### 단계 2. memory read 결과의 destination을 IR로 적습니다.

- **이유:** 읽은 instruction은 다음 cycle의 Decode에서 사용되므로 내부 register에 보존되어야 합니다.
- **종이에 남길 것:** IR' = Mem[PC_old] 식과 IRWrite 의미를 적습니다.
- **완료 기준:** Fetch 후 IR에 주소가 아니라 instruction bits가 있음을 설명합니다.
- **막힐 때 힌트:** 다음 state가 opcode를 어디에서 읽는지 생각하세요.
- **가장 흔한 첫 오류:** memory read 결과가 곧바로 일반 Register File의 rd로 간다고 씁니다.

### 단계 3. PC+4 계산과 PC write를 적습니다.

- **이유:** 고정 길이 32-bit instruction의 다음 순차 주소를 미리 준비하기 위해서입니다.
- **종이에 남길 것:** PC' = PC_old + 4와 write destination PC를 적습니다.
- **완료 기준:** Fetch 종료의 IR과 PC 두 결과를 최대 세 문장으로 완성합니다.
- **막힐 때 힌트:** 4는 bit가 아니라 byte 주소 증가량입니다.
- **가장 흔한 첫 오류:** PC+1 또는 IR+4로 갱신한다고 씁니다.

## 8. 문제와 공식 해설의 비교·검증

- **문제가 요구하는 것:** Fetch가 구체적으로 하는 일을 최대 3문장으로 쓰세요.
- **공식 해설이 제시하는 결론:** Instruktion wird unter der PC-Adresse aus dem Speicher gelesen und im Instruction-Register gespeichert; gleichzeitig wird PC um 4 erhöht und aktualisiert.
- **결론을 재현하는 핵심 논리:** PC가 instruction memory의 주소가 되고 읽은 instruction은 Instruction Register에 저장됩니다. 동시에 다음 순차 instruction을 위해 PC+4를 계산·갱신합니다.
- **검증 방법:** 위 micro-step의 `종이에 남길 것`을 순서대로 만들고 각 `완료 기준`을 확인합니다. 최종 산출물이 공식 결론과 같은지 대조합니다.
- **전제와 주의 범위:** ‘instruction을 fetch한다’처럼 state 이름을 반복하는 설명은 점수가 약합니다.
- **채택할 시험 답:** 이 가이드에서는 공식 Musterlösung의 결론을 시험 답으로 유지하며, 일반 ISA 또는 다른 구현과 달라질 수 있는 부분은 위 전제와 주의 범위에서 분리합니다.

## 9. 시험장에서 쓸 최종 답안

Instruktion wird unter der PC-Adresse aus dem Speicher gelesen und im Instruction-Register gespeichert; gleichzeitig wird PC um 4 erhöht und aktualisiert.

시험지의 ‘최대 3문장’ 제한을 지키면서 source, 수행 연산, destination register를 구체적으로 쓰세요.

## 10. 자주 하는 실수와 검산 체크리스트

### 대표 실수

- ‘instruction을 fetch한다’처럼 state 이름을 반복하는 설명은 점수가 약합니다.
- IR을 memory 주소 source라고 적습니다.
- memory read 결과가 곧바로 일반 Register File의 rd로 간다고 씁니다.
- PC+1 또는 IR+4로 갱신한다고 씁니다.

### 빠른 self-check

- **회상 질문:** Fetch 뒤 IR과 PC에는 각각 무엇이 들어 있나요?
- [ ] 임의의 PC와 instruction word가 주어지면 Fetch 후 IR/PC snapshot을 계산할 수 있다.
- [ ] 공식 해설 p37의 Fetch 설명을 세 문장 이내로 source-operation-destination 형태로 재작성할 수 있다.

## 11. 짧은 확인 문제와 전이 연습

### 개념 재구성

**문제:** Fetch 상태를 state 이름 없이 두 개의 register-transfer 식으로 재구성하세요.

**힌트:** 하나는 memory read, 하나는 순차 주소입니다.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** IR' = Mem[PC_old], PC' = PC_old + 4.

**채점 기준**
  - IR
  - Mem|Speicher
  - PC
  - + 4

</details>

### 변형 문제

**문제:** PC=0x01FC이고 Mem[0x01FC]=0x00008067일 때 Fetch 후 IR과 PC를 쓰세요.

**힌트:** instruction 값은 그대로 IR로, 주소는 4 증가합니다.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** IR=0x00008067, PC=0x0200.

**채점 기준**
  - 0x00008067
  - 0x0200

</details>

### 오답 진단

**문제:** 학생이 'Fetch에서 PC 값을 IR에 복사하고 memory data를 PC에 쓴다'고 설명했습니다. data 방향을 고치세요.

**힌트:** PC는 주소, memory 출력은 instruction입니다.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** PC는 Instruction Memory의 주소 입력이고, 그 주소에서 읽은 instruction data가 IR에 저장됩니다. PC에는 memory data가 아니라 PC_old+4가 저장됩니다.

**채점 기준**
  - PC는 Instruction Memory의 주소
  - instruction data가 IR에 저장
  - PC_old+4

</details>

## 12. 근거 자료

- `[문제 출처] current:Probeklausur.pdf` — 시험 p12–13 · 공식 해설 p37–38
- `[공식 해설] current:Probeklausur Musterlösung und Hinweise.pdf` — 시험 p12–13 · 공식 해설 p37–38
- `[정확한 원문 group] 6a` — 시험 p.12 · 공식 해설 p.37
- `[소문항 범위] Probeklausur.pdf 시험 p12의 Mehrtakt FSM Fetch 상태와 Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p37 Fetch.`
- `[개념 근거 · file-level] current:Vorlesung/Rechnerorganisation - Teil 2.pdf` — Mehrtakt datapath, FSM, timing
- `[개념 근거 · file-level] current:Uebung/Lösung 7.pdf` — Eintakt/Mehrtakt 단계 비교
- `[개념 근거 · file-level] current:Uebung/Lösung 8.pdf` — Mehrtakt FSM과 PC update

### 이 파일에서 직접 대조한 공식 이미지

- `exam-p12.png` — Probeklausur.pdf · PDF p.12
- `solution-p37.png` — Probeklausur Musterlösung und Hinweise.pdf · PDF p.37

정확한 강의 슬라이드 한 페이지를 확정하지 못한 개념 자료는 `file-level`로 표시했습니다. 페이지 번호를 추측해서 만들지 않았습니다.
