---
schema_version: 1
exam_id: "sose26-probeklausur"
aufgabe: 2
unit_id: "2-9"
source_group_id: "2"
official_exam: true
official_solution: true
language: "ko"
---

# 2-9 — 남는 `addi t0,a6,2`

> **학습 목표:** 일대일 매칭에서 8개 확정 쌍을 양쪽에서 제거하고 남은 `addi` 후보의 예상 field를 직접 계산해 unmatched를 검증한다.
>
> **왜 따로 배우는가:** ‘마지막으로 남았다’는 것은 증명이 아니라 앞선 여덟 판단에 의존한 결과입니다. 남은 instruction의 encoding signature까지 만들어 비교하면 소거법을 독립적인 field 검증으로 마무리할 수 있습니다.
>
> **범위:** Aufgabe 2 · 8점 Aufgabe의 최소 학습 단위 · 시험 p6 · 공식 해설 p7

## 1. 문제 원문 (Deutsch)

이 unit은 공식 Teilaufgabe 또는 표의 한 행·한 access를 학습 가능한 최소 단위로 다시 나눈 것입니다. 아래 전사는 source group `2`의 공식 독일어 문제 원문이며, 페이지 이미지를 바로 뒤에 함께 두어 코드·표·도식을 대조할 수 있게 했습니다.

~~~text
Aufgabe 2: Binärcode und Assemblerzuordnung

Unten sind 9 RISC-V-Befehle und 8 binäre Repräsentationen gegeben. Verbinden Sie die passenden Paare miteinander.

Hinweise:

- Nicht alle der dargestellten Befehle und Bitsequenzen gehören zusammen. Falls Sie ein Element ohne passende Entsprechung identifizieren, streichen Sie es durch.
- nop und ret sind sogenannte Pseudoinstruktionen. Um diese dekodieren zu können, schreiben Sie diese zuerst als Basis-Instruktion auf. Diese finden Sie in der RISC-V Reference¹ im Moodle.
- In dieser Aufgabe wird die Bitdarstellung von links (Bit 31) nach rechts (Bit 0) gelesen.

|  |  |
|---|---|
| `0x00000013` | `beq s0, s1, 12` |
| `00000000100101000000011001100011` | `sw a4, 8(t0)` |
| `0x00008067` | `add t0, a6, t2` |
| `00000000111000101010010000100011` | `jal ra, 32` |
| `0x007802B3` | `nop` |
| `00000010000000000000000011101111` | `ret` |
| `0xFE6298E3` | `bne t0, t1, -16` |
| `00000000111101110001011000110011` | `sll a2, a4, a5` |
|  | `addi t0, a6, 2` |

¹ https://moodle.informatik.tu-darmstadt.de/pluginfile.php/331793/mod_resource/content/9/RISC-V%20Reference.pdf
~~~

![공식 시험 원문 — exam-p06.png](../../assets/exam-p06.png)

*공식 시험 원문: `exam-p06.png` · Probeklausur.pdf · PDF p.6*

### 이 unit에서 풀 항목

모든 쌍을 지운 뒤 unmatched instruction을 찾으세요.

## 2. 쉬운 한국어 해석

문제 2: 이진 코드와 어셈블리 명령 연결

아래에 9개의 RISC-V 명령과 8개의 이진 인코딩 표현이 주어져 있다. 서로 맞는 쌍을 연결하시오.

유의사항:

- 제시된 모든 명령과 bit sequence가 서로 대응하는 것은 아니다. 대응 항목이 없는 요소를 발견하면 취소선을 그으시오.
- nop과 ret은 이른바 pseudoinstruction이다. 이를 decode하려면 먼저 base instruction으로 써라. 해당 base instruction은 Moodle의 RISC-V Reference¹에서 찾을 수 있다.
- 이 문제의 bit 표기는 왼쪽이 Bit 31이고 오른쪽이 Bit 0이다.

| 이진 인코딩 표현 | RISC-V 명령 |
|---|---|
| `0x00000013` | `beq s0, s1, 12` |
| `00000000100101000000011001100011` | `sw a4, 8(t0)` |
| `0x00008067` | `add t0, a6, t2` |
| `00000000111000101010010000100011` | `jal ra, 32` |
| `0x007802B3` | `nop` |
| `00000010000000000000000011101111` | `ret` |
| `0xFE6298E3` | `bne t0, t1, -16` |
| `00000000111101110001011000110011` | `sll a2, a4, a5` |
|  | `addi t0, a6, 2` |

¹ https://moodle.informatik.tu-darmstadt.de/pluginfile.php/331793/mod_resource/content/9/RISC-V%20Reference.pdf

### 이 unit에 해당하는 최소 작업

모든 쌍을 지운 뒤 unmatched instruction을 찾으세요.

이 문제에서 최종 결과만 맞히는 것보다 중요한 것은 `2-9`에 필요한 중간 판단을 답안지에 남기는 것입니다.

## 3. 무엇을 묻는 문제인가

### 공식 문제의 요구사항

- 8개의 encoded machine word를 각각 대응하는 RISC-V 명령과 연결한다.
- 대응 항목이 없는 요소를 찾아 취소선으로 표시한다.
- nop과 ret을 decode하기 전에 각각 base instruction으로 확장한다.

### 조건과 제약

- 명령 후보는 9개이고 encoding 후보는 8개이다.
- 모든 항목이 대응한다고 가정하지 말고 field를 decode해 일대일로 검증한다.
- nop과 ret은 pseudoinstruction이므로 base instruction을 먼저 써야 한다.
- 32-bit 표기는 왼쪽부터 Bit 31, 오른쪽 끝이 Bit 0이다.
- hex로 적힌 항목과 32자리 binary로 적힌 항목을 모두 instruction encoding 후보로 취급한다.

### 원문 오탈자·도식 관련 주의

- 원문은 ‘8 binäre Repräsentationen’이라고 부르지만 여덟 항목 중 네 개는 0x 접두사가 붙은 hexadecimal 표기이고 네 개만 32자리 binary bit sequence로 직접 표기되어 있다.
- PDF의 두 열은 같은 행끼리 이미 대응한다는 뜻이 아니라 연결할 두 후보 목록이다. 이를 보존하기 위해 열 순서와 행 배치만 표로 옮겼다.
- 각주 URL은 PDF에서 ‘RISC-V%’와 ‘20Reference.pdf’ 사이가 줄바꿈되어 있으나 실제 URL의 percent-encoding인 ‘%20’으로 연결해 기록했다.

### 도식 시각 확인 상태

- **도식 의존 여부:** 이 최소 unit의 핵심 판정은 텍스트·수식·코드로 재현할 수 있습니다.
- **공식 페이지 상태:** exam-p06.png, solution-p07.png가 원문 대조용으로 렌더되어 연결되어 있습니다.

### 이 unit의 학습 목표

- **관찰 가능한 목표:** 일대일 매칭에서 8개 확정 쌍을 양쪽에서 제거하고 남은 `addi` 후보의 예상 field를 직접 계산해 unmatched를 검증한다.
- **출제 의도:** ‘마지막으로 남았다’는 것은 증명이 아니라 앞선 여덟 판단에 의존한 결과입니다. 남은 instruction의 encoding signature까지 만들어 비교하면 소거법을 독립적인 field 검증으로 마무리할 수 있습니다.
- **공식 근거 범위:** SoSe26 Probeklausur 시험 p6 Aufgabe 2의 9대8 매칭과 공식 해설 p7의 unmatched `addi t0,a6,2` 결론.
- **Aufgabe 공통 선수지식:** 32-bit instruction을 opcode(하위 7 bit)부터 읽고, opcode가 정한 format에 따라 rd/funct3/rs1/rs2/immediate를 분해합니다. Hex는 먼저 4-bit 묶음으로 binary로 바꿉니다.

## 4. 선수 개념과 핵심 용어

### 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를 직접 만들 때 사용합니다.

### 이 문제에 적용할 풀이 규칙

### 규칙 1. 개수 invariant 규칙

한 쌍을 확정할 때 양쪽에서 하나씩 줄어야 하므로 8쌍 뒤에는 9개 쪽에 1개, 8개 쪽에 0개가 남습니다.

- **시험지에 남길 것:** 각 소거 뒤 `(남은 instruction 수, encoding 수)`를 적습니다.

### 규칙 2. 잔여 후보 독립 검증

남은 instruction도 예상 encoding을 계산해 원래 8개 중 실제로 없는지 확인해야 앞선 오매칭을 발견할 수 있습니다.

- **시험지에 남길 것:** 남은 후보의 `opcode/rd/rs1/imm` signature와 hex를 별도 상자에 씁니다.

### 규칙 3. 모양 대신 field 규칙

hex가 비슷해 보여도 하나의 register나 immediate field가 다르면 다른 instruction입니다.

- **시험지에 남길 것:** 가장 가까운 bit열과 최소 두 field를 나란히 비교합니다.

### 공식 문제 전에 푸는 작은 유사 예제

**문제:** `addi x3,x4,5`의 예상 encoding을 계산해 후보 목록에 `0x00520193`이 있어야 매칭 가능한지 검증하세요.

**주어진 것**

- addi opcode는 `0010011`, funct3는 `000`입니다.
- rd=x3, rs1=x4, imm=5입니다.

### 예제 단계 1. I-type field 값을 5-bit/12-bit binary로 바꿉니다.

- **왜:** 후보와 비교할 signature를 정확히 만듭니다.
- **종이에:** `imm=000000000101, rs1=00100, rd=00011`

### 예제 단계 2. I-type 순서로 조립합니다.

- **왜:** 각 값이 올바른 bit 위치에 들어가야 합니다.
- **종이에:** `000000000101 00100 000 00011 0010011`

### 예제 단계 3. hex로 바꾸고 목록 존재 여부를 판정합니다.

- **왜:** 남았다는 사실과 독립된 encoding 근거가 됩니다.
- **종이에:** `0x00520193`; 목록에 있으면 match, 없으면 unmatched

**예제 정답:** `addi x3,x4,5`의 예상 encoding은 `0x00520193`이며 이 값이 목록에 없으면 unmatched입니다.

**독립 검산:** hex를 다시 decode해 rd=x3, rs1=x4, imm=5가 복원되는지 확인합니다.

## 5. 공식 정답 요약

**공식 결론:** `addi t0,a6,2`는 대응 encoding이 없어 취소선 대상입니다.

### 시험지 문장별 정답 해설

아래는 시험지의 항목 순서를 그대로 유지합니다. 각 항목에서 원문 → 한국어 번역 → 정답 → 판단 근거 → 실제로 쓸 답을 바로 이어서 읽으세요.



### 현재 소문제의 요구·판단·답을 한 흐름으로 연결

### `2-9`에서 정확히 답할 대상

- **시험지가 요구하는 답:** 모든 쌍을 지운 뒤 unmatched instruction을 찾으세요.
- **이 소문제의 공식 답:** `addi t0,a6,2`는 대응 encoding이 없어 취소선 대상입니다.

### 판단 1. 검증된 8개 쌍을 instruction과 encoding 양쪽에서 제거합니다.

- **왜:** 일대일 제약을 유지해야 어떤 후보가 실제로 남았는지 신뢰할 수 있습니다.
- **이 판단에서 답안지에 남길 것:** 각 쌍에 1–8 번호를 붙이고 양쪽 항목에 같은 취소선을 긋습니다.

### 판단 2. 남은 instruction과 encoding의 수를 셉니다.

- **왜:** 9 대 8 매칭의 개수 invariant가 유지되는지 확인하면 누락과 중복을 찾을 수 있습니다.
- **이 판단에서 답안지에 남길 것:** `after 8 pairs: instructions=1, encodings=0`을 씁니다.

### 판단 3. 남은 `addi t0,a6,2`의 예상 field가 주어진 bit열에 없는지 확인합니다.

- **왜:** 소거 결과를 직접 encoding signature로 독립 검증해야 앞 pairing 오류를 숨기지 않습니다.
- **이 판단에서 답안지에 남길 것:** `op=0010011, rd=x5, rs1=x16, imm=2 → 0x00280293; 목록에 없음`을 적습니다.

### 위 판단이 최종 답으로 이어지는 이유

일대일 matching은 마지막에 남는 후보가 검산 장치가 됩니다. 단, 앞 pairing이 맞다는 전제에서만 유효합니다.

### 답안 작성 시 주의

처음부터 ‘모양이 비슷한 것’을 남기지 말고 각 field를 검산하세요.

![공식 Musterlösung/Hinweise — solution-p07.png](../../assets/solution-p07.png)

*공식 Musterlösung/Hinweise: `solution-p07.png` · Probeklausur Musterlösung und Hinweise.pdf · PDF p.7*

## 6. 풀이 전략

1. 8개 확정 쌍을 양쪽에서 제거합니다.
2. 남은 instruction과 남은 encoding 수를 셉니다.
3. 주어진 bit열 중 rd=t0, rs1=a6, imm=2인 addi가 없는지 확인합니다.

## 7. 단계별 상세 풀이

### 단계 1. 검증된 8개 쌍을 instruction과 encoding 양쪽에서 제거합니다.

- **이유:** 일대일 제약을 유지해야 어떤 후보가 실제로 남았는지 신뢰할 수 있습니다.
- **종이에 남길 것:** 각 쌍에 1–8 번호를 붙이고 양쪽 항목에 같은 취소선을 긋습니다.
- **완료 기준:** 같은 번호가 정확히 instruction 하나와 encoding 하나에만 있습니다.
- **막힐 때 힌트:** 한쪽만 지운 쌍이 없는지 번호를 대조하세요.
- **가장 흔한 첫 오류:** 확정 근거가 약한 쌍까지 먼저 지우거나 같은 encoding을 두 번 제거하는 것입니다.

### 단계 2. 남은 instruction과 encoding의 수를 셉니다.

- **이유:** 9 대 8 매칭의 개수 invariant가 유지되는지 확인하면 누락과 중복을 찾을 수 있습니다.
- **종이에 남길 것:** `after 8 pairs: instructions=1, encodings=0`을 씁니다.
- **완료 기준:** 남는 instruction이 하나이고 encoding은 하나도 없으며 후보 이름이 표시되어 있습니다.
- **막힐 때 힌트:** 처음 양쪽 개수 차이는 1이며 같은 수만큼 제거해도 차이는 유지됩니다.
- **가장 흔한 첫 오류:** encoding도 하나 남았는데 unmatched라고 선언하는 것입니다.

### 단계 3. 남은 `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를 생략하는 것입니다.

### Instruction field 검산

bit열을 느낌으로 고르지 말고 다음 field를 실제 위치에서 확인합니다.

- **format:** I-type addi
- **opcode:** 0010011
- **rd:** t0=x5
- **funct3:** 000
- **rs1:** a6=x16
- **imm:** 2; 제공 encoding 중 일치 없음

## 8. 문제와 공식 해설의 비교·검증

- **문제가 요구하는 것:** 모든 쌍을 지운 뒤 unmatched instruction을 찾으세요.
- **공식 해설이 제시하는 결론:** `addi t0,a6,2`는 대응 encoding이 없어 취소선 대상입니다.
- **결론을 재현하는 핵심 논리:** 일대일 matching은 마지막에 남는 후보가 검산 장치가 됩니다. 단, 앞 pairing이 맞다는 전제에서만 유효합니다.
- **검증 방법:** 위 micro-step의 `종이에 남길 것`을 순서대로 만들고 각 `완료 기준`을 확인합니다. 최종 산출물이 공식 결론과 같은지 대조합니다.
- **전제와 주의 범위:** 처음부터 ‘모양이 비슷한 것’을 남기지 말고 각 field를 검산하세요.
- **채택할 시험 답:** 이 가이드에서는 공식 Musterlösung의 결론을 시험 답으로 유지하며, 일반 ISA 또는 다른 구현과 달라질 수 있는 부분은 위 전제와 주의 범위에서 분리합니다.

## 9. 시험장에서 쓸 최종 답안

`addi t0,a6,2`는 대응 encoding이 없어 취소선 대상입니다.

답안지에는 결과만 쓰지 말고, 7절의 중간 산출물 가운데 판정을 증명하는 식·bit field·register 상태·cycle·cache 상태를 함께 남기세요.

## 10. 자주 하는 실수와 검산 체크리스트

### 대표 실수

- 처음부터 ‘모양이 비슷한 것’을 남기지 말고 각 field를 검산하세요.
- 확정 근거가 약한 쌍까지 먼저 지우거나 같은 encoding을 두 번 제거하는 것입니다.
- encoding도 하나 남았는데 unmatched라고 선언하는 것입니다.
- 비슷한 `0x...293`만 보고 register/immediate field를 생략하는 것입니다.

### 빠른 self-check

- **회상 질문:** `addi t0,a6,2`를 직접 encoding하면 어떤 hex가 되는지 계산해 보세요.
- [ ] 9대8 목록에서 소거 후 남은 개수 invariant를 설명하고 검사할 수 있다.
- [ ] 남은 addi 후보의 expected encoding을 직접 계산해 unmatched 결론을 독립 검증할 수 있다.

## 11. 짧은 확인 문제와 전이 연습

### 개념 재구성

**문제:** 9대8 matching에서 마지막 unmatched를 신뢰하기 위한 두 검사를 개수 invariant와 encoding signature라는 말을 사용해 설명하세요.

**힌트:** 남은 개수와 남은 후보의 실제 bit field는 서로 다른 검증입니다.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** 첫째, 개수 invariant로 8쌍 제거 뒤 instruction 1개와 encoding 0개가 남는지 확인합니다. 둘째, 남은 instruction의 encoding signature인 opcode, rd, rs1, immediate를 계산해 원래 encoding 목록에 실제로 없는지 확인합니다.

**채점 기준**
  - 개수 invariant
  - instruction 1개
  - encoding 0개
  - encoding signature
  - opcode
  - rd
  - rs1
  - immediate
  - 없는지

</details>

### 변형 문제

**문제:** `addi t1,a0,-1`의 expected hex를 계산하세요. t1=x6, a0=x10이며 이 값이 후보 목록에 없을 때 어떤 판정을 하는지도 쓰세요.

**힌트:** -1의 12-bit immediate는 `0xFFF`입니다.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** `imm=0xFFF`, `rs1=x10`, `rd=x6`, opcode=`0x13`을 조립하면 `0xFFF50313`입니다. 이 exact encoding이 목록에 없고 다른 쌍이 모두 검증되었다면 해당 instruction은 unmatched입니다.

**채점 기준**
  - imm=0xfff
  - rs1=x10
  - rd=x6
  - 0x13
  - 0xfff50313
  - unmatched

</details>

### 오답 진단

**문제:** 학생이 ‘`addi t0,a6,2`가 마지막에 남았으니 field 확인은 필요 없다’고 했지만 아직 encoding 하나가 남아 있습니다. 첫 절차 오류와 필요한 수정 검사를 쓰세요.

**힌트:** 8쌍을 정말 양쪽에서 확정·제거했는지부터 확인하세요.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** 첫 오류는 개수 invariant가 깨진 상태에서 unmatched를 선언한 것입니다. encoding 하나가 남았다면 앞 쌍의 양쪽 제거와 field 근거를 재검사해야 합니다. 그 뒤 `addi t0,a6,2`의 예상 `0x00280293`이 어떤 encoding에도 없는지 확인해야 합니다.

**채점 기준**
  - 개수 invariant
  - encoding 하나
  - unmatched
  - 양쪽 제거
  - field
  - 0x00280293
  - 없는지

</details>

## 12. 근거 자료

- `[문제 출처] current:Probeklausur.pdf` — 시험 p6 · 공식 해설 p7
- `[공식 해설] current:Probeklausur Musterlösung und Hinweise.pdf` — 시험 p6 · 공식 해설 p7
- `[정확한 원문 group] 2` — 시험 p.6 · 공식 해설 p.7
- `[소문항 범위] SoSe26 Probeklausur 시험 p6 Aufgabe 2의 9대8 매칭과 공식 해설 p7의 unmatched `addi t0,a6,2` 결론.`
- `[개념 근거 · file-level] current:Vorlesung/Rechnerorganisation - Teil 1.pdf` — RISC-V instruction format과 machine language
- `[개념 근거 · file-level] current:Uebung/Übung 1 Musterlösung.pdf` — RISC-V format과 encoding
- `[개념 근거 · file-level] current:Uebung/Übung 2 Musterlösung/Rechnerorganisation_Übung2_Lösung.pdf` — Immediate와 assembler hand-trace
- `[개념 근거 · file-level] current:Uebung/RISC-V Reference.pdf` — register 별칭, opcode, pseudoinstruction

### 이 파일에서 직접 대조한 공식 이미지

- `exam-p06.png` — Probeklausur.pdf · PDF p.6
- `solution-p07.png` — Probeklausur Musterlösung und Hinweise.pdf · PDF p.7

정확한 강의 슬라이드 한 페이지를 확정하지 못한 개념 자료는 `file-level`로 표시했습니다. 페이지 번호를 추측해서 만들지 않았습니다.
