UNIT-SPECIFIC ACTIVE LESSON · 1e

Alignment와 misaligned word

4의 배수가 아닌 주소에 32-bit word를 쓸 수 있는지 설명하세요.

학습 목표: 32-bit word 주소의 `address mod 4`를 검사해 이 시험의 RISC-V alignment 가정에서 정상 접근과 exception을 판별한다.
공식 근거 범위: SoSe26 Probeklausur 시험 p4 Aufgabe 1e 및 공식 해설 p5의 32-bit word alignment·exception 설명 범위.

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

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을 일으킨다고 가정합니다.
  1. 주소의 4에 대한 나머지를 구합니다.

    word alignment 조건은 시작 주소가 4의 배수인지로 판정합니다.

    종이 산출물: `0x2006 mod 4 = 2`

  2. 접근하는 네 byte 주소를 나열합니다.

    실제로 두 aligned block을 가로지르는지를 확인할 수 있습니다.

    종이 산출물: `0x2006, 0x2007, 0x2008, 0x2009`

  3. 시험 가정에 따른 결과와 이유를 씁니다.

    나머지가 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에 추가 작업을 만드는 이유를 설명하세요.

제출 후 모델 답 보기

N Byte data는 `address mod N = 0`일 때 aligned입니다. 그렇지 않으면 data가 두 aligned block에 걸릴 수 있어 여러 memory access와 결과 결합 logic이 필요합니다.

2. 변형 문제

주소 `0x3014`와 `0x3016`에서 각각 4-Byte word를 읽는다. 각 주소의 alignment를 판별하고 misaligned인 접근의 byte 범위를 적으세요.

제출 후 모델 답 보기

`0x3014 mod 4=0`이므로 aligned입니다. `0x3016 mod 4=2`이므로 misaligned이고 byte 범위는 `0x3016–0x3019`입니다.

3. 오류 진단

학생이 ‘주소 `0x1002`는 2의 배수이므로 32-bit word-aligned이고 한 번에 읽힌다’고 썼습니다. 첫 오류와 이 시험 문맥의 올바른 결론을 쓰세요.

제출 후 모델 답 보기

첫 오류는 4 Byte word에 2의 배수 기준을 사용한 것입니다. `0x1002 mod 4=2`이므로 misaligned이고 `0x1002–0x1005`가 두 block에 걸쳐 이 시험의 RISC-V 가정에서는 exception입니다.

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

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

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

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

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p3–5 · 공식 해설 p3–6 · SoSe26 Probeklausur 시험 p4 Aufgabe 1e 및 공식 해설 p5의 32-bit word alignment·exception 설명 범위.