UNIT-SPECIFIC ACTIVE LESSON · 8b-10

Direct-mapped Zugriff #10

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

학습 목표: Set 3에 오래 유지되던 0x0222와 처음 등장한 0x0666을 비교해, occupied line의 새 block 접근을 Compulsory Miss로 처리할 수 있다.
공식 근거 범위: Probeklausur.pdf p17 Aufgabe 8b 접근 #10과 공식 해설 p42의 Set 3 새 tag 접근: before 0x0222, Tag 0x0666 first visit, Compulsory Miss, after 0x0666.

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

같은 block의 이전 Hit가 있었더라도 새로운 tag의 첫 방문은 여전히 Compulsory입니다. 이 접근은 cache line의 나이와 요청 block의 history를 혼동하지 않는지 검사합니다.

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

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

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

Long-lived Current Tag
여러 접근 동안 교체되지 않고 같은 set에 남아 있던 tag입니다.이 소문제에서: 0x0222는 #2에 들어와 #5에서 Hit한 뒤 #10 직전까지 Set 3에 남습니다.
New Tag 0x0666
이번 trace에서 처음 등장하는 요청 block입니다.이 소문제에서: 현재 line이 occupied여도 first visit이므로 Compulsory Miss입니다.
Replacement Cause
요청 block이 current와 다르고 같은 direct-mapped set을 요구해 기존 block을 밀어내는 원인입니다.이 소문제에서: 0x0666이 Set 3의 0x0222를 교체합니다.

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

과거 Hit는 새 tag subtype과 무관

0x0222가 #5에서 Hit였다는 사실은 요청 0x0666의 first-visit 여부를 바꾸지 않습니다.

종이에: history를 요청 tag별로 분리해 0x0666 행에 unseen을 씁니다.

First visit은 block 기준

Set 3 자체는 여러 번 방문했어도 (0x0666,3) block은 처음이므로 compulsory입니다.

종이에: `Set seen ≠ block seen`이라는 주석을 남깁니다.

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

이 소문제 전용 작은 예제

Set 2에 0x0101이 여러 번 Hit한 뒤, 처음 보는 0x0202가 같은 Set 2로 들어옵니다.

주어진 것

  • before: Set 2=0x0101
  • 0x0101은 여러 번 seen
  • 0x0202는 unseen
  1. 현재와 요청 tag를 비교합니다.

    0x0101과 0x0202가 달라 Miss입니다.

    종이 산출물: mismatch → Miss

  2. 요청 0x0202의 history만 확인합니다.

    기존 tag의 history가 아니라 요청 block의 history가 subtype을 정합니다.

    종이 산출물: 0x0202 first visit → Compulsory Miss

  3. Set 2를 0x0202로 갱신합니다.

    Direct-mapped line에 새 block을 설치합니다.

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

예제 답과 독립 검산 보기

Compulsory Miss이며 기존 0x0101 대신 0x0202가 남습니다.

독립 검산: Set은 seen이지만 block은 unseen이라는 두 문장을 동시에 참으로 만들 수 있는지 확인합니다.

이 접근의 cache 상태 전후

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

접근 전Set 3: 0x0222
주소 분해Tag 0x0666, Set 3
Historyfirst visit
판정Compulsory Miss
접근 후Set 3: 0x0666

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

공식 시험이 요구하는 것

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

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

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

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

Set 3을 마지막으로 바꾼 #2와 #5를 추적해 current tag를 확인합니다.

왜 하는가
#5는 Hit라 state가 유지되고 #6~#9는 다른 set만 바꿨습니다.
종이 산출물
before: Set 3=0x0222
완료 조건
#2 설치와 #5 유지가 하나의 timeline으로 연결됩니다.
막혔을 때 단계 힌트·대표 오류

힌트: #5 after도 0x0222였습니다.

이 단계의 대표 오류: #5의 Hit 후 line이 제거되었다고 생각해 empty로 둡니다.

0x0222와 요청 0x0666을 비교합니다.

왜 하는가
tag mismatch라 현재 cache에서 요청 data를 찾지 못합니다.
종이 산출물
0x0222≠0x0666 → Miss
완료 조건
Miss 근거가 요청 tag와 current tag 비교로 적혀 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: Set index가 같아도 tag가 다르면 Hit가 아닙니다.

이 단계의 대표 오류: 둘 다 Set 3이라는 사실을 tag match로 착각합니다.

0x0666의 history를 독립적으로 조회합니다.

왜 하는가
앞서 0x0222를 여러 번 보았어도 0x0666은 처음이므로 compulsory입니다.
종이 산출물
history: 0x0666 first visit → Compulsory Miss
완료 조건
요청 tag 0x0666 기준 first visit임을 명시했습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 앞선 tag 목록에서 0x0666을 검색하세요.

이 단계의 대표 오류: Set 3을 전에 방문했다는 이유로 0x0666도 seen이라고 합니다.

Set 3의 current tag를 0x0666으로 교체합니다.

왜 하는가
새 block을 가져와 direct-mapped의 유일한 line에 저장합니다.
종이 산출물
after: Set 3=0x0666; result=Compulsory Miss
완료 조건
0x0222 eviction과 0x0666 설치가 기록되어 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: after state에는 이번 요청 tag를 씁니다.

이 단계의 대표 오류: 0x0222의 이전 Hit를 이유로 replacement를 생략합니다.

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

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

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

공식 결론

Compulsory Miss

왜 이 답이 되는가

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

대표 함정

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

새 문제로 전이하기

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

1. 개념 재구성

Set 3이 이미 여러 번 사용되었는데도 0x0666이 Compulsory Miss인 이유를 설명하세요.

제출 후 모델 답 보기

Compulsory 여부는 set 방문이 아니라 요청 block의 first visit으로 정합니다. (0x0666, Set 3)은 이전에 없었으므로 Compulsory Miss입니다.

2. 변형 문제

8b-10 직후 처음 보는 0x0777을 Set 3에 요청하면 subtype과 after state를 구하세요.

제출 후 모델 답 보기

0x0666과 mismatch이고 0x0777은 first visit이므로 Compulsory Miss입니다. after는 Set 3=0x0777입니다.

3. 오류 진단

학생이 `Set 3은 #2에서 이미 방문했으므로 #10은 Conflict Miss`라고 썼습니다. 판정 단위를 고치세요.

제출 후 모델 답 보기

history는 (tag,set) block 단위입니다. 0x0666은 Set 3에 처음 오는 tag이므로 first visit이고 공식 result는 Compulsory Miss입니다.

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

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

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

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

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p17 Aufgabe 8b 접근 #10과 공식 해설 p42의 Set 3 새 tag 접근: before 0x0222, Tag 0x0666 first visit, Compulsory Miss, after 0x0666.