왜 이 소문제를 따로 배우는가
Block 0x0010~0x0013이 Set 0~3을 한 바퀴 채우는 mapping pattern을 완성합니다. 이 패턴을 이해하면 set index와 tag 경계가 단순 암기가 아니라 block number 나눗셈이라는 점이 명확해집니다.
이 페이지는 Aufgabe 8의 공통 템플릿이 아니라 8c-10 4-way Cache Zugriff #10에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 8 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- Block 0x0013
- 주소 0x0098~0x009F를 포함하는 8-byte block입니다.이 소문제에서: 4로 나눈 나머지가 3이어서 Set 3으로 mapping됩니다.
- Set-cycle Completion
- 연속 네 block이 Set 0,1,2,3을 각각 한 번 선택해 한 mapping 주기를 마치는 현상입니다.이 소문제에서: 0x0010~0x0013이 Tag 0x004 아래의 네 set을 채웁니다.
- Cold Set 3
- 이전 #1~#9에서 아직 접근되지 않은 마지막 empty set입니다.이 소문제에서: Tag 0x004의 first visit이 Compulsory Miss를 만듭니다.
이 소문제 전용 규칙과 종이 작업
네 연속 block 뒤 set index wrap
4 sets에서는 block number의 하위 2 bit가 00,01,10,11로 변하며 Set 0~3을 선택합니다.
종이에: 0x10→0, 0x11→1, 0x12→2, 0x13→3 표를 완성합니다.
Set 3의 첫 valid way 사용
다른 set들의 occupancy와 무관하게 Set 3이 empty이므로 replacement 없이 0x004를 넣습니다.
종이에: before `['empty']`, after `['0x004']`를 적습니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
비어 있는 Set 3에 주소 0x00B8을 처음 접근합니다.
주어진 것
- Block size=8 Byte
- 4 sets, 4-way
- Set 3=empty
- block base, number, Offset을 계산합니다.
0x00B8은 aligned block start입니다.
종이 산출물: base=0x00B8, block=0x0017, Offset=0
- Set과 Tag를 계산합니다.
0x17 mod 4=3, 0x17//4=0x005입니다.
종이 산출물: Set=3, Tag=0x005
- first visit을 판정하고 적재합니다.
Set 3이 empty이고 block도 unseen입니다.
종이 산출물: Compulsory Miss; after=[0x005]
예제 답과 독립 검산 보기
Offset=0, Set=3, Tag=0x005이며 Compulsory Miss입니다.
독립 검산: Block 0x0014~0x0017이 Set 0~3을 다시 한 바퀴 도는지 확인합니다.
이 접근의 cache 상태 전후
Hit/Miss 이름만 외우지 않고, 접근 직전과 직후 상태가 어떻게 달라지는지 한 칸씩 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
주소 0x0098의 Offset/Set/Tag와 Hit/Miss를 구하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
0x0098의 block base와 number를 계산합니다.
- 왜 하는가
- 주소가 8-byte aligned라 Block 0x0013을 직접 얻습니다.
- 종이 산출물
- block base=0x0098; block number=0x0013
- 완료 조건
- 0x0098~0x009F를 같은 block 범위로 표시했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x98/8=0x13입니다.
이 단계의 대표 오류: 0x0090 block에 0x0098까지 포함시켜 Block 0x0012로 둡니다.
Byte Offset을 계산합니다.
- 왜 하는가
- block base 자체라 Offset 0이어야 합니다.
- 종이 산출물
- Offset=0x0098 mod 8=0
- 완료 조건
- Offset과 alignment가 일치합니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x98의 하위 3 bit는 000입니다.
이 단계의 대표 오류: 이전 address 0x0094와 차이 4를 현재 Offset으로 사용합니다.
Block 0x0013의 Set index를 계산합니다.
- 왜 하는가
- 하위 block bits 11₂가 마지막 Set 3을 선택합니다.
- 종이 산출물
- Set=0x0013 mod 4=3
- 완료 조건
- Set mapping cycle 0,1,2,3을 완성했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 19 mod 4=3입니다.
이 단계의 대표 오류: 4-way라는 숫자를 mod 계산에 한 번 더 곱해 Set 7 같은 범위 밖 값을 냅니다.
Tag 0x004를 계산합니다.
- 왜 하는가
- Block 0x0010~0x0013은 같은 상위 Tag 영역을 공유합니다.
- 종이 산출물
- Tag=0x0098//32=0x004
- 완료 조건
- (Set 3,Tag 0x004) 쌍을 적었습니다.
막혔을 때 단계 힌트·대표 오류
힌트: Block 0x13//4=0x004입니다.
이 단계의 대표 오류: Block number 0x0013을 그대로 Tag로 씁니다.
Set 3의 empty ways와 first visit을 확인해 적재합니다.
- 왜 하는가
- Set 3에는 valid tag가 없고 Block 0x0013도 처음 요청됩니다.
- 종이 산출물
- before: Set 3 ways=['empty']; history=first visit; Offset=0, Set=3, Tag=0x004, Type=Compulsory Miss.; after: Set 3 ways=['0x004']
- 완료 조건
- 공식 fields/result와 after state가 정확히 기록되어 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: Tag 0x004가 다른 set에 있어도 Set 3은 독립입니다.
이 단계의 대표 오류: Tag 0x004가 cache 어딘가에 있다는 이유로 global Hit라고 합니다.
공식 답을 열기 전 마지막 회상
0x0098와 같은 block에 속하는 다른 4-byte word 주소는 무엇인가요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
Offset=0, Set=3, 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. 개념 재구성
Block 0x0010부터 0x0013까지 Set mapping을 완성하고 모두 같은 Tag를 갖는 이유를 설명하세요.
각 block을 4로 나눈 나머지와 몫을 쓰세요.
제출 후 모델 답 보기
나머지는 0,1,2,3이라 Set 0, Set 1, Set 2, Set 3으로 mapping되고, 각 block을 4로 나눈 몫은 모두 0x004라 같은 Tag 0x004를 가집니다.
2. 변형 문제
빈 Set 3에서 주소 0x00B8을 접근할 때 fields와 Type을 구하세요.
Block number는 0x0017입니다.
제출 후 모델 답 보기
Block=0x0017, Offset=0, Set=3, Tag=0x005, Type=Compulsory Miss입니다.
3. 오류 진단
학생이 0x0098을 0x0090과 같은 block으로 묶어 Set 2 Hit라고 했습니다. 경계 오류를 고치세요.
0x0090 block의 마지막 byte를 구하세요.
제출 후 모델 답 보기
0x0090 block은 0x0090~0x0097에서 끝납니다. 0x0098은 새 Block 0x0013, Set 3, Tag 0x004의 first visit이라 Compulsory Miss입니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p18 Aufgabe 8c 접근 #10과 공식 해설 p43–44: Block 0x0013, Offset 0, Set 3, Tag 0x004, Compulsory Miss, after ways [0x004].


