UNIT-SPECIFIC ACTIVE LESSON · 8c-12

4-way Cache Zugriff #12

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

학습 목표: 주소 0x010C를 Block 0x0021의 Offset 4로 분해하고, Set 1의 여러 ways 중 Tag 0x008을 찾아 마지막 Hit와 unchanged state를 검증할 수 있다.
공식 근거 범위: Probeklausur.pdf p18 Aufgabe 8c 접근 #12와 공식 해설 p43–44: Block 0x0021, Offset 4, Set 1, Tag 0x008, seen Hit in ways [0x004,0x008], unchanged final state.

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

마지막 접근은 8c의 두 핵심을 결합합니다. 인접 word의 spatial locality와 4-way의 non-first-way lookup을 동시에 적용해야 하므로 전체 trace를 종합하는 검산 문제입니다.

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

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

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

Block 0x0021 Reuse
#9에서 처음 적재된 0x0108~0x010F block을 다시 사용하는 접근입니다.이 소문제에서: 0x010C는 같은 block의 Offset 4입니다.
Set 1 Multi-way Match
Set 1의 [0x004,0x008] 중 요청 tag와 같은 way를 찾는 lookup입니다.이 소문제에서: 두 번째 way 0x008이 match합니다.
Trace Closure
마지막 접근에서 fields, history, state를 모두 확인해 전체 cache trace를 마무리하는 검산입니다.이 소문제에서: 공식 final result는 Hit이고 after는 [0x004,0x008]입니다.

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

Same block plus any-way match

0x010C는 #9의 block과 같고 Set 1의 어느 valid way든 Tag 0x008이 있으면 Hit입니다.

종이에: block equality와 second-way equality를 두 개의 체크로 표시합니다.

마지막 Hit도 state를 갱신하지 않음

새 block allocation이나 replacement가 없으므로 final ways는 그대로입니다.

종이에: before=after=[0x004,0x008]을 적습니다.

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

이 소문제 전용 작은 예제

Set 1 ways=[0x005,0x009]일 때 주소 0x012C를 접근합니다.

주어진 것

  • 0x0128 block은 이미 적재됨
  • 8-byte blocks
  • 4-way Set 1
  1. block base와 Offset을 구합니다.

    0x012C는 0x0128 block의 second word입니다.

    종이 산출물: base=0x0128, Block=0x0025, Offset=4

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

    Block 0x0025는 Set 1, Tag 0x009입니다.

    종이 산출물: Set=1, Tag=0x009

  3. 모든 ways에서 0x009를 찾습니다.

    두 번째 way가 match하므로 Hit입니다.

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

예제 답과 독립 검산 보기

Offset=4, Set=1, Tag=0x009이며 두 번째 way에서 Hit합니다.

독립 검산: 첫 way 0x005 mismatch 뒤 검색을 멈추지 않았는지 확인합니다.

이 접근의 cache 상태 전후

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

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

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

공식 시험이 요구하는 것

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

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

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

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

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

왜 하는가
#9의 0x0108과 같은 8-byte block인지 확인합니다.
종이 산출물
block base=0x0108; block number=0x0021
완료 조건
0x010C가 0x0108~0x010F 범위 안에 표시됩니다.
막혔을 때 단계 힌트·대표 오류

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

이 단계의 대표 오류: 0x010C를 새 block base로 취급해 Block 0x0022로 반올림합니다.

Byte Offset을 계산합니다.

왜 하는가
같은 block의 second word 위치를 확인합니다.
종이 산출물
Offset=0x010C mod 8=4
완료 조건
Offset=4가 base 차이와 일치합니다.
막혔을 때 단계 힌트·대표 오류

힌트: 하위 3 bit 100₂를 읽으세요.

이 단계의 대표 오류: 마지막 hex digit C를 그대로 12로 사용합니다.

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

왜 하는가
#9에서 두 tag가 공존하게 된 Set 1을 조회해야 합니다.
종이 산출물
Set=0x0021 mod 4=1
완료 조건
Set 1 before=[0x004,0x008]을 불러왔습니다.
막혔을 때 단계 힌트·대표 오류

힌트: block number는 #9와 같습니다.

이 단계의 대표 오류: 주소 0x010C mod 4=0만 보고 Set 0이라고 합니다.

Tag 0x008을 계산합니다.

왜 하는가
Set 1의 여러 ways 중 matching block을 찾습니다.
종이 산출물
Tag=0x010C//32=0x008
완료 조건
요청 tag가 #9에서 추가된 두 번째 way와 연결됩니다.
막혔을 때 단계 힌트·대표 오류

힌트: 0x0108과 0x010C는 같은 Tag입니다.

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

Set 1의 두 valid ways를 비교해 Hit와 final state를 확정합니다.

왜 하는가
0x004는 mismatch지만 두 번째 0x008이 match하고 Block 0x0021은 seen입니다.
종이 산출물
before: Set 1 ways=['0x004', '0x008']; history=seen; Offset=4, Set=1, Tag=0x008, Type=Hit.; after: Set 1 ways=['0x004', '0x008']
완료 조건
공식 final fields/result와 unchanged ways가 모두 기록되어 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 첫 comparator mismatch 후 두 번째 way까지 확인하세요.

이 단계의 대표 오류: 첫 way 0x004만 보고 Miss 또는 Conflict라고 합니다.

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

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

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

공식 결론

Offset=4, Set=1, Tag=0x008, 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. 개념 재구성

#9와 #12를 연결해 block allocation부터 second-word Hit까지의 Set 1 state 변화를 설명하세요.

제출 후 모델 답 보기

#9에서 Block 0x0021의 Tag 0x008이 Compulsory Miss로 Set 1의 free way에 추가되어 [0x004,0x008]이 됩니다. #12의 0x010C는 같은 block Offset 4라 두 번째 way에서 Hit하고 state가 유지됩니다.

2. 변형 문제

Set 1 ways=[0x005,0x009]일 때 주소 0x012C의 fields와 Type을 구하세요.

제출 후 모델 답 보기

Block=0x0025, Offset=4, Set=1, Tag=0x009, Type=Hit이며 after=[0x005,0x009]입니다.

3. 오류 진단

학생이 Set 1의 첫 way 0x004와 요청 0x008이 달라 Conflict Miss라고 했습니다. 두 가지 누락을 고치세요.

제출 후 모델 답 보기

4-way의 두 번째 valid way 0x008을 비교하지 않았고, #9에서 같은 Block 0x0021이 적재된 사실도 놓쳤습니다. Tag 0x008이 match하므로 Hit입니다.

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

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

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

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

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p18 Aufgabe 8c 접근 #12와 공식 해설 p43–44: Block 0x0021, Offset 4, Set 1, Tag 0x008, seen Hit in ways [0x004,0x008], unchanged final state.