왜 이 소문제를 따로 배우는가
Alignment는 주소가 ‘대충 가까운가’가 아니라 자료 크기의 경계에 정확히 놓였는지를 묻습니다. 이 규칙을 byte 범위로 시각화하면 exception 판정과 두 memory block에 걸치는 hardware 비용을 함께 설명할 수 있습니다.
이 페이지는 Aufgabe 1의 공통 템플릿이 아니라 1e Alignment와 misaligned word에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 1 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- word
- 이 문제의 RV32 문맥에서 32 bit, 즉 4 Byte인 data 단위입니다.이 소문제에서: 정렬 배수와 접근 byte 범위를 정하는 기준 크기입니다.
- Alignment
- data의 시작 주소가 그 data 크기에 맞는 경계에 놓이는 조건입니다.이 소문제에서: word 주소가 4의 배수인지 `mod 4`로 확인합니다.
- misaligned access
- 자료 크기에 맞는 주소 경계가 아닌 곳에서 시작하는 memory access입니다.이 소문제에서: 4의 배수가 아닌 주소의 32-bit word 접근을 이름 붙입니다.
- Exception
- processor가 정상 instruction 흐름을 중단하고 예외 처리로 넘기는 사건입니다.이 소문제에서: 공식 해설의 RISC-V 가정에서 misaligned word access의 결과를 기술합니다.
이 소문제 전용 규칙과 종이 작업
크기 배수 규칙
N Byte 자료가 aligned이려면 시작 주소가 N의 배수여야 합니다. 따라서 4 Byte word는 `address mod 4 = 0`이어야 합니다.
종이에: 자료 크기와 `address mod size` 계산을 답안 첫 줄에 씁니다.
시험 문맥 한정 규칙
일부 ISA 구현은 misaligned access를 여러 접근으로 지원할 수 있지만, 이 시험의 강의·공식 해설 문맥에서는 word misalignment가 exception입니다.
종이에: 결론에 `이 문제의 RISC-V 가정에서는`이라는 범위를 명시합니다.
byte 범위 검산
시작 주소부터 size-1까지 적으면 하나의 aligned block 안인지 두 block을 가로지르는지 바로 보입니다.
종이에: `start … start+3` 범위와 양옆 4-Byte 경계를 표시합니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
주소 `0x2006`에서 32-bit word를 읽으려 한다. aligned인지 판별하고 건드리는 byte 범위를 적으세요.
주어진 것
- word는 4 Byte입니다.
- 이 문제에서는 misaligned word access가 exception을 일으킨다고 가정합니다.
- 주소의 4에 대한 나머지를 구합니다.
word alignment 조건은 시작 주소가 4의 배수인지로 판정합니다.
종이 산출물: `0x2006 mod 4 = 2`
- 접근하는 네 byte 주소를 나열합니다.
실제로 두 aligned block을 가로지르는지를 확인할 수 있습니다.
종이 산출물: `0x2006, 0x2007, 0x2008, 0x2009`
- 시험 가정에 따른 결과와 이유를 씁니다.
나머지가 0이 아니고 `0x2008` 경계를 넘으므로 misaligned word입니다.
종이 산출물: `misaligned → exception; 0x2004–07과 0x2008–0B 두 block`
예제 답과 독립 검산 보기
`0x2006`은 4의 배수가 아니므로 misaligned이며, `0x2006`부터 `0x2009`까지 두 정렬 block에 걸쳐 이 시험 문맥에서는 exception입니다.
독립 검산: 시작 주소를 `0x2008`로 바꾸면 `mod 4=0`이고 네 byte가 `0x2008–0x200B` 한 block에 들어가는지 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
4의 배수가 아닌 주소에 32-bit word를 쓸 수 있는지 architecture별로 설명하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
32-bit word가 4 Byte임을 적습니다.
- 왜 하는가
- alignment 경계와 접근 범위는 bit 수가 아니라 Byte 크기로 계산해야 합니다.
- 종이 산출물
- `word = 32 bit = 4 Byte`
- 완료 조건
- 정렬 기준 크기 4 Byte가 답안에 명시되어 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 8 bit가 1 Byte입니다.
이 단계의 대표 오류: 32-bit이므로 주소가 32의 배수여야 한다고 쓰는 것입니다.
주어진 주소의 `mod 4`가 0인지 확인합니다.
- 왜 하는가
- 나머지 0만 4-Byte word 경계에서 시작한다는 직접적인 판정입니다.
- 종이 산출물
- `address mod 4 = ...` 계산과 aligned/misaligned 표시를 남깁니다.
- 완료 조건
- 나머지 값과 판정이 서로 일치합니다.
막혔을 때 단계 힌트·대표 오류
힌트: hex 주소의 마지막 두 bit가 `00`인지 보아도 됩니다.
이 단계의 대표 오류: 주소가 짝수라는 사실만으로 word-aligned라고 판단하는 것입니다.
공식 해설의 RISC-V 가정을 적용해 exception 여부를 씁니다.
- 왜 하는가
- misaligned access 지원은 implementation별 차이가 있으므로 문제에서 채택한 동작을 사용해야 합니다.
- 종이 산출물
- `이 시험의 RISC-V: misaligned word → exception`을 적습니다.
- 완료 조건
- 허용/불허 결론과 시험 문맥 한정이 함께 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 일반적인 모든 CPU가 아니라 이 강의의 공식 해설을 기준으로 답하세요.
이 단계의 대표 오류: 모든 architecture에서 절대 불가능하다고 일반화하거나, 반대로 hardware가 알아서 처리한다고 가정하는 것입니다.
word가 두 aligned memory block에 걸치는 추가 비용을 이유로 설명합니다.
- 왜 하는가
- 정렬 제약은 단순 규칙 암기가 아니라 여러 memory 접근과 결합 logic을 피하려는 구조적 이유가 있습니다.
- 종이 산출물
- 네 byte 범위와 두 block 경계를 그리고 `추가 access/logic`을 표시합니다.
- 완료 조건
- 어느 두 block에 걸치는지와 왜 hardware가 복잡해지는지 설명할 수 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 시작 주소부터 세 주소 뒤까지 표시해 4의 배수 경계를 넘는지 보세요.
이 단계의 대표 오류: misalignment가 data 값의 bit 순서를 바꾸는 문제라고 설명하는 것입니다.
공식 답을 열기 전 마지막 회상
주소 0x1002에서 4 Byte를 읽으면 어떤 byte 범위를 건드리나요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
일반적으로 architecture에 따라 다릅니다. 이 시험의 RISC-V 가정에서는 4-byte aligned가 아닌 word access는 허용되지 않고 exception이 발생합니다. 공식 해설의 ARM32 예시처럼 허용하는 architecture에서는 word가 두 aligned memory block에 걸쳐 두 번의 접근과 추가 hardware logic이 필요해 느려질 수 있습니다. RISC-V에서의 제한은 memory access를 한 aligned block으로 단순화합니다.
왜 이 답이 되는가
Aligned word는 시작 주소가 word 크기 4 Byte의 배수입니다. 가능 여부는 architecture/implementation에 따라 다릅니다. 공식 해설의 수업 RISC-V 문맥에서는 misaligned word access가 exception을 일으키고, ARM32 예시는 두 aligned block에 나누어 접근할 수 있어 느리고 hardware가 복잡해집니다.
대표 함정
모든 CPU에 절대 불가능하다고 일반화하지 말고, 공식의 ‘architecture-dependent → 수업 RISC-V 불허 → ARM32 허용 예’ 순서를 유지하세요.
시험지 문장별 정답 해설
아래 항목은 시험지 순서를 그대로 유지합니다. 각 문장마다 원문, 번역, 정답, 판단 근거, 실제 답안 문장을 한곳에서 확인하세요.
a) 가능한가? · 정답: 아키텍처에 따라 다르며, 이 시험의 RISC-V 가정에서는 Nein
시험지 원문: Kann man ein Wort (32 Bit) an eine Speicheradresse schreiben, die kein ganzzahliges Vielfaches von 4 ist?
한국어 번역: 32-bit word를 4의 정수배가 아닌 주소에 쓸 수 있는가?
왜 이 답인가: 32 bit는 4 Byte이므로 aligned 주소는 address mod 4=0이어야 합니다. 공식 해설은 architecture-dependent라고 먼저 밝힌 뒤, RISC-V에서는 허용하지 않아 exception이 발생하고 ARM32 같은 예에서는 가능하다고 구분합니다.
답안지에 쓸 문장: a) Architekturabhängig; im hier betrachteten RISC-V nein, der Zugriff löst eine Exception aus.
b) 결과 또는 제한 이유 · 정답: 허용 시 두 aligned block 접근과 추가 logic이 필요; RISC-V의 제한은 memory access를 단순화
시험지 원문: Wenn ja: Welche Folgen hätte das? Wenn nein: Warum ist das nicht erlaubt, und wovor schützt diese Einschränkung?
한국어 번역: 가능하다면 어떤 결과가 생기는가? 불가능하다면 왜 허용되지 않으며 이 제한은 무엇으로부터 보호하는가?
왜 이 답인가: misaligned 4-byte word는 두 aligned memory block에 걸칠 수 있어 두 번의 access와 결합 logic이 필요합니다. 이는 느리고 hardware를 복잡하게 합니다. 강의의 RISC-V 모델은 각 access가 정확히 하나의 aligned block만 다루게 하여 이 비용을 피합니다.
답안지에 쓸 문장: b) Ein nicht ausgerichtetes Wort kann zwei ausgerichtete Speicherblöcke überlappen und dadurch zwei Zugriffe sowie zusätzliche Hardwarelogik benötigen. Das Verbot vereinfacht und beschleunigt den Speicherzugriff, weil jeder Zugriff genau einen ausgerichteten Block betrifft.
1e에서 정확히 무엇에 답하는가
이 소문제의 답안 대상: 4의 배수가 아닌 주소에 32-bit word를 쓸 수 있는지 architecture별로 설명하세요.
- 32-bit word가 4 Byte임을 적습니다.
판단 이유: alignment 경계와 접근 범위는 bit 수가 아니라 Byte 크기로 계산해야 합니다.
답안지에 남길 중간 결과: `word = 32 bit = 4 Byte` - 주어진 주소의 `mod 4`가 0인지 확인합니다.
판단 이유: 나머지 0만 4-Byte word 경계에서 시작한다는 직접적인 판정입니다.
답안지에 남길 중간 결과: `address mod 4 = ...` 계산과 aligned/misaligned 표시를 남깁니다. - 공식 해설의 RISC-V 가정을 적용해 exception 여부를 씁니다.
판단 이유: misaligned access 지원은 implementation별 차이가 있으므로 문제에서 채택한 동작을 사용해야 합니다.
답안지에 남길 중간 결과: `이 시험의 RISC-V: misaligned word → exception`을 적습니다. - word가 두 aligned memory block에 걸치는 추가 비용을 이유로 설명합니다.
판단 이유: 정렬 제약은 단순 규칙 암기가 아니라 여러 memory 접근과 결합 logic을 피하려는 구조적 이유가 있습니다.
답안지에 남길 중간 결과: 네 byte 범위와 두 block 경계를 그리고 `추가 access/logic`을 표시합니다.
따라서 도출되는 공식 답: 일반적으로 architecture에 따라 다릅니다. 이 시험의 RISC-V 가정에서는 4-byte aligned가 아닌 word access는 허용되지 않고 exception이 발생합니다. 공식 해설의 ARM32 예시처럼 허용하는 architecture에서는 word가 두 aligned memory block에 걸쳐 두 번의 접근과 추가 hardware logic이 필요해 느려질 수 있습니다. RISC-V에서의 제한은 memory access를 한 aligned block으로 단순화합니다.
답이 이어지는 핵심 인과: Aligned word는 시작 주소가 word 크기 4 Byte의 배수입니다. 가능 여부는 architecture/implementation에 따라 다릅니다. 공식 해설의 수업 RISC-V 문맥에서는 misaligned word access가 exception을 일으키고, ARM32 예시는 두 aligned block에 나누어 접근할 수 있어 느리고 hardware가 복잡해집니다.
이 답에 붙는 주의: 모든 CPU에 절대 불가능하다고 일반화하지 말고, 공식의 ‘architecture-dependent → 수업 RISC-V 불허 → ARM32 허용 예’ 순서를 유지하세요.
새 문제로 전이하기
세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.
1. 개념 재구성
N Byte data의 alignment 판정 규칙을 식으로 복원하고, misaligned access가 hardware에 추가 작업을 만드는 이유를 설명하세요.
시작 주소의 나머지와 block 경계를 연결하세요.
제출 후 모델 답 보기
N Byte data는 `address mod N = 0`일 때 aligned입니다. 그렇지 않으면 data가 두 aligned block에 걸릴 수 있어 여러 memory access와 결과 결합 logic이 필요합니다.
2. 변형 문제
주소 `0x3014`와 `0x3016`에서 각각 4-Byte word를 읽는다. 각 주소의 alignment를 판별하고 misaligned인 접근의 byte 범위를 적으세요.
마지막 hex digit을 4로 나눈 나머지를 보세요.
제출 후 모델 답 보기
`0x3014 mod 4=0`이므로 aligned입니다. `0x3016 mod 4=2`이므로 misaligned이고 byte 범위는 `0x3016–0x3019`입니다.
3. 오류 진단
학생이 ‘주소 `0x1002`는 2의 배수이므로 32-bit word-aligned이고 한 번에 읽힌다’고 썼습니다. 첫 오류와 이 시험 문맥의 올바른 결론을 쓰세요.
word의 Byte 크기와 비교해야 할 배수를 다시 정하세요.
제출 후 모델 답 보기
첫 오류는 4 Byte word에 2의 배수 기준을 사용한 것입니다. `0x1002 mod 4=2`이므로 misaligned이고 `0x1002–0x1005`가 두 block에 걸쳐 이 시험의 RISC-V 가정에서는 exception입니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p3–5 · 공식 해설 p3–6 · SoSe26 Probeklausur 시험 p4 Aufgabe 1e 및 공식 해설 p5의 32-bit word alignment·exception 설명 범위.

