---
schema_version: 1
exam_id: "sose26-probeklausur"
aufgabe: 1
unit_id: "1f"
source_group_id: "1f"
official_exam: true
official_solution: true
language: "ko"
---

# 1f — Signed Immediate의 이유와 비용

> **학습 목표:** Store·Branch·Jump offset에 signed Zweierkomplement가 필요한 이유를 기준 주소의 양방향 이동과 표현 범위 trade-off로 설명한다.
>
> **왜 따로 배우는가:** immediate를 단순한 작은 상수로 보면 음수 branch와 base 이전 memory 접근을 해석하지 못합니다. 기준 주소에 더하는 signed offset이라는 모델은 encoding 복원과 loop target 계산의 공통 토대입니다.
>
> **범위:** Aufgabe 1 · 15점 Aufgabe의 최소 학습 단위 · 시험 p3–5 · 공식 해설 p3–6

## 1. 문제 원문 (Deutsch)

이 unit은 공식 Teilaufgabe 또는 표의 한 행·한 access를 학습 가능한 최소 단위로 다시 나눈 것입니다. 아래 전사는 source group `1f`의 공식 독일어 문제 원문이며, 페이지 이미지를 바로 뒤에 함께 두어 코드·표·도식을 대조할 수 있게 했습니다.

~~~text
1f) Immediate-Codierung

In den Assemblerbefehlen Store, Branch und Jump wird das Immediate-Feld im Zweierkomplement dargestellt.

a) Erklären Sie, warum dieser Designansatz gewählt wurde.

b) Nennen Sie einen Nachteil dieser Darstellung.

Lösung:
~~~

![공식 시험 원문 — exam-p05.png](../../assets/exam-p05.png)

*공식 시험 원문: `exam-p05.png` · Probeklausur.pdf · PDF p.5*

### 이 unit에서 풀 항목

Store·Branch·Jump immediate를 Zweierkomplement로 표현하는 이유와 단점을 말하세요.

## 2. 쉬운 한국어 해석

1f) Immediate 인코딩(Immediate-Codierung)

Store, Branch, Jump 어셈블리 명령에서 Immediate field는 2의 보수(Zweierkomplement)로 표현된다.

a) 왜 이러한 설계 방식을 선택했는지 설명하시오.

b) 이 표현 방식의 단점 하나를 제시하시오.

풀이:

### 이 unit에 해당하는 최소 작업

Store·Branch·Jump immediate를 Zweierkomplement로 표현하는 이유와 단점을 말하세요.

이 문제에서 최종 결과만 맞히는 것보다 중요한 것은 `1f`에 필요한 중간 판단을 답안지에 남기는 것입니다.

## 3. 무엇을 묻는 문제인가

### 공식 문제의 요구사항

- Store, Branch, Jump의 immediate를 signed two's-complement 값으로 표현하는 이유를 설명한다.
- two's-complement immediate 표현의 단점 하나를 제시한다.

### 조건과 제약

- a)는 설계 선택의 기능적 이유를 설명해야 한다.
- b)는 단점을 하나 이상이 아니라 하나 제시하라고 요구한다.

### 원문 오탈자·도식 관련 주의

- ‘Store, Branch und Jump’는 mnemonic 하나가 아니라 명령 형식/부류를 가리키는 표현으로 사용되었다.
- 실제 RISC-V encoding에서는 immediate bit가 형식별로 분산·재배열되지만, 문제는 그 bit 배치가 아니라 signed 값의 Zweierkomplement 해석을 묻는다.

### 도식 시각 확인 상태

- **도식 의존 여부:** 이 최소 unit의 핵심 판정은 텍스트·수식·코드로 재현할 수 있습니다.
- **공식 페이지 상태:** exam-p05.png, solution-p05.png가 원문 대조용으로 렌더되어 연결되어 있습니다.

### 이 unit의 학습 목표

- **관찰 가능한 목표:** Store·Branch·Jump offset에 signed Zweierkomplement가 필요한 이유를 기준 주소의 양방향 이동과 표현 범위 trade-off로 설명한다.
- **출제 의도:** immediate를 단순한 작은 상수로 보면 음수 branch와 base 이전 memory 접근을 해석하지 못합니다. 기준 주소에 더하는 signed offset이라는 모델은 encoding 복원과 loop target 계산의 공통 토대입니다.
- **공식 근거 범위:** SoSe26 Probeklausur 시험 p5 Aufgabe 1f 및 공식 해설 p5의 signed Store·Branch·Jump immediate 이유와 범위 trade-off.
- **Aufgabe 공통 선수지식:** 용어를 외우기 전에 ‘무엇을 입력받아 무엇을 출력하는가’, ‘CPU 내부가 겹쳐 일하는가’, ‘memory에서 다음 접근이 얼마나 가까운가’를 묻는 습관을 만듭니다.

## 4. 선수 개념과 핵심 용어

### Immediate

- **뜻:** instruction bit 안에 직접 encoding된 상수 operand입니다.
- **이 문제에서:** Store의 base address 또는 Branch/Jump의 PC에 더할 offset으로 해석합니다.

### Zweierkomplement

- **뜻:** 고정 bit 수에서 음수와 양수를 같은 binary adder로 더하기 좋은 signed 표현입니다.
- **이 문제에서:** negative offset을 encoding하고 sign-extend하는 이유를 설명합니다.

### PC-relative

- **뜻:** 현재 Program Counter를 기준으로 target 위치까지의 차이를 나타내는 방식입니다.
- **이 문제에서:** Branch와 Jump가 앞쪽 또는 뒤쪽 code로 이동하는 이유와 연결합니다.

### sign extension

- **뜻:** signed 값을 더 넓은 bit 수로 바꿀 때 최상위 sign bit를 복제해 같은 값을 유지하는 과정입니다.
- **이 문제에서:** negative immediate를 register/PC 폭으로 확장해 더할 때 사용합니다.

### 이 문제에 적용할 풀이 규칙

### 규칙 1. 기준+offset 규칙

Store는 base register, Branch/Jump는 PC라는 기준에 immediate를 더합니다. signed이면 기준의 앞과 뒤를 모두 가리킬 수 있습니다.

- **시험지에 남길 것:** `target = base 또는 PC + signed offset` 식을 먼저 적습니다.

### 규칙 2. n-bit 범위 규칙

n-bit Zweierkomplement 범위는 `-2^(n-1)`부터 `2^(n-1)-1`이고 unsigned는 `0`부터 `2^n-1`입니다.

- **시험지에 남길 것:** 장단점을 말할 때 signed와 unsigned 범위를 나란히 씁니다.

### 규칙 3. 명령 의미 분리 규칙

Store가 control-flow를 바꾸는 것은 아니지만 negative offset으로 base 앞쪽 memory를 선택할 수 있습니다.

- **시험지에 남길 것:** Store에는 `memory address`, Branch/Jump에는 `PC target`이라고 기준을 따로 표시합니다.

### 공식 문제 전에 푸는 작은 유사 예제

**문제:** 6-bit immediate를 signed Zweierkomplement로 쓸 때 표현 범위와, base `0x2000`에 offset `-12`를 더한 주소를 구하세요.

**주어진 것**

- 6-bit signed immediate입니다.
- 주소 계산은 Byte 단위라고 가정합니다.

### 예제 단계 1. 6-bit signed 범위의 지수를 정합니다.

- **왜:** 최상위 1 bit가 sign에 관여하므로 양수 크기에 5 bit가 남습니다.
- **종이에:** `-2^5 … 2^5-1`

### 예제 단계 2. 범위를 수치로 계산합니다.

- **왜:** 양 끝값을 정확히 알아야 unsigned 범위와 trade-off를 비교할 수 있습니다.
- **종이에:** `-32 … +31`

### 예제 단계 3. negative offset을 base에 더합니다.

- **왜:** signed immediate는 기준 주소보다 앞쪽 위치를 한 instruction으로 가리키게 합니다.
- **종이에:** `0x2000 + (-12) = 0x1FF4`

**예제 정답:** 범위는 -32부터 +31이고 계산 주소는 `0x1FF4`입니다.

**독립 검산:** `0x1FF4 + 12 = 0x2000`으로 역산하고, 6-bit unsigned 최대값 63이 signed 최대값 31보다 큰지 확인합니다.

## 5. 공식 정답 요약

**공식 결론:** 이유: positive/negative offset 모두 표현하여 앞·뒤 주소 이동이 가능함. 단점: sign bit 때문에 positive maximum이 unsigned보다 작음.

### 시험지 문장별 정답 해설

아래는 시험지의 항목 순서를 그대로 유지합니다. 각 항목에서 원문 → 한국어 번역 → 정답 → 판단 근거 → 실제로 쓸 답을 바로 이어서 읽으세요.

### a) 설계 이유 · 정답: positive와 negative offset을 모두 표현하기 위해서

- **시험지 원문:** Erklären Sie, warum dieser Designansatz gewählt wurde.
- **한국어 번역:** 왜 이 설계 방식을 선택했는지 설명하시오.
- **왜 이 답인가:** Store는 base address 앞뒤를, Branch와 Jump는 현재 PC 앞뒤를 가리켜야 합니다. Zweierkomplement signed immediate를 쓰면 같은 adder로 양수 offset과 음수 offset을 더할 수 있어 backward branch/jump도 표현할 수 있습니다.
- **답안지에 쓸 문장:** a) Der Offset kann positiv oder negativ sein; dadurch sind Zugriffe bzw. Sprünge vorwärts und rückwärts relativ zur Basisadresse oder zum PC möglich.

### b) 단점 · 정답: 같은 bit 수에서 표현 가능한 최대 양수 범위가 줄어든다

- **시험지 원문:** Nennen Sie einen Nachteil dieser Darstellung.
- **한국어 번역:** 이 표현 방식의 단점 하나를 제시하시오.
- **왜 이 답인가:** n bit unsigned는 0부터 2^n-1까지 양수에 쓰지만 signed Zweierkomplement는 한 bit를 부호 방향에 사용해 -2^(n-1)부터 2^(n-1)-1까지만 표현합니다. 따라서 positive maximum이 약 절반으로 줄어듭니다.
- **답안지에 쓸 문장:** b) Durch das Vorzeichenbit halbiert sich der darstellbare positive Bereich; bei n Bit ist das positive Maximum nur 2^(n-1)-1.

### 현재 소문제의 요구·판단·답을 한 흐름으로 연결

### `1f`에서 정확히 답할 대상

- **시험지가 요구하는 답:** Store·Branch·Jump immediate를 Zweierkomplement로 표현하는 이유와 단점을 말하세요.
- **이 소문제의 공식 답:** 이유: positive/negative offset 모두 표현하여 앞·뒤 주소 이동이 가능함. 단점: sign bit 때문에 positive maximum이 unsigned보다 작음.

### 판단 1. 각 immediate가 더해지는 기준이 base register인지 PC인지 찾습니다.

- **왜:** signed 값의 목적은 독립된 절대 주소가 아니라 기준과 target 사이의 상대적 차이를 표현하는 데 있습니다.
- **이 판단에서 답안지에 남길 것:** `Store: base+imm`, `Branch/Jump: PC+imm`을 적습니다.

### 판단 2. 뒤로 가는 loop/jump와 base 앞 memory에 음수 offset이 필요한지 확인합니다.

- **왜:** signed 표현을 쓰면 같은 add datapath로 기준의 양쪽 target을 모두 선택할 수 있습니다.
- **이 판단에서 답안지에 남길 것:** 기준점 왼쪽에 `negative`, 오른쪽에 `positive`인 수직선을 그립니다.

### 판단 3. n-bit Zweierkomplement 범위를 적습니다.

- **왜:** signed immediate의 이점과 비용을 정량적으로 설명하는 핵심 식입니다.
- **이 판단에서 답안지에 남길 것:** `signed: -2^(n-1) … 2^(n-1)-1`을 씁니다.

### 판단 4. 같은 n-bit unsigned 양수 범위와 비교합니다.

- **왜:** 음수를 표현하는 대신 최대 양수 범위가 줄어든다는 단점을 정확히 드러냅니다.
- **이 판단에서 답안지에 남길 것:** `unsigned: 0 … 2^n-1`과 signed 최댓값을 나란히 표시합니다.

### 위 판단이 최종 답으로 이어지는 이유

Signed immediate는 base/PC 기준 앞과 뒤를 모두 가리킬 수 있게 합니다. Zweierkomplement는 음수와 양수의 덧셈을 같은 adder로 처리하기 좋지만, 같은 bit 수의 unsigned보다 최대 양수 범위가 절반가량 작습니다.

### 답안 작성 시 주의

Store 자체가 control-flow jump는 아니지만 base address에서 음의 offset으로 앞쪽 memory를 가리킬 수 있습니다.

![공식 Musterlösung/Hinweise — solution-p05.png](../../assets/solution-p05.png)

*공식 Musterlösung/Hinweise: `solution-p05.png` · Probeklausur Musterlösung und Hinweise.pdf · PDF p.5*

## 6. 풀이 전략

1. offset이 어느 기준에 더해지는지 찾습니다.
2. 뒤로 가는 loop/jump에 음수가 필요한지 확인합니다.
3. 아래 수식에 따라 n-bit signed 범위를 적습니다.
4. unsigned 양수 범위와 비교합니다.

## 7. 단계별 상세 풀이

### 단계 1. 각 immediate가 더해지는 기준이 base register인지 PC인지 찾습니다.

- **이유:** signed 값의 목적은 독립된 절대 주소가 아니라 기준과 target 사이의 상대적 차이를 표현하는 데 있습니다.
- **종이에 남길 것:** `Store: base+imm`, `Branch/Jump: PC+imm`을 적습니다.
- **완료 기준:** 세 instruction 종류마다 기준 주소가 구분되어 있습니다.
- **막힐 때 힌트:** memory operand의 괄호 속 register와 control-flow의 현재 PC를 찾으세요.
- **가장 흔한 첫 오류:** immediate 자체를 완전한 target address로 해석하는 것입니다.

### 단계 2. 뒤로 가는 loop/jump와 base 앞 memory에 음수 offset이 필요한지 확인합니다.

- **이유:** signed 표현을 쓰면 같은 add datapath로 기준의 양쪽 target을 모두 선택할 수 있습니다.
- **종이에 남길 것:** 기준점 왼쪽에 `negative`, 오른쪽에 `positive`인 수직선을 그립니다.
- **완료 기준:** Branch/Jump의 backward target과 Store의 base 이전 주소 예를 각각 하나 말할 수 있습니다.
- **막힐 때 힌트:** 현재 PC보다 작은 label, base보다 작은 주소를 생각하세요.
- **가장 흔한 첫 오류:** Store는 jump가 아니므로 negative immediate가 전혀 필요 없다고 결론내리는 것입니다.

### 단계 3. n-bit Zweierkomplement 범위를 적습니다.

- **이유:** signed immediate의 이점과 비용을 정량적으로 설명하는 핵심 식입니다.
- **종이에 남길 것:** `signed: -2^(n-1) … 2^(n-1)-1`을 씁니다.
- **완료 기준:** 최솟값에 음수 부호가 있고 최댓값에 `-1`이 포함되어 있습니다.
- **막힐 때 힌트:** 0도 양수 쪽 encoding 하나를 사용한다는 점을 기억하세요.
- **가장 흔한 첫 오류:** 범위를 `-2^n … 2^n-1`로 쓰거나 양 끝을 대칭으로 만드는 것입니다.

### 단계 4. 같은 n-bit unsigned 양수 범위와 비교합니다.

- **이유:** 음수를 표현하는 대신 최대 양수 범위가 줄어든다는 단점을 정확히 드러냅니다.
- **종이에 남길 것:** `unsigned: 0 … 2^n-1`과 signed 최댓값을 나란히 표시합니다.
- **완료 기준:** 장점은 양방향 offset, 단점은 더 작은 positive maximum으로 한 문장에 정리되었습니다.
- **막힐 때 힌트:** 같은 bit 수에서 unsigned는 sign 용도로 따로 쓰는 bit가 없습니다.
- **가장 흔한 첫 오류:** signed가 음수를 추가하면서도 unsigned와 같은 최대 양수를 유지한다고 쓰는 것입니다.

## 8. 문제와 공식 해설의 비교·검증

- **문제가 요구하는 것:** Store·Branch·Jump immediate를 Zweierkomplement로 표현하는 이유와 단점을 말하세요.
- **공식 해설이 제시하는 결론:** 이유: positive/negative offset 모두 표현하여 앞·뒤 주소 이동이 가능함. 단점: sign bit 때문에 positive maximum이 unsigned보다 작음.
- **결론을 재현하는 핵심 논리:** Signed immediate는 base/PC 기준 앞과 뒤를 모두 가리킬 수 있게 합니다. Zweierkomplement는 음수와 양수의 덧셈을 같은 adder로 처리하기 좋지만, 같은 bit 수의 unsigned보다 최대 양수 범위가 절반가량 작습니다.
- **검증 방법:** 위 micro-step의 `종이에 남길 것`을 순서대로 만들고 각 `완료 기준`을 확인합니다. 최종 산출물이 공식 결론과 같은지 대조합니다.
- **전제와 주의 범위:** Store 자체가 control-flow jump는 아니지만 base address에서 음의 offset으로 앞쪽 memory를 가리킬 수 있습니다.
- **채택할 시험 답:** 이 가이드에서는 공식 Musterlösung의 결론을 시험 답으로 유지하며, 일반 ISA 또는 다른 구현과 달라질 수 있는 부분은 위 전제와 주의 범위에서 분리합니다.

## 9. 시험장에서 쓸 최종 답안

이유: positive/negative offset 모두 표현하여 앞·뒤 주소 이동이 가능함. 단점: sign bit 때문에 positive maximum이 unsigned보다 작음.

답안지에는 결과만 쓰지 말고, 7절의 중간 산출물 가운데 판정을 증명하는 식·bit field·register 상태·cycle·cache 상태를 함께 남기세요.

## 10. 자주 하는 실수와 검산 체크리스트

### 대표 실수

- Store 자체가 control-flow jump는 아니지만 base address에서 음의 offset으로 앞쪽 memory를 가리킬 수 있습니다.
- immediate 자체를 완전한 target address로 해석하는 것입니다.
- Store는 jump가 아니므로 negative immediate가 전혀 필요 없다고 결론내리는 것입니다.
- 범위를 `-2^n … 2^n-1`로 쓰거나 양 끝을 대칭으로 만드는 것입니다.
- signed가 음수를 추가하면서도 unsigned와 같은 최대 양수를 유지한다고 쓰는 것입니다.

### 빠른 self-check

- **회상 질문:** 12-bit signed immediate의 범위는 무엇인가요?
- [ ] n 값만 주어져도 signed와 unsigned 범위를 오류 없이 계산할 수 있다.
- [ ] Store와 Branch/Jump에서 signed immediate의 기준이 무엇인지 각각 설명할 수 있다.

## 11. 짧은 확인 문제와 전이 연습

### 개념 재구성

**문제:** n-bit signed immediate가 기준 주소의 앞과 뒤를 모두 가리키는 원리를 식과 수직선으로 설명하고 signed/unsigned 범위를 복원하세요.

**힌트:** target 계산식과 두 범위의 최댓값을 함께 쓰세요.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** `target=base/PC+signed immediate`이므로 음수는 기준보다 앞, 양수는 뒤를 가리킵니다. signed 범위는 `-2^(n-1)…2^(n-1)-1`, unsigned 범위는 `0…2^n-1`입니다.

**채점 기준**
  - target
  - base|pc
  - negative|음수
  - -2^(n-1)
  - 2^(n-1)-1
  - 2^n-1

</details>

### 변형 문제

**문제:** 8-bit signed immediate와 8-bit unsigned immediate의 범위를 각각 구하고, PC `0x1040`에서 signed offset `-24`를 적용한 target을 계산하세요.

**힌트:** `0x18`을 `0x1040`에서 빼세요.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** 8-bit signed는 -128…127, unsigned는 0…255이며 target은 `0x1040-0x18=0x1028`입니다.

**채점 기준**
  - -128
  - 127
  - 0
  - 255
  - 0x1028

</details>

### 오답 진단

**문제:** 학생이 ‘12-bit signed immediate의 범위는 -4096…4095이고, Store에는 음수 offset이 의미 없다’고 했습니다. 두 주장 중 첫 수치 오류부터 바로잡고 Store 예도 제시하세요.

**힌트:** 12 bit 중 magnitude에 자유롭게 쓸 수 있는 양수 쪽 bit 수를 세세요.

<details>
<summary>정답과 채점 기준 보기</summary>

**모범 답:** 첫 오류는 12-bit signed 범위를 13-bit 크기처럼 잡은 것입니다. 올바른 범위는 -2048…2047입니다. Store도 예를 들어 `sw t0,-4(sp)`처럼 base인 sp보다 앞쪽 주소를 선택할 수 있습니다.

**채점 기준**
  - -2048
  - 2047
  - store|sw
  - -4(sp)|negative offset|음수 offset
  - base

</details>

## 12. 근거 자료

- `[문제 출처] current:Probeklausur.pdf` — 시험 p3–5 · 공식 해설 p3–6
- `[공식 해설] current:Probeklausur Musterlösung und Hinweise.pdf` — 시험 p3–5 · 공식 해설 p3–6
- `[정확한 원문 group] 1f` — 시험 p.5 · 공식 해설 p.5
- `[소문항 범위] SoSe26 Probeklausur 시험 p5 Aufgabe 1f 및 공식 해설 p5의 signed Store·Branch·Jump immediate 이유와 범위 trade-off.`
- `[개념 근거 · file-level] current:Vorlesung/Rechnerorganisation - Teil 1.pdf` — toolchain, processor architecture, RISC-V
- `[개념 근거 · file-level] current:Vorlesung/Rechnerorganisation - Teil 2.pdf` — Eintakt, Mehrtakt, Pipeline와 고정 datapath timing
- `[개념 근거 · file-level] current:Vorlesung/Rechnerorganisation - Teil 3.pdf` — Speicherhierarchie와 Lokalität
- `[개념 근거 · file-level] current:Uebung/Übung C Musterlösung.pdf` — C memory layout와 row-major array
- `[개념 근거 · file-level] current:Uebung/Übung 0 Musterlösung.pdf` — Zweierkomplement와 수 표현

### 이 파일에서 직접 대조한 공식 이미지

- `exam-p05.png` — Probeklausur.pdf · PDF p.5
- `solution-p05.png` — Probeklausur Musterlösung und Hinweise.pdf · PDF p.5

정확한 강의 슬라이드 한 페이지를 확정하지 못한 개념 자료는 `file-level`로 표시했습니다. 페이지 번호를 추측해서 만들지 않았습니다.
