UNIT-SPECIFIC ACTIVE LESSON · 8c-8

4-way Cache Zugriff #8

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

학습 목표: 주소 0x0094가 #7에서 적재한 0x0090 block의 Offset 4임을 확인하고 Set 2/Tag 0x004 Hit를 판정할 수 있다.
공식 근거 범위: Probeklausur.pdf p18 Aufgabe 8c 접근 #8과 공식 해설 p43–44: Block 0x0012, Offset 4, Set 2, Tag 0x004, seen Hit, ways [0x004] 유지.

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

세 번째 set에서도 same-block second-word Hit를 재현하여 spatial locality 규칙을 일반화합니다. Set만 달라지고 계산 절차는 동일해야 합니다.

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

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

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

0x0090 Block
주소 0x0090~0x0097을 포함하는 Block 0x0012입니다.이 소문제에서: 0x0094는 이 범위 안의 Offset 4입니다.
Set 2 Residency
요청 block의 Tag 0x004가 현재 Set 2의 way에 존재하는 상태입니다.이 소문제에서: #7 after=[0x004]가 #8 before가 됩니다.
Repeated Spatial Hit
앞서 가져온 block의 인접 word를 사용해 발생하는 반복 가능한 Hit pattern입니다.이 소문제에서: #2, #5에 이어 #8도 Offset 4 Hit입니다.

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

Offset 변화는 cache-line identity를 바꾸지 않음

하위 3 bit만 바뀌면 Block, Set, Tag는 그대로입니다.

종이에: #7/#8 field 표에서 Offset 열만 0→4로 바꿉니다.

직전 같은 set after를 before로 사용

#7이 Set 2에 0x004를 설치했고 그 사이 다른 접근이 없어 그대로 match합니다.

종이에: `#7 after → #8 before [0x004]`를 연결합니다.

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

이 소문제 전용 작은 예제

Set 2 ways=[0x005]일 때 주소 0x00B4를 접근합니다.

주어진 것

  • 0x00B0 block이 이미 적재됨
  • 8-byte block
  • 4 sets
  1. base와 Offset을 구합니다.

    0x00B4는 0x00B0 block 안에 있습니다.

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

  2. Set과 Tag를 구합니다.

    Block 0x0016은 Set 2, Tag 0x005입니다.

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

  3. current way와 비교합니다.

    0x005가 이미 있어 Hit입니다.

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

예제 답과 독립 검산 보기

Offset=4, Set=2, Tag=0x005이며 Hit입니다.

독립 검산: 0x00B0과 0x00B4의 block number가 모두 0x0016인지 확인합니다.

이 접근의 cache 상태 전후

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

접근 전Set 2 ways: ['0x004']
주소 분해Block 0x0012, Offset 4, Set 2, Tag 0x004
Historyseen
판정Hit
접근 후Set 2 ways: ['0x004']

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

공식 시험이 요구하는 것

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

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

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

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

0x0094의 block base와 number를 구합니다.

왜 하는가
#7 주소와 같은 block임을 먼저 증명합니다.
종이 산출물
block base=0x0090; block number=0x0012
완료 조건
0x0094가 0x0090~0x0097 범위에 표시됩니다.
막혔을 때 단계 힌트·대표 오류

힌트: 0x94에서 4를 빼세요.

이 단계의 대표 오류: 0x0094를 새 block으로 반올림합니다.

Byte Offset을 계산합니다.

왜 하는가
block 안의 두 번째 32-bit word 위치를 표시합니다.
종이 산출물
Offset=0x0094 mod 8=4
완료 조건
Offset 4가 byte 단위로 적혀 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 하위 3 bit는 100입니다.

이 단계의 대표 오류: Offset을 word number 1로 씁니다.

Block 0x0012의 Set index를 구합니다.

왜 하는가
#7이 갱신한 Set 2를 조회해야 합니다.
종이 산출물
Set=0x0012 mod 4=2
완료 조건
Set 2 before ways를 불러왔습니다.
막혔을 때 단계 힌트·대표 오류

힌트: block number는 #7과 동일합니다.

이 단계의 대표 오류: 주소 끝 4를 set index로 사용해 Set 0이라고 합니다.

Tag 0x004를 계산합니다.

왜 하는가
Set 2의 stored tag와 비교할 identifier입니다.
종이 산출물
Tag=0x0094//32=0x004
완료 조건
#7의 Tag 0x004와 같음을 표시했습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 같은 block은 같은 Tag입니다.

이 단계의 대표 오류: Offset 4를 더해 Tag 0x008이라고 합니다.

Set 2의 Tag 0x004와 match해 Hit를 판정합니다.

왜 하는가
#7 miss가 전체 8-byte block을 적재했기 때문입니다.
종이 산출물
before: Set 2 ways=['0x004']; history=seen; Offset=4, Set=2, Tag=0x004, Type=Hit.; after: Set 2 ways=['0x004']
완료 조건
공식 fields/result와 unchanged after가 기록되어 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 0x0090과 0x0094는 같은 cache line입니다.

이 단계의 대표 오류: 인접 word를 별도 first visit block으로 세어 Compulsory Miss라 합니다.

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

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

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

공식 결론

Offset=4, Set=2, Tag=0x004, Type=Hit.

왜 이 답이 되는가

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. 개념 재구성

#2, #5, #8이 모두 Hit인 공통 구조를 address pair와 Offset으로 설명하세요.

제출 후 모델 답 보기

#2는 0x0080/0x0084, #5는 0x0088/0x008C, #8은 0x0090/0x0094 pair이며 각 첫 주소는 Offset 0에서 miss로 8-byte block을 가져옵니다. 각 두 번째 주소는 Offset 4라 Hit합니다.

2. 변형 문제

Set 2 ways=[0x005]일 때 주소 0x00B4의 fields와 Type을 구하세요.

제출 후 모델 답 보기

Block=0x0016, Offset=4, Set=2, Tag=0x005, Type=Hit입니다.

3. 오류 진단

학생이 #7에서 0x0090 word 하나만 적재했다고 보고 #8을 Miss로 판정했습니다. Cache transfer 단위를 고치세요.

제출 후 모델 답 보기

Cache는 4-byte word 하나가 아니라 8-byte block 0x0090~0x0097을 가져옵니다. 따라서 0x0094 Offset 4도 이미 존재해 Hit입니다.

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

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

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

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

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