UNIT-SPECIFIC ACTIVE LESSON · 8c-7

4-way Cache Zugriff #7

주소 0x0090의 Offset/Set/Tag와 Hit/Miss를 구하세요.

학습 목표: 주소 0x0090을 Block 0x0012, Offset 0, Set 2, Tag 0x004로 분해하고 처음 사용하는 Set 2에 block을 적재할 수 있다.
공식 근거 범위: Probeklausur.pdf p18 Aufgabe 8c 접근 #7과 공식 해설 p43–44: Block 0x0012, Offset 0, Set 2, Tag 0x004, Compulsory Miss, after ways [0x004].

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

연속된 Tag 0x004 영역이 Set 0, 1, 2로 회전하는 흐름을 이어 줍니다. 각 set이 독립적으로 처음 채워지는 과정을 이해하면 set index bit의 역할이 눈에 보입니다.

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

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

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

Block 0x0012
주소 0x0090~0x0097을 포함하는 8-byte block number입니다.이 소문제에서: 하위 두 block-number bit가 2여서 Set 2로 mapping됩니다.
Set-index Bits 10
4 sets 중 index 2를 선택하는 block number의 하위 2 bit입니다.이 소문제에서: Block 0x12의 하위 bits가 10₂라 Set 2입니다.
Independent Cold Set
다른 set들이 사용 중이어도 아직 한 번도 block이 들어오지 않은 set입니다.이 소문제에서: #7 직전 Set 2 ways는 empty입니다.

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

연속 block의 set index 증가

Block 0x10,0x11,0x12는 각각 Set 0,1,2로 mapping되고 Tag 0x004를 공유합니다.

종이에: `0x10→S0, 0x11→S1, 0x12→S2`를 작은 줄로 적습니다.

다른 set의 occupancy는 cold 여부와 무관

Set 0과 Set 1에 block이 있어도 Set 2가 empty라면 Set 2 첫 접근은 compulsory입니다.

종이에: cache 전체가 아니라 Set 2 before만 `empty`로 표시합니다.

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

이 소문제 전용 작은 예제

Set 2가 비어 있을 때 주소 0x00B0을 접근합니다.

주어진 것

  • 8-byte blocks
  • 4 sets, 4-way
  • Set 2=empty
  1. block base, number, offset을 구합니다.

    0x00B0은 8-byte aligned입니다.

    종이 산출물: base=0x00B0, block=0x0016, Offset=0

  2. Set과 Tag를 계산합니다.

    0x16 mod 4=2, 0x16//4=0x005입니다.

    종이 산출물: Set=2, Tag=0x005

  3. Set 2의 빈 way에 적재합니다.

    해당 block은 first visit입니다.

    종이 산출물: Compulsory Miss; after=[0x005]

예제 답과 독립 검산 보기

Offset=0, Set=2, Tag=0x005이며 Compulsory Miss입니다.

독립 검산: 0x00A8의 Set 1 다음 block이 Set 2로 이동했는지 확인합니다.

이 접근의 cache 상태 전후

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

접근 전Set 2 ways: ['empty']
주소 분해Block 0x0012, Offset 0, Set 2, Tag 0x004
Historyfirst visit
판정Compulsory Miss
접근 후Set 2 ways: ['0x004']

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

공식 시험이 요구하는 것

주소 0x0090의 Offset/Set/Tag와 Hit/Miss를 구하세요.

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

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

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

0x0090의 block base와 number를 계산합니다.

왜 하는가
주소가 aligned block start라 block identity를 바로 얻을 수 있습니다.
종이 산출물
block base=0x0090; block number=0x0012
완료 조건
0x0090~0x0097을 같은 block으로 묶었습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 0x90/8=0x12입니다.

이 단계의 대표 오류: 16진수 0x90을 십진 90으로 나눕니다.

Block 내부 Offset을 구합니다.

왜 하는가
block base 자체이므로 Offset 0입니다.
종이 산출물
Offset=0x0090 mod 8=0
완료 조건
alignment와 Offset 값이 일치합니다.
막혔을 때 단계 힌트·대표 오류

힌트: 하위 3 bit가 000입니다.

이 단계의 대표 오류: 주소 끝 hex digit 0을 Set으로만 해석하고 Offset 계산을 생략합니다.

Block 0x0012의 Set index를 계산합니다.

왜 하는가
4 sets 중 정확히 Set 2의 ways를 조회해야 합니다.
종이 산출물
Set=0x0012 mod 4=2
완료 조건
block-number low bits 10₂와 Set 2가 연결됩니다.
막혔을 때 단계 힌트·대표 오류

힌트: 18 mod 4=2입니다.

이 단계의 대표 오류: Tag 0x004가 이전과 같아 Set 0이라고 합니다.

상위 block bits로 Tag를 계산합니다.

왜 하는가
Set 2 내부 block identity를 표시합니다.
종이 산출물
Tag=0x0090//32=0x004
완료 조건
(Set 2,Tag 0x004) 쌍을 적었습니다.
막혔을 때 단계 힌트·대표 오류

힌트: Block 0x12//4=0x004입니다.

이 단계의 대표 오류: Set 2를 Tag에 포함해 0x006으로 계산합니다.

Set 2의 empty state와 first visit을 확인해 적재합니다.

왜 하는가
Set 2에는 matching tag가 없고 Block 0x0012도 처음입니다.
종이 산출물
before: Set 2 ways=['empty']; history=first visit; Offset=0, Set=2, Tag=0x004, Type=Compulsory Miss.; after: Set 2 ways=['0x004']
완료 조건
공식 fields/result와 after way가 정확합니다.
막혔을 때 단계 힌트·대표 오류

힌트: 다른 set의 Tag 0x004는 Hit 후보가 아닙니다.

이 단계의 대표 오류: Set 0 또는 Set 1에 0x004가 있다는 이유로 global Tag Hit라고 합니다.

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

0x0090와 같은 block에 속하는 다른 4-byte word 주소는 무엇인가요?

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

공식 결론

Offset=0, Set=2, Tag=0x004, Type=Compulsory Miss.

왜 이 답이 되는가

Block size 8 Byte이므로 하위 3 bit가 block offset입니다. 4 sets이므로 다음 2 bit가 set index, 나머지 상위 bit가 tag입니다. 같은 8-byte block의 두 word는 offset 0과 4로 함께 cache에 들어옵니다.

대표 함정

Word 주소가 달라도 같은 8-byte block이면 두 번째 word는 Hit일 수 있습니다.

새 문제로 전이하기

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

1. 개념 재구성

Tag 0x004 영역의 Block 0x0010, 0x0011, 0x0012가 각각 어느 set으로 mapping되는지 규칙과 함께 설명하세요.

제출 후 모델 답 보기

0x0010 mod 4=0이라 Set 0, 0x0011은 Set 1, 0x0012는 Set 2이며 세 block의 Tag는 모두 0x004입니다.

2. 변형 문제

빈 Set 2에서 주소 0x00B0을 접근할 때 fields와 Type을 구하세요.

제출 후 모델 답 보기

Block=0x0016, Offset=0, Set=2, Tag=0x005, Type=Compulsory Miss입니다.

3. 오류 진단

학생이 Cache에 이미 Tag 0x004가 있으므로 0x0090은 Hit라고 했습니다. 어떤 field를 빠뜨렸나요?

제출 후 모델 답 보기

Set index를 빠뜨렸습니다. 0x0090은 Set 2, Tag 0x004이고 Set 2는 empty이므로 Compulsory Miss입니다.

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

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

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

8c-7 관련 공식 시험 또는 해설 페이지
exam-p18.png · 클릭해 원본 크기로 확인
8c-7 관련 공식 시험 또는 해설 페이지
solution-p43.png · 클릭해 원본 크기로 확인
8c-7 관련 공식 시험 또는 해설 페이지
solution-p44.png · 클릭해 원본 크기로 확인

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p18 Aufgabe 8c 접근 #7과 공식 해설 p43–44: Block 0x0012, Offset 0, Set 2, Tag 0x004, Compulsory Miss, after ways [0x004].