왜 이 소문제를 따로 배우는가
8c-5는 Set 1에서 spatial locality를 확인합니다. 앞선 8c-2와 같은 원리를 다른 block과 set에 적용해, 규칙이 특정 주소를 외운 결과가 아님을 검증합니다.
이 페이지는 Aufgabe 8의 공통 템플릿이 아니라 8c-5 4-way Cache Zugriff #5에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 8 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- Block Mate
- 같은 cache block에 들어 있는 다른 word address입니다.이 소문제에서: 0x0088과 0x008C는 8-byte block의 두 4-byte word입니다.
- Offset Pair 0/4
- 8-byte block 안의 두 aligned 32-bit word 시작 위치입니다.이 소문제에서: #4는 Offset 0, #5는 Offset 4입니다.
- Set 1 Tag Match
- 요청 Tag 0x004가 Set 1의 어느 way에 이미 존재하는 상태입니다.이 소문제에서: #4 after=[0x004]가 #5 Hit를 만듭니다.
이 소문제 전용 규칙과 종이 작업
주소 차이보다 block base 비교
두 address가 4 Byte 다르더라도 8-byte block base가 같으면 하나의 cache entry를 공유합니다.
종이에: 0x0088과 0x008C 모두 base=0x0088이라고 씁니다.
Same-block Hit는 way를 늘리지 않음
Offset 4 data는 #4 miss 때 이미 같은 block과 함께 들어왔습니다.
종이에: after ways를 `[0x004]`로 유지합니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
Set 1 ways=[0x005]일 때 주소 0x00AC를 접근합니다.
주어진 것
- 0x00A8 block은 이미 적재됨
- Block size=8 Byte
- 4 sets
- block base와 Offset을 구합니다.
0x00AC는 0x00A8 block의 두 번째 word입니다.
종이 산출물: base=0x00A8, Offset=4
- Set과 Tag를 계산합니다.
Block 0x0015는 Set 1, Tag 0x005입니다.
종이 산출물: Set=1, Tag=0x005
- current way와 match해 Hit를 확정합니다.
Tag 0x005가 이미 있어 새 allocation이 필요 없습니다.
종이 산출물: Hit; after=[0x005]
예제 답과 독립 검산 보기
Offset=4, Set=1, Tag=0x005이며 Hit입니다.
독립 검산: 0x00A8과 0x00AC의 block number가 모두 0x0015인지 확인합니다.
이 접근의 cache 상태 전후
Hit/Miss 이름만 외우지 않고, 접근 직전과 직후 상태가 어떻게 달라지는지 한 칸씩 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
주소 0x008C의 Offset/Set/Tag와 Hit/Miss를 구하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
0x008C의 block base와 number를 구합니다.
- 왜 하는가
- 주소를 8-byte 경계로 내리면 #4와 같은 block임을 알 수 있습니다.
- 종이 산출물
- block base=0x0088; block number=0x0011
- 완료 조건
- 0x008C가 0x0088~0x008F 범위에 표시됩니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x8C에서 4를 빼면 직전 8-byte 경계입니다.
이 단계의 대표 오류: 0x008C를 별도 block base로 사용합니다.
block 내부 Byte Offset을 구합니다.
- 왜 하는가
- 0x008C는 base 0x0088에서 4 Byte 떨어진 second word입니다.
- 종이 산출물
- Offset=0x008C mod 8=4
- 완료 조건
- Offset=4가 word 크기 4 Byte와 연결됩니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x8C-0x88을 계산하세요.
이 단계의 대표 오류: 두 번째 word라는 이유로 Offset=1이라고 씁니다.
Block 0x0011의 Set을 계산합니다.
- 왜 하는가
- #4와 동일한 block number라 Set 1을 조회해야 합니다.
- 종이 산출물
- Set=0x0011 mod 4=1
- 완료 조건
- #4의 Set 1 state를 불러왔습니다.
막혔을 때 단계 힌트·대표 오류
힌트: Offset은 set 계산 전에 제거됩니다.
이 단계의 대표 오류: Offset bit 2를 set index에 포함해 Set 3이라고 합니다.
Tag를 계산합니다.
- 왜 하는가
- Set 1의 current way와 비교할 block identifier가 필요합니다.
- 종이 산출물
- Tag=0x008C//32=0x004
- 완료 조건
- Tag가 #4의 0x004와 같음을 표시했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x0088과 0x008C는 같은 32-Byte Tag 영역입니다.
이 단계의 대표 오류: address 끝 C를 Tag에 반영해 0x00C라고 씁니다.
Set 1 ways의 Tag 0x004와 match해 Hit를 판정합니다.
- 왜 하는가
- #4가 같은 block을 적재했으므로 Offset 4 word도 이미 cache에 있습니다.
- 종이 산출물
- before: Set 1 ways=['0x004']; history=seen; Offset=4, Set=1, Tag=0x004, Type=Hit.; after: Set 1 ways=['0x004']
- 완료 조건
- 공식 fields/result와 unchanged state가 기록되어 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: Block 단위 적재는 두 word를 함께 가져옵니다.
이 단계의 대표 오류: Offset이 다르다는 이유로 같은 Tag를 두 번째 way에 중복 저장합니다.
공식 답을 열기 전 마지막 회상
0x008C와 같은 block에 속하는 다른 4-byte word 주소는 무엇인가요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
Offset=4, Set=1, Tag=0x004, Type=Hit.
왜 이 답이 되는가
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. 개념 재구성
8-byte block에서 aligned 32-bit word 두 개의 address와 Offset 관계를 일반식으로 설명하세요.
block base B를 사용하세요.
제출 후 모델 답 보기
Block base가 B이면 첫 word는 address B, Offset 0이고 두 번째 word는 address B+4, Offset 4이며 두 주소는 같은 Set과 Tag를 공유합니다.
2. 변형 문제
Set 1 ways=[0x005]일 때 주소 0x00AC의 fields와 Type을 구하세요.
block base는 0x00A8입니다.
제출 후 모델 답 보기
Block=0x0015, Offset=4, Set=1, Tag=0x005, Type=Hit입니다.
3. 오류 진단
학생이 #4에서 Offset 0만 가져왔으므로 #5의 Offset 4 data는 cache에 없다고 했습니다. block fetch 관점으로 고치세요.
Miss 때 한 word만 가져오는지 8 Byte 전체를 가져오는지 보세요.
제출 후 모델 답 보기
#4 miss는 8-byte block 0x0088~0x008F 전체를 가져옵니다. 따라서 0x008C의 Offset 4 word도 이미 있어 #5는 Hit입니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p18 Aufgabe 8c 접근 #5와 공식 해설 p43–44: Block 0x0011, Offset 4, Set 1, Tag 0x004, seen Hit, ways [0x004] 유지.


