왜 이 소문제를 따로 배우는가
Direct-mapped Cache의 대표적인 약점은 충분한 전체 공간이 있어도 같은 set에 mapping된 두 block이 반복해서 충돌하는 것입니다. 이 접근은 단일 순간보다 전체 trace pattern을 읽는 능력을 검사합니다.
이 페이지는 Aufgabe 8의 공통 템플릿이 아니라 8b-8 Direct-mapped Zugriff #8에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 8 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- Ping-pong Conflict
- 같은 set을 요구하는 두 block이 번갈아 서로를 eviction해 반복 miss를 만드는 pattern입니다.이 소문제에서: Set 1에서 0x0111과 0x0444가 #4, #6, #8에 교대로 들어옵니다.
- Revisited Tag 0x0444
- 과거 #4에서 접근했지만 현재는 #6의 0x0111에 밀려난 block입니다.이 소문제에서: seen=true이므로 #8의 miss subtype은 Conflict입니다.
- Current-vs-Seen Split
- 현재 line 보유 여부와 과거 방문 여부가 서로 다른 상태를 가질 수 있다는 구분입니다.이 소문제에서: 0x0444는 current=false, seen=true입니다.
이 소문제 전용 규칙과 종이 작업
재등장 tag의 최초 접근 번호 찾기
history에 같은 (tag,set)이 있으면 현재 mismatch의 subtype을 Conflict로 정할 수 있습니다.
종이에: 0x0444 옆에 `seen at #4`를 적습니다.
각 conflict 뒤 current tag 뒤집기
Miss servicing 후 요청 block이 line을 차지하므로 ping-pong trace에서 current가 매번 바뀝니다.
종이에: `#6:0111 → #8:0444` 전이를 표시합니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
Set 0에서 Tag A를 본 뒤 Tag B가 A를 밀어냈고, 다시 A를 요청합니다.
주어진 것
- history={A,B}
- before: Set 0=B
- request=A
- B와 A의 mismatch를 확인합니다.
A가 현재 line에 없으므로 Miss입니다.
종이 산출물: B≠A → Miss
- A가 history에 있음을 찾습니다.
재방문 block이므로 compulsory가 아닙니다.
종이 산출물: A seen → Conflict Miss
- A로 line을 다시 교체합니다.
요청 처리 후 A가 current가 됩니다.
종이 산출물: after: Set 0=A
예제 답과 독립 검산 보기
Conflict Miss이며 A가 B를 밀어내고 Set 0에 다시 들어옵니다.
독립 검산: 다음 B 요청도 같은 이유로 Conflict Miss가 되는 대칭성을 확인합니다.
이 접근의 cache 상태 전후
Hit/Miss 이름만 외우지 않고, 접근 직전과 직후 상태가 어떻게 달라지는지 한 칸씩 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
Set 1에 Tag 0x0444가 접근합니다. Hit/Miss type을 판정하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
#6 이후 Set 1의 current tag를 읽습니다.
- 왜 하는가
- #6의 Conflict Miss가 0x0111을 다시 설치했고 #7은 Set 5만 바꿨습니다.
- 종이 산출물
- before: Set 1=0x0111
- 완료 조건
- #6 after와 #8 before가 일치합니다.
막혔을 때 단계 힌트·대표 오류
힌트: #7의 set index는 5입니다.
이 단계의 대표 오류: #4의 0x0444를 오래된 표에서 그대로 가져와 Hit라고 합니다.
current 0x0111과 요청 0x0444를 비교합니다.
- 왜 하는가
- 두 tag가 달라 현재 lookup은 Miss입니다.
- 종이 산출물
- 0x0111≠0x0444 → Miss
- 완료 조건
- mismatch가 명시되어 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 현재 state는 가장 최근 같은 set 접근 결과를 사용합니다.
이 단계의 대표 오류: 0x0444를 이전에 봤다는 사실을 current 보유와 혼동합니다.
0x0444의 최초 접근 #4를 history에서 찾습니다.
- 왜 하는가
- 요청 block이 seen이면 이번 Miss는 Conflict입니다.
- 종이 산출물
- history: seen at #4 → Conflict Miss
- 완료 조건
- 재방문 근거가 구체적인 접근 번호와 연결됩니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x0444가 처음 Set 1에 들어온 행을 찾으세요.
이 단계의 대표 오류: 현재 없으므로 unseen이라고 판단해 Compulsory Miss라 합니다.
Set 1을 0x0444로 다시 갱신합니다.
- 왜 하는가
- Conflict Miss 처리 후 요청 block이 유일한 line을 차지합니다.
- 종이 산출물
- after: Set 1=0x0444; result=Conflict Miss
- 완료 조건
- 0x0111 eviction과 0x0444 설치가 기록되어 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: ping-pong의 다음 상태는 요청 tag입니다.
이 단계의 대표 오류: Conflict라고만 적고 after를 0x0111로 유지합니다.
공식 답을 열기 전 마지막 회상
이 접근 직후 해당 set에는 어떤 tag가 남나요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
Conflict Miss
왜 이 답이 되는가
Direct-mapped cache는 set마다 tag 하나만 보관합니다. 현재 tag가 같으면 Hit, 처음 보는 block이면 Compulsory Miss, 전에 봤지만 같은 set의 다른 tag에 밀렸다면 Conflict Miss입니다.
대표 함정
Miss를 판정한 뒤 cache state를 갱신하지 않으면 다음 접근이 연쇄적으로 틀립니다.
새 문제로 전이하기
세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.
1. 개념 재구성
Set 1의 #1, #4, #6, #8 current tag sequence와 각 miss subtype을 시간순으로 복원하세요.
0111과 0444가 번갈아 들어옵니다.
제출 후 모델 답 보기
#1 0111 Compulsory, #4 0444 Compulsory, #6 0111 Conflict, #8 0444 Conflict이며 current는 0111과 0444가 번갈아 0111→0444→0111→0444로 바뀝니다.
2. 변형 문제
8b-8 직후 Set 1에서 0x0111을 다시 요청하면 result와 after를 예측하세요.
현재는 0x0444이고 0x0111은 seen입니다.
제출 후 모델 답 보기
현재 0x0444와 요청 0x0111이 mismatch이고 0x0111이 seen이므로 Conflict Miss이며 after는 Set 1=0x0111입니다.
3. 오류 진단
학생이 `0x0444는 전에 본 적 있으므로 Hit`라고 썼습니다. seen과 current를 구분해 고치세요.
Hit는 history가 아니라 접근 직전 line과 비교합니다.
제출 후 모델 답 보기
seen은 miss subtype에만 쓰이며 current Set 1은 0x0111입니다. 0x0444와 mismatch이므로 Conflict Miss입니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p17 Aufgabe 8b 접근 #8과 공식 해설 p42의 Set 1 ping-pong conflict: before 0x0111, Tag 0x0444 seen, Conflict Miss, after 0x0444.

