UNIT-SPECIFIC ACTIVE LESSON · 8b-6

Direct-mapped Zugriff #6

Set 1에 Tag 0x0111가 접근합니다. Hit/Miss type을 판정하세요.

학습 목표: Set 1에서 현재 0x0444와 다른 Tag 0x0111이 요청되고 그 block이 seen인 상황을 Conflict Miss로 판정해 교체할 수 있다.
공식 근거 범위: Probeklausur.pdf p17 Aufgabe 8b 접근 #6과 공식 해설 p42의 첫 Conflict Miss: before Set 1=0x0444, Tag 0x0111 seen, after 0x0111.

왜 이 소문제를 따로 배우는가

이 접근은 direct-mapped conflict의 첫 명확한 예입니다. 0x0111은 이전에 가져왔지만 같은 set의 0x0444에 밀려 현재 없으므로, cache 용량이 남아 보여도 mapping 제한 때문에 miss가 납니다.

이 페이지는 Aufgabe 8의 공통 템플릿이 아니라 8b-6 Direct-mapped Zugriff #6에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 8 개념 수업을 먼저 읽으세요.

이 소문제에서 실제로 쓰는 용어

정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.

Conflict Miss
과거에 본 block이 같은 set으로 mapping된 다른 block에 의해 밀려나 재접근 시 발생하는 miss입니다.이 소문제에서: 0x0111은 #1에서 seen이지만 #4의 0x0444에 밀려 현재 Set 1에 없습니다.
Mapping Collision
서로 다른 tag가 동일한 direct-mapped set을 요구하는 현상입니다.이 소문제에서: 0x0111과 0x0444가 모두 Set 1을 사용합니다.
Persistent History
block이 cache에서 eviction되어도 과거에 보았다는 기록은 유지되는 분석 정보입니다.이 소문제에서: 현재 0x0111이 없어도 seen=true여서 compulsory가 아닙니다.

이 소문제 전용 규칙과 종이 작업

Mismatch plus seen은 Conflict

current tag와 요청 tag가 달라 Miss이고, 요청 block이 history에 있으면 direct-mapped 교체로 인한 Conflict Miss입니다.

종이에: `0x0444≠0x0111`과 `seen=yes`를 나란히 적습니다.

재접근 block이 다시 line을 차지

Miss 처리 후 요청한 0x0111이 Set 1의 0x0444를 역으로 eviction합니다.

종이에: `Set 1: 0x0444 → 0x0111`을 기록합니다.

Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.

이 소문제 전용 작은 예제

Set 2에 0x00BB가 현재 있고, 이전에 보았다가 밀려난 Tag 0x00AA를 Set 2에서 다시 요청합니다.

주어진 것

  • before: Set 2=0x00BB
  • (0x00AA,2)는 seen
  • Direct-mapped
  1. 0x00BB와 0x00AA를 비교합니다.

    현재 line에 요청 block이 없음을 확인합니다.

    종이 산출물: mismatch → Miss

  2. 0x00AA의 history를 확인합니다.

    seen block의 miss는 first visit이 아닙니다.

    종이 산출물: seen=yes → Conflict Miss

  3. Set 2를 0x00AA로 교체합니다.

    요청 block을 가져오면 유일한 line을 차지합니다.

    종이 산출물: after: Set 2=0x00AA

예제 답과 독립 검산 보기

Conflict Miss이며 0x00BB가 eviction되고 0x00AA가 남습니다.

독립 검산: 같은 set의 두 tag를 번갈아 요청하면 매번 conflict가 날 수 있는지 trace합니다.

이 접근의 cache 상태 전후

Hit/Miss 이름만 외우지 않고, 접근 직전과 직후 상태가 어떻게 달라지는지 한 칸씩 확인합니다.

접근 전Set 1: 0x0444
주소 분해Tag 0x0111, Set 1
Historyseen
판정Conflict Miss
접근 후Set 1: 0x0111

이제 실제 시험 문제를 micro-work로 풀기

공식 시험이 요구하는 것

Set 1에 Tag 0x0111가 접근합니다. Hit/Miss type을 판정하세요.

공식 답을 보기 전, 내 답 먼저 남기기

완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.

각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.

8b-4가 만든 Set 1의 current state를 가져옵니다.

왜 하는가
#5는 Set 3 Hit라 Set 1을 바꾸지 않았습니다.
종이 산출물
before: Set 1=0x0444
완료 조건
#4 after=0x0444가 #6 before에 복사되어 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 직전 접근의 set 번호는 3입니다.

이 단계의 대표 오류: #5의 0x0222를 Set 1의 current tag로 잘못 옮깁니다.

current 0x0444와 요청 0x0111을 비교합니다.

왜 하는가
tag mismatch로 현재 cache lookup은 Miss입니다.
종이 산출물
0x0444≠0x0111 → Miss
완료 조건
Miss의 원인이 Set 1 tag mismatch로 남았습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 현재 tag와 요청 tag의 앞 네 hex digit를 직접 대조하세요.

이 단계의 대표 오류: 0x0111을 과거에 봤다는 이유로 현재도 있다고 가정해 Hit라고 합니다.

(0x0111, Set 1)의 history를 확인합니다.

왜 하는가
#1에서 이미 접근했으므로 이 Miss는 first visit이 아닙니다.
종이 산출물
history: seen at #1 → Conflict Miss
완료 조건
seen 근거가 접근 번호 #1과 함께 적혀 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: trace의 첫 tag를 다시 보세요.

이 단계의 대표 오류: 현재 line에 없다는 이유로 history에서도 지워졌다고 생각해 Compulsory Miss라 합니다.

Set 1을 요청 Tag 0x0111로 갱신합니다.

왜 하는가
Miss servicing 후 재방문 block이 direct-mapped line을 다시 차지합니다.
종이 산출물
after: Set 1=0x0111; result=Conflict Miss
완료 조건
0x0444 eviction과 0x0111 설치가 모두 보입니다.
막혔을 때 단계 힌트·대표 오류

힌트: 요청한 block이 after tag입니다.

이 단계의 대표 오류: Conflict를 판정하고도 after를 0x0444로 유지합니다.

공식 답을 열기 전 마지막 회상

이 접근 직후 해당 set에는 어떤 tag가 남나요?

내 풀이 후 공식 결론·이유·대표 함정 확인

공식 결론

Conflict Miss

왜 이 답이 되는가

Direct-mapped cache는 set마다 tag 하나만 보관합니다. 현재 tag가 같으면 Hit, 처음 보는 block이면 Compulsory Miss, 전에 봤지만 같은 set의 다른 tag에 밀렸다면 Conflict Miss입니다.

대표 함정

Miss를 판정한 뒤 cache state를 갱신하지 않으면 다음 접근이 연쇄적으로 틀립니다.

새 문제로 전이하기

세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.

1. 개념 재구성

0x0111이 current cache에는 없지만 first visit도 아닌 이유를 접근 번호와 함께 설명하세요.

제출 후 모델 답 보기

0x0111은 #1에서 처음 들어왔지만 #4의 first-visit 0x0444가 같은 Set 1을 차지하며 eviction했습니다. 따라서 #6에서 current에는 없고 history에는 있습니다.

2. 변형 문제

8b-6 직후 Set 1에 Tag 0x0444를 다시 요청하면 result와 after를 구하세요.

제출 후 모델 답 보기

current mismatch이고 0x0444가 seen이므로 Conflict Miss입니다. after는 Set 1=0x0444입니다.

3. 오류 진단

학생이 `0x0111이 cache에 없으므로 처음 보는 block이고 Compulsory Miss`라고 했습니다. current state와 history를 구분해 고치세요.

제출 후 모델 답 보기

0x0111은 #1에서 seen이지만 #4에서 eviction되었습니다. current에는 없어 Miss이나 history에는 있으므로 Conflict Miss입니다.

이 소문제를 끝냈다고 말할 수 있는 기준

이 소문제의 정확한 공식 페이지와 대조하기

왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.

8b-6 관련 공식 시험 또는 해설 페이지
exam-p17.png · 클릭해 원본 크기로 확인
8b-6 관련 공식 시험 또는 해설 페이지
solution-p42.png · 클릭해 원본 크기로 확인

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p17 Aufgabe 8b 접근 #6과 공식 해설 p42의 첫 Conflict Miss: before Set 1=0x0444, Tag 0x0111 seen, after 0x0111.