← Probeklausur overview

Aufgabe 2 · 8 Punkte · encoding

Binärcode und Assemblerzuordnung

32-bit instruction을 opcode(하위 7 bit)부터 읽고, opcode가 정한 format에 따라 rd/funct3/rs1/rs2/immediate를 분해합니다. Hex는 먼저 4-bit 묶음으로 binary로 바꿉니다.

공식 시험지와 공식 Musterlösung을 기준으로 작성했습니다. 그림 문제는 렌더된 원본 페이지도 함께 대조합니다.

BEGINNER CONCEPT LESSON

문제 풀이 전에 개념부터 배우기

용어를 모르는 상태에서 답을 외우지 않도록, 비유·그림·작은 예제·시험용 풀이 알고리즘을 별도 수업으로 만들었습니다.

Aufgabe 2 개념 수업 열기 →

원본 그림과 공식 해설 그림

diagram 문제는 text만으로 대체하지 말고 아래 원본을 확대해 선·stage·field를 직접 확인하세요.

MICRO WORK UNITS

10개 작업 단위로 학습

각 카드는 요구사항 → zero-base 개념 → 손풀이 단계 → 공식 결론 → 함정 → active recall 순서입니다.

2-0매칭 전체 풀이 루틴

문제가 요구하는 것

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

이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.

📖 2-0 독립 개념·풀이 페이지 열기 →

0. 이 소문제에 필요한 핵심 개념

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

✎ 작은 예로 먼저 손풀기
작은 종이에 opcode·rd·funct3·rs1·rs2·funct7/imm 칸을 먼저 그리세요.
✓ 무엇을 확인해야 하나
완성한 bit열을 다시 assembly로 decode했을 때 register와 immediate가 모두 같아야 합니다.

1. 이번 시험 문제에서 실제로 밟는 단계

  1. `nop=addi x0,x0,0`, `ret=jalr x0,ra,0`로 펼칩니다.
  2. 각 bit열의 opcode [6:0]를 읽습니다.
  3. format에 맞춰 register field와 immediate를 복원합니다.
  4. 한 쌍을 연결할 때 양쪽을 모두 지웁니다.
  5. 마지막 남는 항목을 unmatched로 확인합니다.

4. 정답을 닫고 스스로 설명하기

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

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7

2-1`nop` ↔ `0x00000013`

문제가 요구하는 것

`nop`의 실제 encoding을 찾으세요.

이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.

📖 2-1 독립 개념·풀이 페이지 열기 →

0. 이 소문제에 필요한 핵심 개념

`nop`은 `addi x0,x0,0`입니다. opcode 0010011, rd=0, funct3=000, rs1=0, imm=0이 모두 0이고 opcode만 남습니다.

✎ 작은 예로 먼저 손풀기
작은 종이에 opcode·rd·funct3·rs1·rs2·funct7/imm 칸을 먼저 그리세요.
✓ 무엇을 확인해야 하나
완성한 bit열을 다시 assembly로 decode했을 때 register와 immediate가 모두 같아야 합니다.

1. 이번 시험 문제에서 실제로 밟는 단계

  1. pseudo를 펼칩니다.
  2. I-type field를 모두 0으로 둡니다.
  3. 끝 opcode 0x13을 확인합니다.

4. 정답을 닫고 스스로 설명하기

`addi x0,x0,1`도 nop인가요? 결과 write는 버려지지만 canonical encoding과의 차이를 말해 보세요.

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7

2-2`ret` ↔ `0x00008067`

문제가 요구하는 것

`ret`의 실제 encoding을 찾으세요.

이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.

📖 2-2 독립 개념·풀이 페이지 열기 →

0. 이 소문제에 필요한 핵심 개념

`ret`은 `jalr x0,ra,0`입니다. return address를 새 rd에 보관할 필요가 없어 rd=x0이고 target은 ra+0입니다.

✎ 작은 예로 먼저 손풀기
작은 종이에 opcode·rd·funct3·rs1·rs2·funct7/imm 칸을 먼저 그리세요.
✓ 무엇을 확인해야 하나
완성한 bit열을 다시 assembly로 decode했을 때 register와 immediate가 모두 같아야 합니다.

1. 이번 시험 문제에서 실제로 밟는 단계

  1. pseudo를 펼칩니다.
  2. jalr opcode 1100111을 확인합니다.
  3. rs1=ra(x1), rd=x0, imm=0을 확인합니다.

4. 정답을 닫고 스스로 설명하기

`ret` 실행 시 PC는 어디에서 오나요?

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7

2-3`beq s0,s1,12` 매칭

문제가 요구하는 것

주어진 branch bit열 중 +12 offset을 찾으세요.

이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.

📖 2-3 독립 개념·풀이 페이지 열기 →

0. 이 소문제에 필요한 핵심 개념

B-type은 rs1=s0(x8), rs2=s1(x9), funct3=000이고 signed immediate 조각이 여러 위치에 흩어집니다.

✎ 작은 예로 먼저 손풀기
작은 종이에 opcode·rd·funct3·rs1·rs2·funct7/imm 칸을 먼저 그리세요.
✓ 무엇을 확인해야 하나
완성한 bit열을 다시 assembly로 decode했을 때 register와 immediate가 모두 같아야 합니다.

1. 이번 시험 문제에서 실제로 밟는 단계

  1. opcode 1100011을 찾습니다.
  2. funct3=000으로 beq를 확인합니다.
  3. rs1=01000, rs2=01001을 확인합니다.
  4. immediate를 재조립해 +12인지 확인합니다.

4. 정답을 닫고 스스로 설명하기

왜 branch offset은 보통 짝수 단위인가요?

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7

2-4`sw a4,8(t0)` 매칭

문제가 요구하는 것

store word의 source와 base를 구분하세요.

이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.

📖 2-4 독립 개념·풀이 페이지 열기 →

0. 이 소문제에 필요한 핵심 개념

S-type에서 rs1은 주소 base, rs2는 memory에 쓸 data입니다. `sw a4,8(t0)`는 rs1=t0(x5), rs2=a4(x14), imm=8입니다.

✎ 작은 예로 먼저 손풀기
작은 종이에 opcode·rd·funct3·rs1·rs2·funct7/imm 칸을 먼저 그리세요.
✓ 무엇을 확인해야 하나
완성한 bit열을 다시 assembly로 decode했을 때 register와 immediate가 모두 같아야 합니다.

1. 이번 시험 문제에서 실제로 밟는 단계

  1. opcode 0100011을 찾습니다.
  2. funct3=010으로 word store를 확인합니다.
  3. rs1=t0와 rs2=a4를 확인합니다.
  4. 나뉜 immediate 상·하위 조각을 합칩니다.

4. 정답을 닫고 스스로 설명하기

`sw t1,12(s0)`에서 rs1과 rs2는 각각 무엇인가요?

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7

2-5`add t0,a6,t2` 매칭

문제가 요구하는 것

R-type add의 세 register를 확인하세요.

이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.

📖 2-5 독립 개념·풀이 페이지 열기 →

0. 이 소문제에 필요한 핵심 개념

R-type은 rd, rs1, rs2 세 register와 funct3/funct7로 연산을 구분합니다.

✎ 작은 예로 먼저 손풀기
작은 종이에 opcode·rd·funct3·rs1·rs2·funct7/imm 칸을 먼저 그리세요.
✓ 무엇을 확인해야 하나
완성한 bit열을 다시 assembly로 decode했을 때 register와 immediate가 모두 같아야 합니다.

1. 이번 시험 문제에서 실제로 밟는 단계

  1. opcode 0110011을 찾습니다.
  2. funct3=000, funct7=0000000으로 add를 확인합니다.
  3. rd=t0(x5), rs1=a6(x16), rs2=t2(x7)를 확인합니다.

4. 정답을 닫고 스스로 설명하기

R-type에서 destination field는 bit 몇 번 영역인가요?

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7

2-6`jal ra,32` 매칭

문제가 요구하는 것

J-type jump offset과 rd를 확인하세요.

이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.

📖 2-6 독립 개념·풀이 페이지 열기 →

0. 이 소문제에 필요한 핵심 개념

`jal`은 PC-relative jump와 동시에 PC+4를 rd에 저장합니다. ra를 rd로 쓰면 함수 호출 모양입니다.

✎ 작은 예로 먼저 손풀기
작은 종이에 opcode·rd·funct3·rs1·rs2·funct7/imm 칸을 먼저 그리세요.
✓ 무엇을 확인해야 하나
완성한 bit열을 다시 assembly로 decode했을 때 register와 immediate가 모두 같아야 합니다.

1. 이번 시험 문제에서 실제로 밟는 단계

  1. opcode 1101111을 찾습니다.
  2. rd=ra(x1)를 확인합니다.
  3. J-immediate 조각을 재배열하고 sign-extend해 +32를 얻습니다.

4. 정답을 닫고 스스로 설명하기

`jal x0,label`은 어떤 pseudo instruction과 같은 역할인가요?

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7

2-7`bne t0,t1,-16` 매칭

문제가 요구하는 것

negative branch offset을 복원하세요.

이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.

📖 2-7 독립 개념·풀이 페이지 열기 →

0. 이 소문제에 필요한 핵심 개념

bne는 funct3=001이고 offset -16은 2의 보수 signed immediate입니다.

✎ 작은 예로 먼저 손풀기
작은 종이에 opcode·rd·funct3·rs1·rs2·funct7/imm 칸을 먼저 그리세요.
✓ 무엇을 확인해야 하나
완성한 bit열을 다시 assembly로 decode했을 때 register와 immediate가 모두 같아야 합니다.

1. 이번 시험 문제에서 실제로 밟는 단계

  1. opcode 1100011을 찾습니다.
  2. funct3=001로 bne를 확인합니다.
  3. rs1=t0(x5), rs2=t1(x6)를 확인합니다.
  4. immediate 조각을 합친 뒤 sign-extend합니다.

4. 정답을 닫고 스스로 설명하기

음수 branch offset이 loop에서 자주 나오는 이유는 무엇인가요?

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7

2-8`sll a2,a4,a5` 매칭

문제가 요구하는 것

shift amount가 register에서 오는 R-type을 찾으세요.

이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.

📖 2-8 독립 개념·풀이 페이지 열기 →

0. 이 소문제에 필요한 핵심 개념

`sll`은 rs2의 하위 bit가 정한 만큼 rs1을 왼쪽으로 shift하고 rd에 씁니다.

✎ 작은 예로 먼저 손풀기
작은 종이에 opcode·rd·funct3·rs1·rs2·funct7/imm 칸을 먼저 그리세요.
✓ 무엇을 확인해야 하나
완성한 bit열을 다시 assembly로 decode했을 때 register와 immediate가 모두 같아야 합니다.

1. 이번 시험 문제에서 실제로 밟는 단계

  1. R-type opcode를 찾습니다.
  2. funct3=001, funct7=0000000을 확인합니다.
  3. rd=a2(x12), rs1=a4(x14), rs2=a5(x15)를 확인합니다.

4. 정답을 닫고 스스로 설명하기

`sll`과 `slli`의 두 번째 shift operand는 어떻게 다른가요?

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7

2-9남는 `addi t0,a6,2`

문제가 요구하는 것

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

이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.

📖 2-9 독립 개념·풀이 페이지 열기 →

0. 이 소문제에 필요한 핵심 개념

일대일 matching은 마지막에 남는 후보가 검산 장치가 됩니다. 단, 앞 pairing이 맞다는 전제에서만 유효합니다.

✎ 작은 예로 먼저 손풀기
작은 종이에 opcode·rd·funct3·rs1·rs2·funct7/imm 칸을 먼저 그리세요.
✓ 무엇을 확인해야 하나
완성한 bit열을 다시 assembly로 decode했을 때 register와 immediate가 모두 같아야 합니다.

1. 이번 시험 문제에서 실제로 밟는 단계

  1. 8개 확정 쌍을 양쪽에서 제거합니다.
  2. 남은 instruction과 남은 encoding 수를 셉니다.
  3. 주어진 bit열 중 rd=t0, rs1=a6, imm=2인 addi가 없는지 확인합니다.

4. 정답을 닫고 스스로 설명하기

`addi t0,a6,2`를 직접 encoding하면 어떤 hex가 되는지 계산해 보세요.

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p6 · 공식 해설 p7