왜 이 소문제를 따로 배우는가
0x0088은 0x0080 block 바로 다음 8-byte block입니다. 주소가 8만 증가하면 Tag는 유지되면서 Set이 0에서 1로 이동하는 field 변화를 이해하는 좋은 경계 사례입니다.
이 페이지는 Aufgabe 8의 공통 템플릿이 아니라 8c-4 4-way Cache Zugriff #4에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 8 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- Next Block Boundary
- 이전 8-byte block이 끝나고 새로운 block이 시작되는 주소입니다.이 소문제에서: 0x0088은 0x0080~0x0087 다음 block의 base입니다.
- Set Rotation
- 연속 block number가 set count를 따라 다음 set으로 mapping되는 현상입니다.이 소문제에서: Block 0x0010은 Set 0, Block 0x0011은 Set 1입니다.
- Shared Tag Region
- 여러 인접 set의 block이 같은 상위 Tag 값을 가질 수 있는 주소 영역입니다.이 소문제에서: 0x0080 block과 0x0088 block 모두 Tag 0x004지만 Set이 다릅니다.
이 소문제 전용 규칙과 종이 작업
Tag만으로 block을 식별하지 않음
0x0080과 0x0088은 Tag 0x004를 공유하지만 Set 0과 Set 1에 각각 위치해 서로 다른 block입니다.
종이에: 항상 `(Set,Tag)`를 쌍으로 써서 `(0,0x004)`와 `(1,0x004)`를 구분합니다.
새 set의 state는 독립
Set 0에 두 tag가 있어도 Set 1은 아직 empty이므로 #4는 first-visit allocation입니다.
종이에: Set 1의 before ways를 `['empty']`로 별도 기록합니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
비어 있는 4-way cache에서 주소 0x00A8을 접근합니다.
주어진 것
- Block size=8 Byte
- 4 sets
- Set 1=empty
- block base/number와 offset을 구합니다.
0x00A8은 8-byte aligned입니다.
종이 산출물: base=0x00A8, block=0x0015, Offset=0
- Set과 Tag를 구합니다.
0x15 mod 4=1이고 0x15//4=0x005입니다.
종이 산출물: Set=1, Tag=0x005
- 빈 Set 1에 tag를 적재합니다.
first visit이고 matching way가 없습니다.
종이 산출물: Compulsory Miss; after=[0x005]
예제 답과 독립 검산 보기
Offset=0, Set=1, Tag=0x005이며 Compulsory Miss입니다.
독립 검산: 바로 이전 block 0x00A0과 Tag는 같고 Set만 0→1로 바뀌는지 확인합니다.
이 접근의 cache 상태 전후
Hit/Miss 이름만 외우지 않고, 접근 직전과 직후 상태가 어떻게 달라지는지 한 칸씩 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
주소 0x0088의 Offset/Set/Tag와 Hit/Miss를 구하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
0x0088의 block base와 block number를 계산합니다.
- 왜 하는가
- 새 8-byte 경계에서 시작하므로 이전 0x0080 block과 분리해야 합니다.
- 종이 산출물
- block base=0x0088; block number=0x0011
- 완료 조건
- 0x0088~0x008F를 하나의 새 block으로 표시했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x88은 8로 나누어떨어집니다.
이 단계의 대표 오류: 0x0088을 0x0080 block 범위에 포함시킵니다.
block 내부 Offset을 계산합니다.
- 왜 하는가
- block base 자체를 접근하므로 하위 3 bit가 모두 0입니다.
- 종이 산출물
- Offset=0x0088 mod 8=0
- 완료 조건
- Offset=0이 block boundary 판단과 일치합니다.
막혔을 때 단계 힌트·대표 오류
힌트: 주소와 block base가 같습니다.
이 단계의 대표 오류: 0x0080에서 8 떨어졌다는 이유로 Offset=8이라고 씁니다.
Block 0x0011의 Set index를 구합니다.
- 왜 하는가
- 4 sets에서 연속 block은 다음 Set 1로 mapping됩니다.
- 종이 산출물
- Set=0x0011 mod 4=1
- 완료 조건
- Set 1 행을 lookup 대상으로 선택했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x11의 하위 2 bit는 01입니다.
이 단계의 대표 오류: 이전 block과 Tag가 같아서 Set도 0이라고 합니다.
주소의 상위 부분에서 Tag를 구합니다.
- 왜 하는가
- Set 1 내부의 block identity를 결정합니다.
- 종이 산출물
- Tag=0x0088//32=0x004
- 완료 조건
- Tag 0x004와 Set 1을 쌍으로 적었습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x80~0x9F 범위는 같은 Tag 0x004 영역입니다.
이 단계의 대표 오류: Set 1 값을 Tag의 하위에 붙여 0x0041이라고 씁니다.
Set 1의 empty ways와 history를 확인해 첫 block을 적재합니다.
- 왜 하는가
- Set 1은 아직 비어 있고 Block 0x0011도 first visit입니다.
- 종이 산출물
- before: Set 1 ways=['empty']; history=first visit; Offset=0, Set=1, Tag=0x004, Type=Compulsory Miss.; after: Set 1 ways=['0x004']
- 완료 조건
- 공식 fields/result와 after state가 완전히 기록되어 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: Set 0의 tags는 Set 1 lookup에 참여하지 않습니다.
이 단계의 대표 오류: Set 0에 이미 Tag 0x004가 있다는 이유로 Set 1 접근도 Hit라고 합니다.
공식 답을 열기 전 마지막 회상
0x0088와 같은 block에 속하는 다른 4-byte word 주소는 무엇인가요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
Offset=0, Set=1, Tag=0x004, Type=Compulsory Miss.
왜 이 답이 되는가
Block size 8 Byte이므로 하위 3 bit가 block offset입니다. 4 sets이므로 다음 2 bit가 set index, 나머지 상위 bit가 tag입니다. 같은 8-byte block의 두 word는 offset 0과 4로 함께 cache에 들어옵니다.
대표 함정
Word 주소가 달라도 같은 8-byte block이면 두 번째 word는 Hit일 수 있습니다.
새 문제로 전이하기
세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.
1. 개념 재구성
같은 Tag 0x004를 가진 0x0080 block과 0x0088 block이 왜 서로 다른 cache block인지 설명하세요.
Tag만 말하지 말고 Set index를 함께 쓰세요.
제출 후 모델 답 보기
0x0080은 Block 0x0010으로 Set 0, Tag 0x004이고 0x0088은 Block 0x0011로 Set 1, Tag 0x004입니다. (Set,Tag) 쌍이 달라 서로 다른 block입니다.
2. 변형 문제
빈 cache에서 주소 0x00A8을 접근할 때 fields와 Type을 구하세요.
Block number는 0x0015입니다.
제출 후 모델 답 보기
Block=0x0015, Offset=0, Set=1, Tag=0x005, Type=Compulsory Miss입니다.
3. 오류 진단
학생이 Set 0에 Tag 0x004가 있으므로 0x0088도 Hit라고 했습니다. 비교 단위를 고치세요.
어느 set의 ways를 검색해야 하나요?
제출 후 모델 답 보기
0x0088은 Set 1로 mapping되므로 Set 0의 Tag 0x004는 비교 대상이 아닙니다. Set 1은 empty라 Compulsory Miss입니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p18 Aufgabe 8c 접근 #4와 공식 해설 p43–44: Block 0x0011, Offset 0, Set 1, Tag 0x004, Compulsory Miss, after ways [0x004].


