왜 이 소문제를 따로 배우는가
‘마지막으로 남았다’는 것은 증명이 아니라 앞선 여덟 판단에 의존한 결과입니다. 남은 instruction의 encoding signature까지 만들어 비교하면 소거법을 독립적인 field 검증으로 마무리할 수 있습니다.
이 페이지는 Aufgabe 2의 공통 템플릿이 아니라 2-9 남는 `addi t0,a6,2`에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 2 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- unmatched
- 주어진 반대쪽 목록에 대응 항목이 없어 연결되지 않는 후보입니다.이 소문제에서: 9개 instruction 중 encoding이 없는 `addi t0,a6,2`를 식별합니다.
- elimination
- 검증된 쌍을 두 후보 집합에서 제거해 남은 가능성을 줄이는 방법입니다.이 소문제에서: 8개 확정 쌍 이후 instruction 하나와 encoding 0개가 남는지 셉니다.
- encoding signature
- opcode, rd, rs1, immediate처럼 후보를 구분하는 핵심 field 묶음입니다.이 소문제에서: 남은 addi가 주어진 어느 bit열에도 없는지 재확인합니다.
- I-type addi
- `rd←rs1+signed immediate`를 수행하는 opcode `0010011`, funct3 `000` instruction입니다.이 소문제에서: `addi t0,a6,2`의 예상 hex를 직접 만들 때 사용합니다.
이 소문제 전용 규칙과 종이 작업
개수 invariant 규칙
한 쌍을 확정할 때 양쪽에서 하나씩 줄어야 하므로 8쌍 뒤에는 9개 쪽에 1개, 8개 쪽에 0개가 남습니다.
종이에: 각 소거 뒤 `(남은 instruction 수, encoding 수)`를 적습니다.
잔여 후보 독립 검증
남은 instruction도 예상 encoding을 계산해 원래 8개 중 실제로 없는지 확인해야 앞선 오매칭을 발견할 수 있습니다.
종이에: 남은 후보의 `opcode/rd/rs1/imm` signature와 hex를 별도 상자에 씁니다.
모양 대신 field 규칙
hex가 비슷해 보여도 하나의 register나 immediate field가 다르면 다른 instruction입니다.
종이에: 가장 가까운 bit열과 최소 두 field를 나란히 비교합니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
`addi x3,x4,5`의 예상 encoding을 계산해 후보 목록에 `0x00520193`이 있어야 매칭 가능한지 검증하세요.
주어진 것
- addi opcode는 `0010011`, funct3는 `000`입니다.
- rd=x3, rs1=x4, imm=5입니다.
- I-type field 값을 5-bit/12-bit binary로 바꿉니다.
후보와 비교할 signature를 정확히 만듭니다.
종이 산출물: `imm=000000000101, rs1=00100, rd=00011`
- I-type 순서로 조립합니다.
각 값이 올바른 bit 위치에 들어가야 합니다.
종이 산출물: `000000000101 00100 000 00011 0010011`
- hex로 바꾸고 목록 존재 여부를 판정합니다.
남았다는 사실과 독립된 encoding 근거가 됩니다.
종이 산출물: `0x00520193`; 목록에 있으면 match, 없으면 unmatched`
예제 답과 독립 검산 보기
`addi x3,x4,5`의 예상 encoding은 `0x00520193`이며 이 값이 목록에 없으면 unmatched입니다.
독립 검산: hex를 다시 decode해 rd=x3, rs1=x4, imm=5가 복원되는지 확인합니다.
이 instruction의 field를 실제로 채우기
아래 표는 이 소문제만의 값입니다. 일반 format 표와 섞지 말고 각 행을 bit열에서 직접 가리켜 보세요.
| format | I-type addi |
|---|---|
| opcode | 0010011 |
| rd | t0=x5 |
| funct3 | 000 |
| rs1 | a6=x16 |
| imm | 2; 제공 encoding 중 일치 없음 |
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
모든 쌍을 지운 뒤 unmatched instruction을 찾으세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
검증된 8개 쌍을 instruction과 encoding 양쪽에서 제거합니다.
- 왜 하는가
- 일대일 제약을 유지해야 어떤 후보가 실제로 남았는지 신뢰할 수 있습니다.
- 종이 산출물
- 각 쌍에 1–8 번호를 붙이고 양쪽 항목에 같은 취소선을 긋습니다.
- 완료 조건
- 같은 번호가 정확히 instruction 하나와 encoding 하나에만 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 한쪽만 지운 쌍이 없는지 번호를 대조하세요.
이 단계의 대표 오류: 확정 근거가 약한 쌍까지 먼저 지우거나 같은 encoding을 두 번 제거하는 것입니다.
남은 instruction과 encoding의 수를 셉니다.
- 왜 하는가
- 9 대 8 매칭의 개수 invariant가 유지되는지 확인하면 누락과 중복을 찾을 수 있습니다.
- 종이 산출물
- `after 8 pairs: instructions=1, encodings=0`을 씁니다.
- 완료 조건
- 남는 instruction이 하나이고 encoding은 하나도 없으며 후보 이름이 표시되어 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 처음 양쪽 개수 차이는 1이며 같은 수만큼 제거해도 차이는 유지됩니다.
이 단계의 대표 오류: encoding도 하나 남았는데 unmatched라고 선언하는 것입니다.
남은 `addi t0,a6,2`의 예상 field가 주어진 bit열에 없는지 확인합니다.
- 왜 하는가
- 소거 결과를 직접 encoding signature로 독립 검증해야 앞 pairing 오류를 숨기지 않습니다.
- 종이 산출물
- `op=0010011, rd=x5, rs1=x16, imm=2 → 0x00280293; 목록에 없음`을 적습니다.
- 완료 조건
- 최소 opcode, rd, rs1, immediate와 예상 hex가 모두 비교되었습니다.
막혔을 때 단계 힌트·대표 오류
힌트: I-type에서 imm은 bits[31:20], rs1은 bits[19:15], rd는 bits[11:7]입니다.
이 단계의 대표 오류: 비슷한 `0x...293`만 보고 register/immediate field를 생략하는 것입니다.
공식 답을 열기 전 마지막 회상
`addi t0,a6,2`를 직접 encoding하면 어떤 hex가 되는지 계산해 보세요.
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
`addi t0,a6,2`는 대응 encoding이 없어 취소선 대상입니다.
왜 이 답이 되는가
일대일 matching은 마지막에 남는 후보가 검산 장치가 됩니다. 단, 앞 pairing이 맞다는 전제에서만 유효합니다.
대표 함정
처음부터 ‘모양이 비슷한 것’을 남기지 말고 각 field를 검산하세요.
명령어와 식을 줄 단위로 읽기
본문 속 code를 한 줄씩 분리했습니다. 각 줄에서 source, operation, destination을 표시하세요.
addi t0,a6,2새 문제로 전이하기
세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.
1. 개념 재구성
9대8 matching에서 마지막 unmatched를 신뢰하기 위한 두 검사를 개수 invariant와 encoding signature라는 말을 사용해 설명하세요.
남은 개수와 남은 후보의 실제 bit field는 서로 다른 검증입니다.
제출 후 모델 답 보기
첫째, 개수 invariant로 8쌍 제거 뒤 instruction 1개와 encoding 0개가 남는지 확인합니다. 둘째, 남은 instruction의 encoding signature인 opcode, rd, rs1, immediate를 계산해 원래 encoding 목록에 실제로 없는지 확인합니다.
2. 변형 문제
`addi t1,a0,-1`의 expected hex를 계산하세요. t1=x6, a0=x10이며 이 값이 후보 목록에 없을 때 어떤 판정을 하는지도 쓰세요.
-1의 12-bit immediate는 `0xFFF`입니다.
제출 후 모델 답 보기
`imm=0xFFF`, `rs1=x10`, `rd=x6`, opcode=`0x13`을 조립하면 `0xFFF50313`입니다. 이 exact encoding이 목록에 없고 다른 쌍이 모두 검증되었다면 해당 instruction은 unmatched입니다.
3. 오류 진단
학생이 ‘`addi t0,a6,2`가 마지막에 남았으니 field 확인은 필요 없다’고 했지만 아직 encoding 하나도 남아 있습니다. 첫 절차 오류와 필요한 수정 검사를 쓰세요.
8쌍을 정말 양쪽에서 확정·제거했는지부터 확인하세요.
제출 후 모델 답 보기
첫 오류는 개수 invariant가 깨진 상태에서 unmatched를 선언한 것입니다. encoding 하나가 남았다면 앞 쌍의 양쪽 제거와 field 근거를 재검사해야 합니다. 그 뒤 `addi t0,a6,2`의 예상 `0x00280293`이 어떤 encoding에도 없는지 확인해야 합니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7 · SoSe26 Probeklausur 시험 p6 Aufgabe 2의 9대8 매칭과 공식 해설 p7의 unmatched `addi t0,a6,2` 결론.

