왜 이 소문제를 따로 배우는가
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 단위라고 가정합니다.
- 6-bit signed 범위의 지수를 정합니다.
최상위 1 bit가 sign에 관여하므로 양수 크기에 5 bit가 남습니다.
종이 산출물: `-2^5 … 2^5-1`
- 범위를 수치로 계산합니다.
양 끝값을 정확히 알아야 unsigned 범위와 trade-off를 비교할 수 있습니다.
종이 산출물: `-32 … +31`
- 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 계산식과 두 범위의 최댓값을 함께 쓰세요.
제출 후 모델 답 보기
`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을 계산하세요.
`0x18`을 `0x1040`에서 빼세요.
제출 후 모델 답 보기
8-bit signed는 -128…127, unsigned는 0…255이며 target은 `0x1040-0x18=0x1028`입니다.
3. 오류 진단
학생이 ‘12-bit signed immediate의 범위는 -4096…4095이고, Store에는 음수 offset이 의미 없다’고 했습니다. 두 주장 중 첫 수치 오류부터 바로잡고 Store 예도 제시하세요.
12 bit 중 magnitude에 자유롭게 쓸 수 있는 양수 쪽 bit 수를 세세요.
제출 후 모델 답 보기
첫 오류는 12-bit signed 범위를 13-bit 크기처럼 잡은 것입니다. 올바른 범위는 -2048…2047입니다. Store도 예를 들어 `sw t0,-4(sp)`처럼 base인 sp보다 앞쪽 주소를 선택할 수 있습니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
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.

