왜 이 소문제를 따로 배우는가
초보자는 `현재 tag가 다르다`만 보고 모든 교체 miss를 Conflict라고 부르기 쉽습니다. Miss type은 현재 충돌과 별도로 요청 block의 과거 방문 여부를 확인해야 정확합니다.
이 페이지는 Aufgabe 8의 공통 템플릿이 아니라 8b-4 Direct-mapped Zugriff #4에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 8 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- Tag Mismatch
- 선택된 set의 현재 tag와 요청 tag가 서로 다른 상태입니다.이 소문제에서: Set 1의 0x0111과 요청 0x0444가 달라 Miss가 발생합니다.
- First-Visit Replacement
- 처음 보는 block이 이미 차 있는 direct-mapped line을 교체하는 상황입니다.이 소문제에서: 0x0444는 first visit이므로 교체가 일어나도 Compulsory Miss입니다.
- Eviction
- 새 block을 넣기 위해 현재 cache line의 block을 제거하는 동작입니다.이 소문제에서: 0x0444가 들어오면서 Set 1의 0x0111이 eviction됩니다.
이 소문제 전용 규칙과 종이 작업
Miss 여부와 Miss subtype을 두 단계로 분리
현재 tag 불일치는 Miss만 결정하고, Compulsory/Conflict는 seen history가 결정합니다.
종이에: `0x0111≠0x0444 → Miss`, `unseen → Compulsory`를 두 줄로 씁니다.
Direct-mapped replacement는 즉시
Set 1에 way가 하나뿐이므로 새 tag 0x0444가 기존 0x0111을 대체합니다.
종이에: before와 after를 `0x0111 → 0x0444`로 연결합니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
Set 4에 0x00AA가 있고, 처음 보는 Tag 0x00BB가 Set 4로 접근합니다.
주어진 것
- before: Set 4=0x00AA
- (0x00BB,4)는 first visit
- Direct-mapped
- 현재 tag와 요청 tag를 비교합니다.
다르면 현재 cache에서 data를 얻을 수 없습니다.
종이 산출물: 0x00AA≠0x00BB → Miss
- 요청 block의 history를 확인합니다.
first visit이면 replacement가 있어도 compulsory입니다.
종이 산출물: unseen → Compulsory Miss
- 유일한 line을 요청 tag로 교체합니다.
Direct-mapped set에는 두 tag를 동시에 둘 수 없습니다.
종이 산출물: after: Set 4=0x00BB
예제 답과 독립 검산 보기
Compulsory Miss이며 0x00AA가 eviction되고 Set 4에는 0x00BB가 남습니다.
독립 검산: 0x00AA를 다시 요청하면 seen history에는 있지만 current에는 없으므로 Conflict Miss가 되는지 확인합니다.
이 접근의 cache 상태 전후
Hit/Miss 이름만 외우지 않고, 접근 직전과 직후 상태가 어떻게 달라지는지 한 칸씩 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
Set 1에 Tag 0x0444가 접근합니다. Hit/Miss type을 판정하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
8b-1 이후 유지된 Set 1의 현재 tag를 읽습니다.
- 왜 하는가
- 이번 접근 직전의 비교 대상은 0x0111입니다.
- 종이 산출물
- before: Set 1=0x0111
- 완료 조건
- #1의 after가 #4의 before로 이어져 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: #2와 #3은 각각 Set 3과 Set 5만 바꿨습니다.
이 단계의 대표 오류: 중간 접근이 있었다는 이유로 Set 1도 empty가 되었다고 가정합니다.
현재 0x0111과 요청 0x0444를 비교합니다.
- 왜 하는가
- 같지 않으므로 현재 cache line에서 요청 block을 찾지 못합니다.
- 종이 산출물
- 0x0111≠0x0444 → Miss
- 완료 조건
- Miss의 직접 근거가 tag mismatch로 적혀 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 두 tag를 16진 문자열 전체로 비교하세요.
이 단계의 대표 오류: 둘 다 Set 1에 mapping된다는 이유로 Hit라고 합니다.
(0x0444, Set 1)의 과거 방문 여부를 확인합니다.
- 왜 하는가
- 현재 다른 tag가 있다는 사실만으로 Conflict Miss라고 할 수 없습니다.
- 종이 산출물
- history: first visit → Compulsory Miss
- 완료 조건
- 0x0444가 앞선 #1~#3에 없다는 점을 확인했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 앞서 본 tag 목록은 0x0111, 0x0222, 0x0333입니다.
이 단계의 대표 오류: replacement가 발생한다는 이유만으로 Conflict Miss라고 분류합니다.
Set 1의 0x0111을 0x0444로 교체합니다.
- 왜 하는가
- Direct-mapped Set 1의 한 line에 새 block을 저장해야 합니다.
- 종이 산출물
- after: Set 1=0x0444; result=Compulsory Miss
- 완료 조건
- evicted=0x0111과 after=0x0444가 명확히 구분되어 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 새 요청 tag가 after state가 됩니다.
이 단계의 대표 오류: 두 tag를 동시에 Set 1에 남겨 set-associative cache처럼 처리합니다.
공식 답을 열기 전 마지막 회상
이 접근 직후 해당 set에는 어떤 tag가 남나요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
Compulsory Miss
왜 이 답이 되는가
Direct-mapped cache는 set마다 tag 하나만 보관합니다. 현재 tag가 같으면 Hit, 처음 보는 block이면 Compulsory Miss, 전에 봤지만 같은 set의 다른 tag에 밀렸다면 Conflict Miss입니다.
대표 함정
Miss를 판정한 뒤 cache state를 갱신하지 않으면 다음 접근이 연쇄적으로 틀립니다.
새 문제로 전이하기
세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.
1. 개념 재구성
tag mismatch가 발생한 뒤 Compulsory와 Conflict를 가르는 질문을 한 문장으로 만드세요.
현재 cache가 아니라 전체 history에 묻는 질문입니다.
제출 후 모델 답 보기
요청한 (tag,set) block을 이 trace에서 과거에 한 번이라도 본 적이 있는가를 묻고, 없으면 Compulsory, 있으면 Conflict Miss로 분류합니다.
2. 변형 문제
8b-4 직후 Tag 0x0111을 Set 1에서 다시 요청하면 result와 after state는 무엇인가요?
0x0111은 current에는 없지만 history에는 있습니다.
제출 후 모델 답 보기
현재 0x0444와 달라 Miss이고 0x0111은 seen이므로 Conflict Miss입니다. after는 Set 1=0x0111입니다.
3. 오류 진단
학생이 `0x0111과 0x0444가 충돌했으므로 Conflict Miss`라고 판정했습니다. 어떤 조건을 빠뜨렸나요?
Miss subtype의 이름은 요청 block의 과거를 기준으로 합니다.
제출 후 모델 답 보기
0x0444의 seen history를 확인하지 않았습니다. 0x0444는 first visit이므로 현재 line을 교체해도 공식 판정은 Compulsory Miss입니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p17 Aufgabe 8b 접근 #4와 공식 해설 p42의 Set 1 replacement: before 0x0111, Tag 0x0444 first visit, Compulsory Miss, after 0x0444.

