UNIT-SPECIFIC ACTIVE LESSON · 1h

Wahr/Falsch 5문장

다섯 문장의 참/거짓을 이유와 함께 판정하세요.

학습 목표: RISC-V 관련 다섯 Aussage의 절대 표현을 검사하고 control flow, pseudo instruction, instruction width, endianness 근거로 참·거짓을 판정한다.
공식 근거 범위: SoSe26 Probeklausur 시험 p5 Aufgabe 1h의 다섯 Wahr/Falsch Aussage 및 공식 해설 p6의 판정·근거 범위.

왜 이 소문제를 따로 배우는가

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를 다룹니다.
  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 중 정확히 하나의 근거가 붙었는지 확인합니다.

이제 실제 시험 문제를 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를 요구하는지 결론내리세요.

제출 후 모델 답 보기

`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를 낮은 주소에 둔다.

제출 후 모델 답 보기

① Ja: branch/label control flow로 번역 가능합니다. ② Nein: 계산 결과를 x0에 써서 register state가 바뀌지 않습니다. ③ Ja: Big endian은 most significant byte를 낮은 주소에 두는 byte order입니다.

3. 오류 진단

학생이 ‘Little endian은 숫자를 더 짧은 주소로 표현하므로 항상 Big endian보다 빠르고, 한 byte의 bit 순서도 반대로 저장한다’고 썼습니다. 첫 오류와 올바른 정의를 제시하세요.

제출 후 모델 답 보기

첫 오류는 byte order 선택에 보편적 성능 우위를 부여한 것입니다. Endianness는 multi-byte 값의 byte 배치 순서이며 byte 수를 줄이지 않습니다. 또한 일반적으로 한 byte 내부 bit 순서를 뒤집는 개념도 아닙니다.

이 소문제를 끝냈다고 말할 수 있는 기준

이 소문제의 정확한 공식 페이지와 대조하기

왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.

1h 관련 공식 시험 또는 해설 페이지
exam-p05.png · 클릭해 원본 크기로 확인
1h 관련 공식 시험 또는 해설 페이지
solution-p06.png · 클릭해 원본 크기로 확인

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p3–5 · 공식 해설 p3–6 · SoSe26 Probeklausur 시험 p5 Aufgabe 1h의 다섯 Wahr/Falsch Aussage 및 공식 해설 p6의 판정·근거 범위.