UNIT-SPECIFIC ACTIVE LESSON · 2-0

매칭 전체 풀이 루틴

9개 instruction과 8개 encoding을 짝지으세요.

학습 목표: pseudo instruction을 base instruction으로 확장하고 opcode부터 field를 해독해 instruction 후보와 encoding을 일대일로 매칭한다.
공식 근거 범위: SoSe26 Probeklausur 시험 p6 Aufgabe 2의 9개 instruction·8개 encoding 전체 목록과 공식 해설 p7의 전체 pairing 범위.

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

9개 이름과 8개 bit열을 눈모양으로 맞추면 한 번의 오판이 남은 모든 쌍을 밀어냅니다. opcode→format→field→소거 순서를 고정하면 매칭 자체가 각 쌍의 독립 검산이 됩니다.

이 페이지는 Aufgabe 2의 공통 템플릿이 아니라 2-0 매칭 전체 풀이 루틴에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 2 개념 수업을 먼저 읽으세요.

이 소문제에서 실제로 쓰는 용어

정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.

opcode
instruction family와 기본 format을 정하는 하위 7 bit `bits[6:0]`입니다.이 소문제에서: 각 bit열을 R/I/S/B/J-type 후보군으로 먼저 줄입니다.
pseudo instruction
Assembler가 실제 base instruction 표현으로 바꾸는 편의 mnemonic입니다.이 소문제에서: `nop`과 `ret`을 field 비교가 가능한 `addi`, `jalr`로 펼칩니다.
instruction format
R/I/S/B/J-type처럼 register와 immediate bit 위치를 정한 layout입니다.이 소문제에서: opcode를 찾은 뒤 rd, rs1, rs2, immediate를 올바른 위치에서 읽게 합니다.
one-to-one matching
확정한 instruction과 encoding을 양쪽 후보 집합에서 동시에 제거하는 방식입니다.이 소문제에서: 8개 쌍을 중복 없이 만들고 9번째 unmatched instruction을 검산합니다.

이 소문제 전용 규칙과 종이 작업

오른쪽 7 bit 우선 규칙

RISC-V opcode는 표기된 32-bit 문자열의 오른쪽 끝 `bits[6:0]`이므로 왼쪽부터 instruction 종류를 추측하면 안 됩니다.

종이에: 각 encoding의 마지막 7 bit에 밑줄을 긋고 opcode 이름을 씁니다.

format 이후 field 규칙

같은 bit 위치도 format에 따라 immediate 조각인지 register인지 달라질 수 있으므로 opcode가 format을 정한 뒤에 해독합니다.

종이에: `opcode → format → funct → registers → immediate` 순서의 체크박스를 만듭니다.

양쪽 소거 규칙

하나의 쌍을 확정할 때 instruction과 encoding을 함께 지워야 중복 매칭과 잘못된 ‘마지막 남는 것’ 추론을 막습니다.

종이에: 쌍 번호를 양쪽 항목에 같은 색/번호로 쓰고 동시에 취소선을 긋습니다.

Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.

이 소문제 전용 작은 예제

후보는 `add x5,x6,x7`, `addi x5,x6,7`, `sw x7,0(x6)`이고 encoding의 opcode가 각각 `0110011`, `0010011`, `0100011`이다. opcode만으로 세 후보군을 먼저 매칭하세요.

주어진 것

  • `0110011`은 R-type integer register 연산입니다.
  • `0010011`은 I-type ALU immediate, `0100011`은 S-type store입니다.
  1. 세 mnemonic의 operand 구조에서 format 후보를 정합니다.

    register 세 개, immediate, memory store 표기가 서로 다른 family를 가리킵니다.

    종이 산출물: `add→R, addi→I, sw→S`

  2. 각 opcode를 format 이름으로 바꿉니다.

    bit열을 왼쪽 모양이 아니라 ISA의 하위 7 bit로 분류해야 합니다.

    종이 산출물: `0110011→R, 0010011→I, 0100011→S`

  3. 같은 format끼리 일대일로 연결하고 양쪽을 제거합니다.

    후보 수를 줄이면서 중복 연결을 방지합니다.

    종이 산출물: `add↔0110011, addi↔0010011, sw↔0100011`

예제 답과 독립 검산 보기

`add`는 `0110011`, `addi`는 `0010011`, `sw`는 `0100011` opcode 후보와 연결됩니다.

독립 검산: 각 쌍에서 실제 register/immediate field까지 해독하기 전에는 ‘후보군 매칭’일 뿐 최종 확정이 아님을 표시합니다.

이 instruction의 field를 실제로 채우기

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

시작pseudo를 base instruction으로 펼침
우선순위opcode→format→register→immediate
남은 후보 역검산

이제 실제 시험 문제를 micro-work로 풀기

공식 시험이 요구하는 것

9개 instruction과 8개 encoding을 짝지으세요.

공식 답을 보기 전, 내 답 먼저 남기기

완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.

각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.

`nop`과 `ret`을 base instruction으로 펼칩니다.

왜 하는가
pseudo 이름에는 직접 비교할 opcode와 field가 없으므로 실제 encoding 대상 형태로 바꿔야 합니다.
종이 산출물
`nop=addi x0,x0,0`, `ret=jalr x0,ra,0`을 후보 옆에 씁니다.
완료 조건
모든 후보가 실제 base mnemonic과 operand field로 표현되어 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 두 pseudo 모두 destination에 x0을 사용합니다.

이 단계의 대표 오류: `nop`과 `ret`에 별도의 opcode가 있다고 찾는 것입니다.

각 bit열의 opcode `bits[6:0]`를 읽습니다.

왜 하는가
opcode는 instruction family와 해독할 format을 가장 먼저 제한합니다.
종이 산출물
8개 encoding 오른쪽 7 bit 아래에 `R/I/S/B/J/jalr` 후보를 씁니다.
완료 조건
모든 encoding에 opcode와 family 표기가 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: binary 문자열의 맨 오른쪽 일곱 자리부터 세세요.

이 단계의 대표 오류: 왼쪽 일곱 bit를 opcode로 읽는 것입니다.

opcode가 정한 format으로 register field와 immediate를 복원합니다.

왜 하는가
같은 opcode 후보가 여럿일 때 rd/rs1/rs2/funct/immediate가 정확한 instruction을 결정합니다.
종이 산출물
각 encoding에 `rd=`, `rs1=`, `rs2=`, `imm=` 표를 채웁니다.
완료 조건
각 확정 쌍에 opcode 외 최소 두 field의 일치 근거가 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: B/S/J immediate는 연속된 한 덩어리가 아닙니다.

이 단계의 대표 오류: format을 정하지 않고 모든 bit열에서 같은 위치를 rd로 읽는 것입니다.

한 쌍을 확정할 때 instruction과 encoding을 모두 지웁니다.

왜 하는가
일대일 제약을 작업 과정에 반영해야 같은 bit열을 두 번 사용하는 실수를 막습니다.
종이 산출물
확정 쌍 양쪽에 같은 번호를 쓰고 취소선을 긋습니다.
완료 조건
확정된 항목이 어느 한쪽 후보 목록에도 남아 있지 않습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 한 encoding에는 한 instruction만 대응합니다.

이 단계의 대표 오류: encoding만 지워 이미 쓴 instruction을 다시 연결하는 것입니다.

마지막 instruction이 unmatched인지 field로 다시 확인합니다.

왜 하는가
‘남았으니 정답’은 앞선 오류를 숨길 수 있으므로 실제 필요한 encoding이 주어진 목록에 없는지 검산해야 합니다.
종이 산출물
남은 instruction의 예상 opcode, rd, rs1, immediate를 적고 8개 bit열과 대조합니다.
완료 조건
남은 후보가 왜 어떤 encoding에도 맞지 않는지 최소 두 field로 설명했습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 남는 개수 1과 0을 확인한 뒤 직접 encoding의 특징을 계산하세요.

이 단계의 대표 오류: 앞 쌍을 검증하지 않은 채 마지막 남은 항목을 자동 정답으로 선언하는 것입니다.

공식 답을 열기 전 마지막 회상

Branch immediate가 bit열에서 연속으로 놓이지 않는 이유를 알고 있나요?

내 풀이 후 공식 결론·이유·대표 함정 확인

공식 결론

공식 전체 pairing은 아래 2-1~2-9 카드와 같습니다.

왜 이 답이 되는가

Opcode는 instruction의 가족표지입니다. 먼저 pseudo instruction을 base instruction으로 바꾸면 모든 후보를 같은 규칙으로 비교할 수 있습니다.

대표 함정

binary를 왼쪽부터 opcode로 읽지 마세요. RISC-V opcode는 오른쪽 끝 bit 6..0입니다.

새 문제로 전이하기

세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.

1. 개념 재구성

32-bit RISC-V matching을 위한 다섯 단계 알고리즘을 pseudo 확장부터 unmatched 검산까지 순서대로 복원하세요.

제출 후 모델 답 보기

① pseudo instruction을 base instruction으로 확장한다. ② 오른쪽 `bits[6:0]`에서 opcode를 읽는다. ③ opcode로 format을 정한다. ④ register와 immediate field를 검증해 쌍을 양쪽에서 제거한다. ⑤ 마지막 unmatched 후보도 예상 field로 재검산한다.

2. 변형 문제

후보 `sub x3,x4,x5`, `lw x3,0(x4)`, `jal x3,16`과 opcode 끝자리 `0110011`, `0000011`, `1101111` 세 개를 family 수준에서 매칭하고 추가로 확인할 field 하나씩을 적으세요.

제출 후 모델 답 보기

`sub↔0110011`이며 funct7를 확인합니다. `lw↔0000011`이며 funct3를 확인합니다. `jal↔1101111`이며 rd와 J-immediate를 확인합니다.

3. 오류 진단

학생이 첫 encoding의 왼쪽 7 bit를 opcode로 읽고, 한 번 고른 `beq`를 두 encoding에 연결했습니다. 가장 먼저 고칠 절차와 일대일 제약을 설명하세요.

제출 후 모델 답 보기

첫 절차 오류는 왼쪽 7 bit를 읽은 것입니다. opcode는 오른쪽 `bits[6:0]`에서 읽어야 합니다. 한 쌍을 확정하면 instruction과 encoding을 양쪽 목록에서 모두 제거해야 하므로 같은 `beq`를 재사용할 수 없습니다.

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

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

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

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

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7 · SoSe26 Probeklausur 시험 p6 Aufgabe 2의 9개 instruction·8개 encoding 전체 목록과 공식 해설 p7의 전체 pairing 범위.