UNIT-SPECIFIC ACTIVE LESSON · 2-9

남는 `addi t0,a6,2`

모든 쌍을 지운 뒤 unmatched instruction을 찾으세요.

학습 목표: 일대일 매칭에서 8개 확정 쌍을 양쪽에서 제거하고 남은 `addi` 후보의 예상 field를 직접 계산해 unmatched를 검증한다.
공식 근거 범위: SoSe26 Probeklausur 시험 p6 Aufgabe 2의 9대8 매칭과 공식 해설 p7의 unmatched `addi t0,a6,2` 결론.

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

‘마지막으로 남았다’는 것은 증명이 아니라 앞선 여덟 판단에 의존한 결과입니다. 남은 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입니다.
  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가 복원되는지 확인합니다.

이 instruction의 field를 실제로 채우기

아래 표는 이 소문제만의 값입니다. 일반 format 표와 섞지 말고 각 행을 bit열에서 직접 가리켜 보세요.

formatI-type addi
opcode0010011
rdt0=x5
funct3000
rs1a6=x16
imm2; 제공 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라는 말을 사용해 설명하세요.

제출 후 모델 답 보기

첫째, 개수 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이며 이 값이 후보 목록에 없을 때 어떤 판정을 하는지도 쓰세요.

제출 후 모델 답 보기

`imm=0xFFF`, `rs1=x10`, `rd=x6`, opcode=`0x13`을 조립하면 `0xFFF50313`입니다. 이 exact encoding이 목록에 없고 다른 쌍이 모두 검증되었다면 해당 instruction은 unmatched입니다.

3. 오류 진단

학생이 ‘`addi t0,a6,2`가 마지막에 남았으니 field 확인은 필요 없다’고 했지만 아직 encoding 하나도 남아 있습니다. 첫 절차 오류와 필요한 수정 검사를 쓰세요.

제출 후 모델 답 보기

첫 오류는 개수 invariant가 깨진 상태에서 unmatched를 선언한 것입니다. encoding 하나가 남았다면 앞 쌍의 양쪽 제거와 field 근거를 재검사해야 합니다. 그 뒤 `addi t0,a6,2`의 예상 `0x00280293`이 어떤 encoding에도 없는지 확인해야 합니다.

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

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

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

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

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7 · SoSe26 Probeklausur 시험 p6 Aufgabe 2의 9대8 매칭과 공식 해설 p7의 unmatched `addi t0,a6,2` 결론.