왜 이 소문제를 따로 배우는가
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를 쓸 수 있는지 설명하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·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 범위를 건드리나요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
이 RISC-V 문맥에서는 허용되지 않고 exception이 발생합니다. 정렬 제약은 한 word가 두 aligned memory block에 걸쳐 추가 접근·hardware logic이 필요한 상황을 피합니다.
왜 이 답이 되는가
Aligned word는 시작 주소가 word 크기 4 Byte의 배수입니다. 강의/공식 해설의 RISC-V 문맥에서는 misaligned word access가 exception을 일으킵니다. 한 word가 두 정렬 block에 걸치면 hardware와 memory access가 복잡해집니다.
대표 함정
ISA/implementation에 따라 misaligned access 지원이 다릅니다. 모든 CPU에 절대 불가능하다고 일반화하지 마세요.
새 문제로 전이하기
세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 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 설명 범위.

