UNIT-SPECIFIC ACTIVE LESSON · 8b-4

Direct-mapped Zugriff #4

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

학습 목표: 현재 Set 1에 다른 tag가 있어도 요청 block이 first visit이면 Conflict가 아니라 Compulsory Miss로 분류하고 replacement를 기록할 수 있다.
공식 근거 범위: Probeklausur.pdf p17 Aufgabe 8b 접근 #4와 공식 해설 p42의 Set 1 replacement: before 0x0111, Tag 0x0444 first visit, Compulsory Miss, after 0x0444.

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

초보자는 `현재 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
  1. 현재 tag와 요청 tag를 비교합니다.

    다르면 현재 cache에서 data를 얻을 수 없습니다.

    종이 산출물: 0x00AA≠0x00BB → Miss

  2. 요청 block의 history를 확인합니다.

    first visit이면 replacement가 있어도 compulsory입니다.

    종이 산출물: unseen → Compulsory Miss

  3. 유일한 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 이름만 외우지 않고, 접근 직전과 직후 상태가 어떻게 달라지는지 한 칸씩 확인합니다.

접근 전Set 1: 0x0111
주소 분해Tag 0x0444, Set 1
Historyfirst visit
판정Compulsory Miss
접근 후Set 1: 0x0444

이제 실제 시험 문제를 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를 가르는 질문을 한 문장으로 만드세요.

제출 후 모델 답 보기

요청한 (tag,set) block을 이 trace에서 과거에 한 번이라도 본 적이 있는가를 묻고, 없으면 Compulsory, 있으면 Conflict Miss로 분류합니다.

2. 변형 문제

8b-4 직후 Tag 0x0111을 Set 1에서 다시 요청하면 result와 after state는 무엇인가요?

제출 후 모델 답 보기

현재 0x0444와 달라 Miss이고 0x0111은 seen이므로 Conflict Miss입니다. after는 Set 1=0x0111입니다.

3. 오류 진단

학생이 `0x0111과 0x0444가 충돌했으므로 Conflict Miss`라고 판정했습니다. 어떤 조건을 빠뜨렸나요?

제출 후 모델 답 보기

0x0444의 seen history를 확인하지 않았습니다. 0x0444는 first visit이므로 현재 line을 교체해도 공식 판정은 Compulsory Miss입니다.

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

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

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

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

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.