UNIT-SPECIFIC ACTIVE LESSON · 1f

Signed Immediate의 이유와 비용

Store·Branch·Jump immediate를 Zweierkomplement로 표현하는 이유와 단점을 말하세요.

학습 목표: Store·Branch·Jump offset에 signed Zweierkomplement가 필요한 이유를 기준 주소의 양방향 이동과 표현 범위 trade-off로 설명한다.
공식 근거 범위: SoSe26 Probeklausur 시험 p5 Aufgabe 1f 및 공식 해설 p5의 signed Store·Branch·Jump immediate 이유와 범위 trade-off.

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

immediate를 단순한 작은 상수로 보면 음수 branch와 base 이전 memory 접근을 해석하지 못합니다. 기준 주소에 더하는 signed offset이라는 모델은 encoding 복원과 loop target 계산의 공통 토대입니다.

이 페이지는 Aufgabe 1의 공통 템플릿이 아니라 1f Signed Immediate의 이유와 비용에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 1 개념 수업을 먼저 읽으세요.

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

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

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 폭으로 확장해 더할 때 사용합니다.

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

기준+offset 규칙

Store는 base register, Branch/Jump는 PC라는 기준에 immediate를 더합니다. signed이면 기준의 앞과 뒤를 모두 가리킬 수 있습니다.

종이에: `target = base 또는 PC + signed offset` 식을 먼저 적습니다.

n-bit 범위 규칙

n-bit Zweierkomplement 범위는 `-2^(n-1)`부터 `2^(n-1)-1`이고 unsigned는 `0`부터 `2^n-1`입니다.

종이에: 장단점을 말할 때 signed와 unsigned 범위를 나란히 씁니다.

명령 의미 분리 규칙

Store가 control-flow를 바꾸는 것은 아니지만 negative offset으로 base 앞쪽 memory를 선택할 수 있습니다.

종이에: Store에는 `memory address`, Branch/Jump에는 `PC target`이라고 기준을 따로 표시합니다.

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

이 소문제 전용 작은 예제

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보다 큰지 확인합니다.

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

공식 시험이 요구하는 것

Store·Branch·Jump immediate를 Zweierkomplement로 표현하는 이유와 단점을 말하세요.

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

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

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

각 immediate가 더해지는 기준이 base register인지 PC인지 찾습니다.

왜 하는가
signed 값의 목적은 독립된 절대 주소가 아니라 기준과 target 사이의 상대적 차이를 표현하는 데 있습니다.
종이 산출물
`Store: base+imm`, `Branch/Jump: PC+imm`을 적습니다.
완료 조건
세 instruction 종류마다 기준 주소가 구분되어 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: memory operand의 괄호 속 register와 control-flow의 현재 PC를 찾으세요.

이 단계의 대표 오류: immediate 자체를 완전한 target address로 해석하는 것입니다.

뒤로 가는 loop/jump와 base 앞 memory에 음수 offset이 필요한지 확인합니다.

왜 하는가
signed 표현을 쓰면 같은 add datapath로 기준의 양쪽 target을 모두 선택할 수 있습니다.
종이 산출물
기준점 왼쪽에 `negative`, 오른쪽에 `positive`인 수직선을 그립니다.
완료 조건
Branch/Jump의 backward target과 Store의 base 이전 주소 예를 각각 하나 말할 수 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 현재 PC보다 작은 label, base보다 작은 주소를 생각하세요.

이 단계의 대표 오류: Store는 jump가 아니므로 negative immediate가 전혀 필요 없다고 결론내리는 것입니다.

n-bit Zweierkomplement 범위를 적습니다.

왜 하는가
signed immediate의 이점과 비용을 정량적으로 설명하는 핵심 식입니다.
종이 산출물
`signed: -2^(n-1) … 2^(n-1)-1`을 씁니다.
완료 조건
최솟값에 음수 부호가 있고 최댓값에 `-1`이 포함되어 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 0도 양수 쪽 encoding 하나를 사용한다는 점을 기억하세요.

이 단계의 대표 오류: 범위를 `-2^n … 2^n-1`로 쓰거나 양 끝을 대칭으로 만드는 것입니다.

같은 n-bit unsigned 양수 범위와 비교합니다.

왜 하는가
음수를 표현하는 대신 최대 양수 범위가 줄어든다는 단점을 정확히 드러냅니다.
종이 산출물
`unsigned: 0 … 2^n-1`과 signed 최댓값을 나란히 표시합니다.
완료 조건
장점은 양방향 offset, 단점은 더 작은 positive maximum으로 한 문장에 정리되었습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 같은 bit 수에서 unsigned는 sign 용도로 따로 쓰는 bit가 없습니다.

이 단계의 대표 오류: signed가 음수를 추가하면서도 unsigned와 같은 최대 양수를 유지한다고 쓰는 것입니다.

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

12-bit signed immediate의 범위는 무엇인가요?

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

공식 결론

이유: positive/negative offset 모두 표현하여 앞·뒤 주소 이동이 가능함. 단점: sign bit 때문에 positive maximum이 unsigned보다 작음.

왜 이 답이 되는가

Signed immediate는 base/PC 기준 앞과 뒤를 모두 가리킬 수 있게 합니다. Zweierkomplement는 음수와 양수의 덧셈을 같은 adder로 처리하기 좋지만, 같은 bit 수의 unsigned보다 최대 양수 범위가 절반가량 작습니다.

대표 함정

Store 자체가 control-flow jump는 아니지만 base address에서 음의 offset으로 앞쪽 memory를 가리킬 수 있습니다.

새 문제로 전이하기

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

1. 개념 재구성

n-bit signed immediate가 기준 주소의 앞과 뒤를 모두 가리키는 원리를 식과 수직선으로 설명하고 signed/unsigned 범위를 복원하세요.

제출 후 모델 답 보기

`target=base/PC+signed immediate`이므로 음수는 기준보다 앞, 양수는 뒤를 가리킵니다. signed 범위는 `-2^(n-1)…2^(n-1)-1`, unsigned 범위는 `0…2^n-1`입니다.

2. 변형 문제

8-bit signed immediate와 8-bit unsigned immediate의 범위를 각각 구하고, PC `0x1040`에서 signed offset `-24`를 적용한 target을 계산하세요.

제출 후 모델 답 보기

8-bit signed는 -128…127, unsigned는 0…255이며 target은 `0x1040-0x18=0x1028`입니다.

3. 오류 진단

학생이 ‘12-bit signed immediate의 범위는 -4096…4095이고, Store에는 음수 offset이 의미 없다’고 했습니다. 두 주장 중 첫 수치 오류부터 바로잡고 Store 예도 제시하세요.

제출 후 모델 답 보기

첫 오류는 12-bit signed 범위를 13-bit 크기처럼 잡은 것입니다. 올바른 범위는 -2048…2047입니다. Store도 예를 들어 `sw t0,-4(sp)`처럼 base인 sp보다 앞쪽 주소를 선택할 수 있습니다.

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

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

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

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

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p3–5 · 공식 해설 p3–6 · SoSe26 Probeklausur 시험 p5 Aufgabe 1f 및 공식 해설 p5의 signed Store·Branch·Jump immediate 이유와 범위 trade-off.