왜 이 소문제를 따로 배우는가
Set 1에도 두 개의 서로 다른 Tag 0x004와 0x008이 공존할 수 있음을 보여 줍니다. 4-way associativity를 주소 계산과 실제 state update에 다시 적용하는 접근입니다.
이 페이지는 Aufgabe 8의 공통 템플릿이 아니라 8c-9 4-way Cache Zugriff #9에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 8 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- Block 0x0021
- 주소 0x0108~0x010F를 포함하는 8-byte block number입니다.이 소문제에서: 하위 set bits가 1이고 상위 Tag는 0x008입니다.
- Second Allocation in Set 1
- 이미 한 way가 사용 중인 set의 다음 빈 way에 새 tag를 넣는 동작입니다.이 소문제에서: 기존 0x004 옆에 새 0x008을 추가합니다.
- No Replacement Yet
- Set의 associativity만큼 way가 차지 않아 victim을 선택할 필요가 없는 상태입니다.이 소문제에서: Set 1은 4-way 중 두 way만 사용하므로 0x004를 유지합니다.
이 소문제 전용 규칙과 종이 작업
Set 동일, Tag 다름을 별도 block으로 처리
0x0108은 Set 1이지만 기존 0x004와 Tag 0x008이 달라 현재 ways에서 Miss입니다.
종이에: `0x008 not in [0x004]`를 적습니다.
Free way 우선 allocation
4-way Set 1에 빈 칸이 있으므로 replacement policy를 적용하지 않고 새 tag를 추가합니다.
종이에: after를 `[0x004,0x008]`로 확장합니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
Set 1 ways=[0x005]일 때 처음 보는 주소 0x0128을 접근합니다.
주어진 것
- 8-byte blocks, 4 sets, 4-way
- before Set 1=[0x005]
- 0x0128 first visit
- 주소 field를 계산합니다.
0x0128//8=0x0025를 Set/Tag로 나눕니다.
종이 산출물: Offset=0, Set=1, Tag=0x009
- 기존 way와 tag를 비교합니다.
0x009가 [0x005]에 없어 Miss입니다.
종이 산출물: mismatch; first visit
- free second way에 추가합니다.
4-way capacity가 남아 있습니다.
종이 산출물: Compulsory Miss; after=[0x005,0x009]
예제 답과 독립 검산 보기
Offset=0, Set=1, Tag=0x009이고 Compulsory Miss이며 기존 tag를 유지합니다.
독립 검산: after 목록 길이가 2이고 최대 way 수 4를 넘지 않는지 확인합니다.
이 접근의 cache 상태 전후
Hit/Miss 이름만 외우지 않고, 접근 직전과 직후 상태가 어떻게 달라지는지 한 칸씩 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
주소 0x0108의 Offset/Set/Tag와 Hit/Miss를 구하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
0x0108의 block base와 number를 계산합니다.
- 왜 하는가
- 0x0108은 새 8-byte block의 시작 주소입니다.
- 종이 산출물
- block base=0x0108; block number=0x0021
- 완료 조건
- 0x0108~0x010F를 하나의 block으로 묶었습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x108/8=0x21입니다.
이 단계의 대표 오류: 0x0100 block에 포함시켜 Block 0x0020으로 둡니다.
Offset을 계산합니다.
- 왜 하는가
- 주소가 block base와 같아 하위 3 bit가 0입니다.
- 종이 산출물
- Offset=0x0108 mod 8=0
- 완료 조건
- Offset=0이 alignment와 일치합니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x108은 8의 배수입니다.
이 단계의 대표 오류: 0x0100에서 8 떨어졌다는 이유로 Offset=8이라고 합니다.
Block 0x0021의 Set index를 구합니다.
- 왜 하는가
- 하위 2 block bits가 01이라 Set 1을 조회합니다.
- 종이 산출물
- Set=0x0021 mod 4=1
- 완료 조건
- Set 1의 current ways=[0x004]를 불러왔습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 33 mod 4=1입니다.
이 단계의 대표 오류: Tag 0x008만 보고 Set 0이라고 합니다.
Tag 0x008을 계산합니다.
- 왜 하는가
- Set 1의 기존 0x004와 새 block을 구분합니다.
- 종이 산출물
- Tag=0x0108//32=0x008
- 완료 조건
- 0x008이 current [0x004]에 없음을 표시했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: Block 0x21//4=0x008입니다.
이 단계의 대표 오류: Block 0x0021 전체를 Tag로 사용합니다.
Set 1 ways를 검색하고 first-visit block을 free way에 추가합니다.
- 왜 하는가
- 0x008은 current에 없고 first visit이지만 Set 1에는 빈 way가 세 개 남아 있습니다.
- 종이 산출물
- before: Set 1 ways=['0x004']; history=first visit; Offset=0, Set=1, Tag=0x008, Type=Compulsory Miss.; after: Set 1 ways=['0x004', '0x008']
- 완료 조건
- 공식 fields/result와 기존 tag를 보존한 after가 기록되어 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 4-way에서는 두 번째 tag가 첫 번째를 즉시 밀어내지 않습니다.
이 단계의 대표 오류: Direct-mapped처럼 after를 [0x008]만 남깁니다.
공식 답을 열기 전 마지막 회상
0x0108와 같은 block에 속하는 다른 4-byte word 주소는 무엇인가요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
Offset=0, Set=1, Tag=0x008, 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. 개념 재구성
Set 1이 [0x004]에서 [0x004,0x008]로 변할 때 replacement가 필요 없는 이유를 설명하세요.
현재 사용 way 수와 associativity를 비교하세요.
제출 후 모델 답 보기
Set 1은 4-way인데 접근 전 valid tag가 0x004 하나뿐이라 free way가 세 개 있습니다. 따라서 0x008을 추가하고 0x004를 유지합니다.
2. 변형 문제
Set 1 ways=[0x005]일 때 주소 0x0128의 fields, Type, after를 구하세요.
Block number는 0x0025입니다.
제출 후 모델 답 보기
Block=0x0025, Offset=0, Set=1, Tag=0x009, Type=Compulsory Miss, after=[0x005,0x009]입니다.
3. 오류 진단
학생이 Set 1의 기존 0x004와 새 0x008이 다르므로 0x004를 eviction했습니다. 어떤 조건을 확인하지 않았나요?
Miss 뒤 replacement는 set이 언제 필요로 하나요?
제출 후 모델 답 보기
Set 1의 free way 존재 여부를 확인하지 않았습니다. 4-way 중 한 way만 차 있어 after는 [0x004,0x008]이며 eviction은 없습니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p18 Aufgabe 8c 접근 #9와 공식 해설 p43–44: Block 0x0021, Offset 0, Set 1, Tag 0x008, Compulsory Miss, after ways [0x004,0x008].


