---
schema_version: 1
exam_id: "sose26-probeklausur"
aufgabe: 1
unit_id: "1h"
source_group_id: "1h"
official_exam: true
official_solution: true
language: "ko"
---

# 1h — Wahr/Falsch 5문장

> **학습 목표:** RISC-V 관련 다섯 Aussage의 절대 표현을 검사하고 control flow, pseudo instruction, instruction width, endianness 근거로 참·거짓을 판정한다.
>
> **왜 따로 배우는가:** Wahr/Falsch 문제는 익숙한 단어 하나가 아니라 문장 전체의 논리 강도를 평가합니다. `immer`, `nur`, `schneller` 같은 표현을 먼저 잡고 반례나 architecture 정의로 검증하면 이유 없는 감점과 과도한 일반화를 줄일 수 있습니다.
>
> **범위:** Aufgabe 1 · 15점 Aufgabe의 최소 학습 단위 · 시험 p3–5 · 공식 해설 p3–6

## 1. 문제 원문 (Deutsch)

이 unit은 공식 Teilaufgabe 또는 표의 한 행·한 access를 학습 가능한 최소 단위로 다시 나눈 것입니다. 아래 전사는 source group `1h`의 공식 독일어 문제 원문이며, 페이지 이미지를 바로 뒤에 함께 두어 코드·표·도식을 대조할 수 있게 했습니다.

~~~text
1h) Wahr/Falsch-Aussagen

Entscheiden Sie bei jeder Aussage, ob sie zutrifft oder nicht, und markieren Sie entsprechend „Ja“ oder „Nein“.

| Aussage | Ja | Nein |
|---|:---:|:---:|
| Die while- und for-Schleifen unterscheiden sich in der Assembler-Darstellung. | | |
| Der Befehl nop und der Befehl addi x0, x0, 0 sind derselbe Befehl. | | |
| Im Gegensatz zu Daten, die im Speicher gespeichert werden, werden Instruktionen nicht mit 32 Bit, sondern mit 64 Bit gespeichert, um ein Überlaufen bei der Addition von zwei Immediate-Werten zu verhindern. | | |
| Das Speichern von Daten im Big-Endian-Format bringt mehr Leistung im Vergleich zu Little-Endian. | | |
| Architekturen, die auf Little-Endian basieren, erreichen meistens eine bessere Leistung im Vergleich zu Big-Endian-Architekturen aufgrund der effizienteren Adressdarstellung. | | |
~~~

![공식 시험 원문 — exam-p05.png](../../assets/exam-p05.png)

*공식 시험 원문: `exam-p05.png` · Probeklausur.pdf · PDF p.5*

### 이 unit에서 풀 항목

다섯 문장의 참/거짓을 이유와 함께 판정하세요.

## 2. 쉬운 한국어 해석

1h) 참/거짓 문장(Wahr/Falsch-Aussagen)

각 문장이 맞는지 아닌지 판단하고 그에 따라 ‘Ja’ 또는 ‘Nein’을 표시하시오.

| 문장 | Ja | Nein |
|---|:---:|:---:|
| while loop와 for loop는 어셈블리 표현에서 서로 다르다. | | |
| nop 명령과 addi x0, x0, 0 명령은 같은 명령이다. | | |
| 메모리에 저장되는 데이터와 달리, 두 Immediate 값의 덧셈에서 overflow가 발생하는 것을 막기 위해 명령어는 32 bit가 아니라 64 bit로 저장된다. | | |
| 데이터를 Big-Endian 형식으로 저장하면 Little-Endian과 비교해 더 높은 성능을 얻는다. | | |
| Little-Endian 기반 아키텍처는 더 효율적인 주소 표현 덕분에 Big-Endian 아키텍처보다 대체로 더 높은 성능을 낸다. | | |

### 이 unit에 해당하는 최소 작업

다섯 문장의 참/거짓을 이유와 함께 판정하세요.

이 문제에서 최종 결과만 맞히는 것보다 중요한 것은 `1h`에 필요한 중간 판단을 답안지에 남기는 것입니다.

## 3. 무엇을 묻는 문제인가

### 공식 문제의 요구사항

- 다섯 문장 각각의 참·거짓을 판단하고 Ja 또는 Nein으로 표시한다.

### 조건과 제약

- 각 문장마다 Ja와 Nein 중 하나를 표시한다.
- instruction width, pseudoinstruction, loop translation, endianness의 성능 관계를 서로 구분해 판단한다.

### 원문 오탈자·도식 관련 주의

- PDF 조판의 줄끝 하이픈으로 나뉜 Instruktio-nen과 Ver-gleich은 각각 Instruktionen과 Vergleich으로 연결해 기록했다.
- 첫 문장의 ‘unterscheiden sich in der Assembler-Darstellung’는 컴파일러 최적화나 구체적인 코드 형태를 명시하지 않아 일반적으로 다소 넓은 표현이다.
- 마지막 두 문장은 endianness와 보편적 성능 우위를 연결하지만, 구체적인 workload나 구현 조건을 제시하지 않는다.

### 도식 시각 확인 상태

- **도식 의존 여부:** 이 최소 unit의 핵심 판정은 텍스트·수식·코드로 재현할 수 있습니다.
- **공식 페이지 상태:** exam-p05.png, solution-p06.png가 원문 대조용으로 렌더되어 연결되어 있습니다.

### 이 unit의 학습 목표

- **관찰 가능한 목표:** RISC-V 관련 다섯 Aussage의 절대 표현을 검사하고 control flow, pseudo instruction, instruction width, endianness 근거로 참·거짓을 판정한다.
- **출제 의도:** Wahr/Falsch 문제는 익숙한 단어 하나가 아니라 문장 전체의 논리 강도를 평가합니다. `immer`, `nur`, `schneller` 같은 표현을 먼저 잡고 반례나 architecture 정의로 검증하면 이유 없는 감점과 과도한 일반화를 줄일 수 있습니다.
- **공식 근거 범위:** SoSe26 Probeklausur 시험 p5 Aufgabe 1h의 다섯 Wahr/Falsch Aussage 및 공식 해설 p6의 판정·근거 범위.
- **Aufgabe 공통 선수지식:** 용어를 외우기 전에 ‘무엇을 입력받아 무엇을 출력하는가’, ‘CPU 내부가 겹쳐 일하는가’, ‘memory에서 다음 접근이 얼마나 가까운가’를 묻는 습관을 만듭니다.

## 4. 선수 개념과 핵심 용어

### pseudo instruction

- **뜻:** Assembler가 하나 이상의 실제 base instruction으로 바꾸는 편의 표기입니다.
- **이 문제에서:** `nop`을 독립 opcode로 오해하지 않고 `addi x0,x0,0`으로 펼칩니다.

### x0

- **뜻:** RISC-V에서 읽으면 항상 0이고 write 결과가 버려지는 register입니다.
- **이 문제에서:** `addi x0,x0,0`이 architectural state를 바꾸지 않는 이유를 설명합니다.

### control flow

- **뜻:** branch와 jump, label로 실행 순서를 선택하거나 반복하는 구조입니다.
- **이 문제에서:** C의 `for`와 `while`이 machine level에서 유사한 구조로 번역될 수 있는지 판정합니다.

### RV32 instruction width

- **뜻:** 기본 RV32I instruction의 encoding 폭은 32 bit라는 성질입니다.
- **이 문제에서:** register/data width와 instruction 하나의 bit 폭을 분리합니다.

### Endianness

- **뜻:** multi-byte 값의 byte를 낮은 주소부터 어떤 순서로 배치하는지 정하는 규칙입니다.
- **이 문제에서:** Big/Little endian을 보편적 성능 우위나 주소 표현 효율과 혼동한 Aussage를 검토합니다.

### 이 문제에 적용할 풀이 규칙

### 규칙 1. 절대 표현 반례 규칙

`immer`, `nie`, `nur`, ‘항상 더 빠르다’가 있으면 반례 하나만으로 거짓이 될 수 있으므로 문장 범위를 먼저 확인합니다.

- **시험지에 남길 것:** 절대 표현에 밑줄을 긋고 옆에 `반례?`를 적습니다.

### 규칙 2. 표현 계층 분리 규칙

C syntax, Assembly pseudo 표기, ISA base encoding, memory byte order는 서로 다른 계층이므로 한 계층의 특성을 다른 계층에 일반화하면 안 됩니다.

- **시험지에 남길 것:** 각 Aussage 옆에 `C / pseudo / ISA / memory layout` 중 검증 계층을 표시합니다.

### 규칙 3. 판정+근거 동시 작성

참·거짓 글자만 쓰지 말고 base instruction, bit 폭, byte 배치 같은 검증 가능한 근거를 붙여야 흔들리는 판단을 잡을 수 있습니다.

- **시험지에 남길 것:** 각 번호를 `Ja/Nein — 근거 한 줄` 형식으로 씁니다.

### 공식 문제 전에 푸는 작은 유사 예제

**문제:** 다음 새 문장을 판정하세요. A: `mv t0,t1`은 반드시 별도 opcode를 가진다. B: RV32I의 `addi` base instruction은 32-bit encoding이다. C: Little endian은 한 byte 값의 bit 순서를 뒤집는다.

**주어진 것**

- `mv`는 pseudo instruction입니다.
- Endianness는 multi-byte 값의 byte order를 다룹니다.

### 예제 단계 1. A를 base instruction으로 펼칩니다.

- **왜:** pseudo 여부는 별도 opcode 주장에 대한 직접 반례가 됩니다.
- **종이에:** `mv t0,t1 = addi t0,t1,0 → A: Nein`

### 예제 단계 2. B에서 ISA instruction width와 data 값을 분리합니다.

- **왜:** RV32I base instruction encoding 폭을 묻는 정확한 문장입니다.
- **종이에:** `B: Ja — base encoding 32 bit`

### 예제 단계 3. C에서 byte order와 bit order를 구분합니다.

- **왜:** 한 byte 내부 bit를 뒤집는 것은 endianness의 정의가 아닙니다.
- **종이에:** `C: Nein — multi-byte byte order`

**예제 정답:** A=Nein, B=Ja, C=Nein입니다.

**독립 검산:** 각 판정에 pseudo 확장, 32-bit encoding, multi-byte byte order 중 정확히 하나의 근거가 붙었는지 확인합니다.

## 5. 공식 정답 요약

**공식 결론:** 1 Nein — for와 while 모두 label·조건 branch·back jump로 같은 형태가 될 수 있습니다. 2 Ja — `nop`은 `addi x0,x0,0`의 pseudoinstruction이고 x0 write는 버려집니다. 3 Nein — 기본 RV32I instruction은 32 bit이며 64 bit 저장이나 immediate overflow 방지가 이유가 아닙니다. 4 Nein — Big-Endian 자체가 일반적 성능 우위를 주지 않습니다. 5 Nein — Little-Endian도 주소 표현 때문에 일반적으로 더 빠른 것이 아니며 두 방식은 multi-byte 값의 byte order 차이입니다.

### 시험지 문장별 정답 해설

아래는 시험지의 항목 순서를 그대로 유지합니다. 각 항목에서 원문 → 한국어 번역 → 정답 → 판단 근거 → 실제로 쓸 답을 바로 이어서 읽으세요.

### 문장 1 · 정답: Nein

- **시험지 원문:** Die while- und for-Schleifen unterscheiden sich in der Assembler-Darstellung.
- **한국어 번역:** while loop와 for loop는 어셈블리 표현에서 서로 다르다.
- **왜 이 답인가:** for와 while은 모두 label, condition branch, loop body, back jump의 같은 control-flow 형태로 번역될 수 있습니다. source syntax가 다르다고 assembly 구조가 반드시 달라지는 것은 아니므로 거짓입니다.
- **답안지에 쓸 문장:** 1. Nein — beide können als Bedingung, Sprung und Rücksprung dargestellt werden.

### 문장 2 · 정답: Ja

- **시험지 원문:** Der Befehl nop und der Befehl addi x0, x0, 0 sind derselbe Befehl.
- **한국어 번역:** nop 명령과 addi x0, x0, 0 명령은 같은 명령이다.
- **왜 이 답인가:** nop은 실제 별도 base encoding이 아니라 addi x0,x0,0의 pseudoinstruction입니다. 계산 결과를 x0에 쓰면 버려져 architectural state가 변하지 않으므로 no operation이 됩니다.
- **답안지에 쓸 문장:** 2. Ja — nop ist die Pseudoinstruktion addi x0, x0, 0.

### 문장 3 · 정답: Nein

- **시험지 원문:** Im Gegensatz zu Daten, die im Speicher gespeichert werden, werden Instruktionen nicht mit 32 Bit, sondern mit 64 Bit gespeichert, um ein Überlaufen bei der Addition von zwei Immediate-Werten zu verhindern.
- **한국어 번역:** 데이터와 달리 명령어는 두 immediate 값의 덧셈 overflow를 막기 위해 32 bit가 아니라 64 bit로 저장된다.
- **왜 이 답인가:** 기본 RV32I instruction encoding은 32 bit이며, instruction을 64 bit로 저장해 immediate overflow를 막는다는 규칙은 없습니다. instruction width, XLEN, immediate field의 범위는 서로 다른 개념입니다.
- **답안지에 쓸 문장:** 3. Nein — RV32I-Basisinstruktionen sind 32 Bit breit; 64 Bit dienen nicht zur Vermeidung eines Immediate-Überlaufs.

### 문장 4 · 정답: Nein

- **시험지 원문:** Das Speichern von Daten im Big-Endian-Format bringt mehr Leistung im Vergleich zu Little-Endian.
- **한국어 번역:** Big-Endian 형식으로 데이터를 저장하면 Little-Endian보다 더 높은 성능을 얻는다.
- **왜 이 답인가:** Endianness는 multi-byte 값의 byte order를 정하는 방식입니다. Big-Endian이라는 선택 자체가 보편적으로 더 높은 performance를 보장하지 않으므로 거짓입니다.
- **답안지에 쓸 문장:** 4. Nein — Endianness legt die Byte-Reihenfolge fest und garantiert keinen allgemeinen Leistungsvorteil.

### 문장 5 · 정답: Nein

- **시험지 원문:** Architekturen, die auf Little-Endian basieren, erreichen meistens eine bessere Leistung im Vergleich zu Big-Endian-Architekturen aufgrund der effizienteren Adressdarstellung.
- **한국어 번역:** Little-Endian 기반 아키텍처는 더 효율적인 주소 표현 덕분에 Big-Endian보다 대체로 더 높은 성능을 낸다.
- **왜 이 답인가:** Little-Endian도 단지 낮은 주소에 least significant byte를 두는 byte order입니다. 주소 자체를 더 효율적으로 표현하기 때문에 일반적으로 빨라진다는 인과관계는 없으므로 거짓입니다.
- **답안지에 쓸 문장:** 5. Nein — Little-Endian ist eine Byte-Reihenfolge und keine allgemein effizientere Adressdarstellung.

### 현재 소문제의 요구·판단·답을 한 흐름으로 연결

### `1h`에서 정확히 답할 대상

- **시험지가 요구하는 답:** 다섯 문장의 참/거짓을 이유와 함께 판정하세요.
- **이 소문제의 공식 답:** 1 Nein — for와 while 모두 label·조건 branch·back jump로 같은 형태가 될 수 있습니다. 2 Ja — `nop`은 `addi x0,x0,0`의 pseudoinstruction이고 x0 write는 버려집니다. 3 Nein — 기본 RV32I instruction은 32 bit이며 64 bit 저장이나 immediate overflow 방지가 이유가 아닙니다. 4 Nein — Big-Endian 자체가 일반적 성능 우위를 주지 않습니다. 5 Nein — Little-Endian도 주소 표현 때문에 일반적으로 더 빠른 것이 아니며 두 방식은 multi-byte 값의 byte order 차이입니다.

### 판단 1. 다섯 문장의 절대 표현을 표시합니다.

- **왜:** 문장 전체가 참이어야 하므로 과도한 범위나 보편적 우위를 주장하는 단어가 첫 검증 지점입니다.
- **이 판단에서 답안지에 남길 것:** `immer/nie/nur/schneller`류 표현에 밑줄과 `반례 검사` 표시를 합니다.

### 판단 2. `for`와 `while`을 machine-level branch/label 구조로 비교합니다.

- **왜:** 서로 다른 C syntax도 initialization, condition, body, update를 배치하면 같은 종류의 control-flow graph로 번역될 수 있습니다.
- **이 판단에서 답안지에 남길 것:** 두 loop를 `condition → body → update → back branch` 골격으로 그립니다.

### 판단 3. `nop`을 실제 base instruction으로 펼칩니다.

- **왜:** pseudo 표기를 풀면 별도 opcode 여부와 architectural state 변화 여부를 직접 검증할 수 있습니다.
- **이 판단에서 답안지에 남길 것:** `nop = addi x0,x0,0; x0 write discarded`를 적습니다.

### 판단 4. instruction encoding width와 data/register width를 분리합니다.

- **왜:** RV32의 32는 XLEN=32, 즉 integer register의 폭을 뜻합니다. Register index는 5 bit이고 기본 RV32I instruction encoding이 32 bit인 것은 각각 별개의 사실이므로 문제 문장의 64-bit 주장은 틀립니다.
- **이 판단에서 답안지에 남길 것:** `RV32: XLEN=32`, `base instruction encoding=32 bit`를 별도 줄에 씁니다.

### 판단 5. Big/Little endian을 multi-byte 값의 byte order로 확인합니다.

- **왜:** Endianness 선택 자체는 보편적인 속도 등급이나 주소 표현 효율이 아니라 representation convention입니다.
- **이 판단에서 답안지에 남길 것:** 예시 값 `0x11223344`의 낮은 주소 첫 byte를 BE=`11`, LE=`44`로 적습니다.

### 위 판단이 최종 답으로 이어지는 이유

문장 전체를 판정합니다. `for`와 `while`은 같은 branch/label 구조로 번역될 수 있고, `nop`은 `addi x0,x0,0`의 pseudo 표기입니다. RV32의 32는 XLEN, 즉 integer-register 폭이며 기본 RV32I instruction encoding의 32 bit 및 5-bit register index와는 별개입니다. Endian 선택 자체가 보편적 성능 우위를 만들지 않습니다.

### 답안 작성 시 주의

각 문장마다 Ja/Nein뿐 아니라 반례 또는 올바른 수정문을 한 줄 붙이세요. Endian은 일반적 성능 등급이 아닙니다.

![공식 Musterlösung/Hinweise — solution-p06.png](../../assets/solution-p06.png)

*공식 Musterlösung/Hinweise: `solution-p06.png` · Probeklausur Musterlösung und Hinweise.pdf · PDF p.6*

## 6. 풀이 전략

1. 절대 표현을 표시합니다.
2. while/for는 machine-level control flow를 비교합니다.
3. nop을 base instruction으로 펼칩니다.
4. instruction width, XLEN, register index width를 분리합니다.
5. Big/Little endian은 byte order임을 확인합니다.

## 7. 단계별 상세 풀이

### 단계 1. 다섯 문장의 절대 표현을 표시합니다.

- **이유:** 문장 전체가 참이어야 하므로 과도한 범위나 보편적 우위를 주장하는 단어가 첫 검증 지점입니다.
- **종이에 남길 것:** `immer/nie/nur/schneller`류 표현에 밑줄과 `반례 검사` 표시를 합니다.
- **완료 기준:** 각 문장에서 판정의 범위를 바꾸는 단어가 표시되어 있습니다.
- **막힐 때 힌트:** 예외 하나가 나오면 문장 전체가 거짓이 되는 단어를 찾으세요.
- **가장 흔한 첫 오류:** 익숙한 명사만 보고 문장의 ‘항상’ 조건을 무시하는 것입니다.

### 단계 2. `for`와 `while`을 machine-level branch/label 구조로 비교합니다.

- **이유:** 서로 다른 C syntax도 initialization, condition, body, update를 배치하면 같은 종류의 control-flow graph로 번역될 수 있습니다.
- **종이에 남길 것:** 두 loop를 `condition → body → update → back branch` 골격으로 그립니다.
- **완료 기준:** syntax가 다르다는 사실과 machine-level 구현 가능성을 구분해 판정할 수 있습니다.
- **막힐 때 힌트:** `for(init; cond; inc)`의 네 부분을 label과 branch로 펼쳐 보세요.
- **가장 흔한 첫 오류:** C keyword가 다르므로 Assembly instruction도 본질적으로 달라야 한다고 생각하는 것입니다.

### 단계 3. `nop`을 실제 base instruction으로 펼칩니다.

- **이유:** pseudo 표기를 풀면 별도 opcode 여부와 architectural state 변화 여부를 직접 검증할 수 있습니다.
- **종이에 남길 것:** `nop = addi x0,x0,0; x0 write discarded`를 적습니다.
- **완료 기준:** `nop`이 왜 아무 register나 memory 상태를 바꾸지 않는지 x0으로 설명했습니다.
- **막힐 때 힌트:** destination과 source가 모두 특별한 zero register입니다.
- **가장 흔한 첫 오류:** `nop`을 RISC-V의 별도 hardware 기능으로 취급하는 것입니다.

### 단계 4. instruction encoding width와 data/register width를 분리합니다.

- **이유:** RV32의 32는 XLEN=32, 즉 integer register의 폭을 뜻합니다. Register index는 5 bit이고 기본 RV32I instruction encoding이 32 bit인 것은 각각 별개의 사실이므로 문제 문장의 64-bit 주장은 틀립니다.
- **종이에 남길 것:** `RV32: XLEN=32`, `base instruction encoding=32 bit`를 별도 줄에 씁니다.
- **완료 기준:** 문장이 instruction, register, memory data 중 어느 폭을 말하는지 표시했습니다.
- **막힐 때 힌트:** ‘32-bit’ 뒤에 instruction인지 register value인지 명사를 붙여 보세요.
- **가장 흔한 첫 오류:** RV32라는 이름만으로 모든 data object와 모든 확장 instruction이 항상 같은 폭이라고 말하는 것입니다.

### 단계 5. Big/Little endian을 multi-byte 값의 byte order로 확인합니다.

- **이유:** Endianness 선택 자체는 보편적인 속도 등급이나 주소 표현 효율이 아니라 representation convention입니다.
- **종이에 남길 것:** 예시 값 `0x11223344`의 낮은 주소 첫 byte를 BE=`11`, LE=`44`로 적습니다.
- **완료 기준:** byte 배치 차이를 보이고 한 방식이 항상 더 빠르다는 결론을 거부할 수 있습니다.
- **막힐 때 힌트:** 같은 네 byte가 순서만 달라지는지 확인하세요.
- **가장 흔한 첫 오류:** Little endian이 byte 수를 줄이거나 주소 계산을 항상 더 빠르게 만든다고 주장하는 것입니다.

## 8. 문제와 공식 해설의 비교·검증

- **문제가 요구하는 것:** 다섯 문장의 참/거짓을 이유와 함께 판정하세요.
- **공식 해설이 제시하는 결론:** 1 Nein — for와 while 모두 label·조건 branch·back jump로 같은 형태가 될 수 있습니다. 2 Ja — `nop`은 `addi x0,x0,0`의 pseudoinstruction이고 x0 write는 버려집니다. 3 Nein — 기본 RV32I instruction은 32 bit이며 64 bit 저장이나 immediate overflow 방지가 이유가 아닙니다. 4 Nein — Big-Endian 자체가 일반적 성능 우위를 주지 않습니다. 5 Nein — Little-Endian도 주소 표현 때문에 일반적으로 더 빠른 것이 아니며 두 방식은 multi-byte 값의 byte order 차이입니다.
- **결론을 재현하는 핵심 논리:** 문장 전체를 판정합니다. `for`와 `while`은 같은 branch/label 구조로 번역될 수 있고, `nop`은 `addi x0,x0,0`의 pseudo 표기입니다. RV32의 32는 XLEN, 즉 integer-register 폭이며 기본 RV32I instruction encoding의 32 bit 및 5-bit register index와는 별개입니다. Endian 선택 자체가 보편적 성능 우위를 만들지 않습니다.
- **검증 방법:** 위 micro-step의 `종이에 남길 것`을 순서대로 만들고 각 `완료 기준`을 확인합니다. 최종 산출물이 공식 결론과 같은지 대조합니다.
- **전제와 주의 범위:** 각 문장마다 Ja/Nein뿐 아니라 반례 또는 올바른 수정문을 한 줄 붙이세요. Endian은 일반적 성능 등급이 아닙니다.
- **채택할 시험 답:** 이 가이드에서는 공식 Musterlösung의 결론을 시험 답으로 유지하며, 일반 ISA 또는 다른 구현과 달라질 수 있는 부분은 위 전제와 주의 범위에서 분리합니다.

## 9. 시험장에서 쓸 최종 답안

1 Nein — for와 while 모두 label·조건 branch·back jump로 같은 형태가 될 수 있습니다. 2 Ja — `nop`은 `addi x0,x0,0`의 pseudoinstruction이고 x0 write는 버려집니다. 3 Nein — 기본 RV32I instruction은 32 bit이며 64 bit 저장이나 immediate overflow 방지가 이유가 아닙니다. 4 Nein — Big-Endian 자체가 일반적 성능 우위를 주지 않습니다. 5 Nein — Little-Endian도 주소 표현 때문에 일반적으로 더 빠른 것이 아니며 두 방식은 multi-byte 값의 byte order 차이입니다.

답안지에는 결과만 쓰지 말고, 7절의 중간 산출물 가운데 판정을 증명하는 식·bit field·register 상태·cycle·cache 상태를 함께 남기세요.

## 10. 자주 하는 실수와 검산 체크리스트

### 대표 실수

- 각 문장마다 Ja/Nein뿐 아니라 반례 또는 올바른 수정문을 한 줄 붙이세요. Endian은 일반적 성능 등급이 아닙니다.
- 익숙한 명사만 보고 문장의 ‘항상’ 조건을 무시하는 것입니다.
- C keyword가 다르므로 Assembly instruction도 본질적으로 달라야 한다고 생각하는 것입니다.
- `nop`을 RISC-V의 별도 hardware 기능으로 취급하는 것입니다.
- RV32라는 이름만으로 모든 data object와 모든 확장 instruction이 항상 같은 폭이라고 말하는 것입니다.
- Little endian이 byte 수를 줄이거나 주소 계산을 항상 더 빠르게 만든다고 주장하는 것입니다.

### 빠른 self-check

- **회상 질문:** `nop`이 architectural state를 바꾸지 않는 이유를 x0 특성과 함께 말해 보세요.
- [ ] 다섯 Aussage 각각에 Ja/Nein과 검증 가능한 근거 한 줄을 붙일 수 있다.
- [ ] pseudo instruction, RV32 width, endianness를 서로 다른 abstraction level로 설명할 수 있다.

## 11. 짧은 확인 문제와 전이 연습

### 개념 재구성

**문제:** `nop`이 architectural state를 바꾸지 않는 이유를 pseudo 확장과 x0의 두 성질로 복원하고, pseudo instruction이 ISA에 별도 opcode를 요구하는지 결론내리세요.

**힌트:** 읽을 때와 쓸 때 x0이 어떻게 동작하는지 각각 쓰세요.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** `nop`은 `addi x0,x0,0`으로 확장됩니다. x0을 읽으면 0이고 x0에 쓴 결과는 버려지므로 state가 바뀌지 않습니다. 따라서 `nop` pseudo 표기에 별도 opcode는 필요하지 않습니다.

**채점 기준**
  - addi x0,x0,0|addi x0, x0, 0
  - 읽으면 0|read 0
  - write 버림|write discarded|쓴 결과
  - 별도 opcode 불필요|no separate opcode|필요하지

</details>

### 변형 문제

**문제:** 세 문장을 Ja/Nein과 이유로 판정하세요. ① `for` loop는 condition과 back branch를 가진 label 구조로 번역될 수 있다. ② `addi x0,x0,5`는 register state를 바꾼다. ③ Big endian은 multi-byte 값의 most significant byte를 낮은 주소에 둔다.

**힌트:** ②는 canonical `nop`과 encoding은 다르지만 destination이 어디인지 보세요.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** ① Ja: branch/label control flow로 번역 가능합니다. ② Nein: 계산 결과를 x0에 써서 register state가 바뀌지 않습니다. ③ Ja: Big endian은 most significant byte를 낮은 주소에 두는 byte order입니다.

**채점 기준**
  - ① ja|1 ja|① 참
  - branch|label
  - ② nein|2 nein|② 거짓
  - x0
  - ③ ja|3 ja|③ 참
  - most significant byte|msb

</details>

### 오답 진단

**문제:** 학생이 ‘Little endian은 숫자를 더 짧은 주소로 표현하므로 항상 Big endian보다 빠르고, 한 byte의 bit 순서도 반대로 저장한다’고 썼습니다. 첫 오류와 올바른 정의를 제시하세요.

**힌트:** 성능 우위 주장과 representation convention을 구분하세요.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** 첫 오류는 byte order 선택에 보편적 성능 우위를 부여한 것입니다. Endianness는 multi-byte 값의 byte 배치 순서이며 byte 수를 줄이지 않습니다. 또한 일반적으로 한 byte 내부 bit 순서를 뒤집는 개념도 아닙니다.

**채점 기준**
  - 항상 빠르지 않|no universal performance|성능 우위
  - multi-byte
  - byte order|byte 배치
  - byte 수|length
  - bit 순서|bit order

</details>

## 12. 근거 자료

- `[문제 출처] current:Probeklausur.pdf` — 시험 p3–5 · 공식 해설 p3–6
- `[공식 해설] current:Probeklausur Musterlösung und Hinweise.pdf` — 시험 p3–5 · 공식 해설 p3–6
- `[정확한 원문 group] 1h` — 시험 p.5 · 공식 해설 p.6
- `[소문항 범위] SoSe26 Probeklausur 시험 p5 Aufgabe 1h의 다섯 Wahr/Falsch Aussage 및 공식 해설 p6의 판정·근거 범위.`
- `[개념 근거 · file-level] current:Vorlesung/Rechnerorganisation - Teil 1.pdf` — toolchain, processor architecture, RISC-V
- `[개념 근거 · file-level] current:Vorlesung/Rechnerorganisation - Teil 2.pdf` — Eintakt, Mehrtakt, Pipeline와 고정 datapath timing
- `[개념 근거 · file-level] current:Vorlesung/Rechnerorganisation - Teil 3.pdf` — Speicherhierarchie와 Lokalität
- `[개념 근거 · file-level] current:Uebung/Übung C Musterlösung.pdf` — C memory layout와 row-major array
- `[개념 근거 · file-level] current:Uebung/Übung 0 Musterlösung.pdf` — Zweierkomplement와 수 표현

### 이 파일에서 직접 대조한 공식 이미지

- `exam-p05.png` — Probeklausur.pdf · PDF p.5
- `solution-p06.png` — Probeklausur Musterlösung und Hinweise.pdf · PDF p.6

정확한 강의 슬라이드 한 페이지를 확정하지 못한 개념 자료는 `file-level`로 표시했습니다. 페이지 번호를 추측해서 만들지 않았습니다.
