왜 이 소문제를 따로 배우는가
Wahr/Falsch 문제는 익숙한 단어 하나가 아니라 문장 전체의 논리 강도를 평가합니다. `immer`, `nur`, `schneller` 같은 표현을 먼저 잡고 반례나 architecture 정의로 검증하면 이유 없는 감점과 과도한 일반화를 줄일 수 있습니다.
이 페이지는 Aufgabe 1의 공통 템플릿이 아니라 1h Wahr/Falsch 5문장에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 1 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- 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를 검토합니다.
이 소문제 전용 규칙과 종이 작업
절대 표현 반례 규칙
`immer`, `nie`, `nur`, ‘항상 더 빠르다’가 있으면 반례 하나만으로 거짓이 될 수 있으므로 문장 범위를 먼저 확인합니다.
종이에: 절대 표현에 밑줄을 긋고 옆에 `반례?`를 적습니다.
표현 계층 분리 규칙
C syntax, Assembly pseudo 표기, ISA base encoding, memory byte order는 서로 다른 계층이므로 한 계층의 특성을 다른 계층에 일반화하면 안 됩니다.
종이에: 각 Aussage 옆에 `C / pseudo / ISA / memory layout` 중 검증 계층을 표시합니다.
판정+근거 동시 작성
참·거짓 글자만 쓰지 말고 base instruction, bit 폭, byte 배치 같은 검증 가능한 근거를 붙여야 흔들리는 판단을 잡을 수 있습니다.
종이에: 각 번호를 `Ja/Nein — 근거 한 줄` 형식으로 씁니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
다음 새 문장을 판정하세요. 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를 다룹니다.
- A를 base instruction으로 펼칩니다.
pseudo 여부는 별도 opcode 주장에 대한 직접 반례가 됩니다.
종이 산출물: `mv t0,t1 = addi t0,t1,0 → A: Nein`
- B에서 ISA instruction width와 data 값을 분리합니다.
RV32I base instruction encoding 폭을 묻는 정확한 문장입니다.
종이 산출물: `B: Ja — base encoding 32 bit`
- 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 중 정확히 하나의 근거가 붙었는지 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
다섯 문장의 참/거짓을 이유와 함께 판정하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
다섯 문장의 절대 표현을 표시합니다.
- 왜 하는가
- 문장 전체가 참이어야 하므로 과도한 범위나 보편적 우위를 주장하는 단어가 첫 검증 지점입니다.
- 종이 산출물
- `immer/nie/nur/schneller`류 표현에 밑줄과 `반례 검사` 표시를 합니다.
- 완료 조건
- 각 문장에서 판정의 범위를 바꾸는 단어가 표시되어 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 예외 하나가 나오면 문장 전체가 거짓이 되는 단어를 찾으세요.
이 단계의 대표 오류: 익숙한 명사만 보고 문장의 ‘항상’ 조건을 무시하는 것입니다.
`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도 본질적으로 달라야 한다고 생각하는 것입니다.
`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 기능으로 취급하는 것입니다.
instruction encoding width와 data/register width를 분리합니다.
- 왜 하는가
- RV32의 32는 register address width를 나타내지만 문제 문장의 instruction 폭 주장과 섞으면 잘못된 일반화가 됩니다.
- 종이 산출물
- `RV32: XLEN=32`, `base instruction encoding=32 bit`를 별도 줄에 씁니다.
- 완료 조건
- 문장이 instruction, register, memory data 중 어느 폭을 말하는지 표시했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: ‘32-bit’ 뒤에 instruction인지 register value인지 명사를 붙여 보세요.
이 단계의 대표 오류: RV32라는 이름만으로 모든 data object와 모든 확장 instruction이 항상 같은 폭이라고 말하는 것입니다.
Big/Little endian을 multi-byte 값의 byte order로 확인합니다.
- 왜 하는가
- Endianness 선택 자체는 보편적인 속도 등급이나 주소 표현 효율이 아니라 representation convention입니다.
- 종이 산출물
- 예시 값 `0x11223344`의 낮은 주소 첫 byte를 BE=`11`, LE=`44`로 적습니다.
- 완료 조건
- byte 배치 차이를 보이고 한 방식이 항상 더 빠르다는 결론을 거부할 수 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 같은 네 byte가 순서만 달라지는지 확인하세요.
이 단계의 대표 오류: Little endian이 byte 수를 줄이거나 주소 계산을 항상 더 빠르게 만든다고 주장하는 것입니다.
공식 답을 열기 전 마지막 회상
`nop`이 architectural state를 바꾸지 않는 이유를 x0 특성과 함께 말해 보세요.
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
1 Nein, 2 Ja, 3 Nein, 4 Nein, 5 Nein.
왜 이 답이 되는가
문장 전체를 판정합니다. `for`와 `while`은 같은 branch/label 구조로 번역될 수 있고, `nop`은 `addi x0,x0,0`의 pseudo 표기입니다. RV32 instruction은 보통 32-bit이며 endian 선택 자체가 보편적 성능 우위를 만들지 않습니다.
대표 함정
Endian은 주소 표현 효율이나 일반적 성능 등급이 아니라 multi-byte 값의 byte 배치 순서입니다.
명령어와 식을 줄 단위로 읽기
본문 속 code를 한 줄씩 분리했습니다. 각 줄에서 source, operation, destination을 표시하세요.
for
while
nop
addi x0,x0,0새 문제로 전이하기
세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.
1. 개념 재구성
`nop`이 architectural state를 바꾸지 않는 이유를 pseudo 확장과 x0의 두 성질로 복원하고, pseudo instruction이 ISA에 별도 opcode를 요구하는지 결론내리세요.
읽을 때와 쓸 때 x0이 어떻게 동작하는지 각각 쓰세요.
제출 후 모델 답 보기
`nop`은 `addi x0,x0,0`으로 확장됩니다. x0을 읽으면 0이고 x0에 쓴 결과는 버려지므로 state가 바뀌지 않습니다. 따라서 `nop` pseudo 표기에 별도 opcode는 필요하지 않습니다.
2. 변형 문제
세 문장을 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이 어디인지 보세요.
제출 후 모델 답 보기
① Ja: branch/label control flow로 번역 가능합니다. ② Nein: 계산 결과를 x0에 써서 register state가 바뀌지 않습니다. ③ Ja: Big endian은 most significant byte를 낮은 주소에 두는 byte order입니다.
3. 오류 진단
학생이 ‘Little endian은 숫자를 더 짧은 주소로 표현하므로 항상 Big endian보다 빠르고, 한 byte의 bit 순서도 반대로 저장한다’고 썼습니다. 첫 오류와 올바른 정의를 제시하세요.
성능 우위 주장과 representation convention을 구분하세요.
제출 후 모델 답 보기
첫 오류는 byte order 선택에 보편적 성능 우위를 부여한 것입니다. Endianness는 multi-byte 값의 byte 배치 순서이며 byte 수를 줄이지 않습니다. 또한 일반적으로 한 byte 내부 bit 순서를 뒤집는 개념도 아닙니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p3–5 · 공식 해설 p3–6 · SoSe26 Probeklausur 시험 p5 Aufgabe 1h의 다섯 Wahr/Falsch Aussage 및 공식 해설 p6의 판정·근거 범위.

