왜 이 소문제를 따로 배우는가
4-way lookup은 첫 way만 보는 것이 아닙니다. Set 0에는 0x004와 0x008이 함께 있으므로 요청 tag가 어느 way에 있든 match하면 Hit라는 associativity의 실제 검색 동작을 연습합니다.
이 페이지는 Aufgabe 8의 공통 템플릿이 아니라 8c-6 4-way Cache Zugriff #6에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 8 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- Parallel Way Lookup
- 선택된 set의 여러 way tag를 요청 tag와 모두 비교하는 동작입니다.이 소문제에서: Set 0의 [0x004,0x008] 중 두 번째 way가 match합니다.
- Second-word Hit
- 이미 적재된 8-byte block의 Offset 4 word를 읽는 Hit입니다.이 소문제에서: 0x0100 miss가 0x0104 data도 함께 가져왔습니다.
- Non-first-way Match
- 요청 tag가 set의 첫 번째가 아닌 다른 way에 위치한 상태입니다.이 소문제에서: 0x008은 0x004 뒤의 두 번째 stored tag입니다.
이 소문제 전용 규칙과 종이 작업
한 way라도 match하면 Hit
4-way set의 Hit 조건은 네 comparator 결과의 OR이며 첫 way mismatch만으로 Miss를 선언할 수 없습니다.
종이에: `0x004≠0x008`, `0x008=0x008 → Hit` 두 비교를 적습니다.
Hit는 way 순서를 바꾸지 않음
이 단순 trace에서는 replacement가 없으므로 Set 0 ways가 [0x004,0x008]로 유지됩니다.
종이에: before와 after 목록을 동일하게 복사합니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
Set 0 ways=[0x005,0x009]일 때 주소 0x0124를 접근합니다.
주어진 것
- Block size=8 Byte
- 0x0120 block은 적재됨
- 4-way Set 0
- 주소 fields를 계산합니다.
0x0124는 Block 0x0024의 Offset 4입니다.
종이 산출물: Offset=4, Set=0, Tag=0x009
- 두 way를 차례로 비교합니다.
첫 way 0x005는 다르지만 두 번째 0x009가 같습니다.
종이 산출물: 0x005≠0x009; 0x009=0x009
- Hit 후 state를 유지합니다.
matching block이 이미 존재합니다.
종이 산출물: Hit; after=[0x005,0x009]
예제 답과 독립 검산 보기
Offset=4, Set=0, Tag=0x009이며 두 번째 way에서 Hit합니다.
독립 검산: 첫 way만 검사했을 때 잘못 Miss가 되는지 반례로 확인합니다.
이 접근의 cache 상태 전후
Hit/Miss 이름만 외우지 않고, 접근 직전과 직후 상태가 어떻게 달라지는지 한 칸씩 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
주소 0x0104의 Offset/Set/Tag와 Hit/Miss를 구하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
0x0104를 8-byte 경계로 내려 block base와 number를 구합니다.
- 왜 하는가
- #3의 0x0100과 같은 block인지 확인해야 합니다.
- 종이 산출물
- block base=0x0100; block number=0x0020
- 완료 조건
- 0x0100~0x0107 범위에 0x0104를 표시했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x0104에서 4를 빼세요.
이 단계의 대표 오류: 0x0104를 새 block base로 사용합니다.
block 내부 Offset을 구합니다.
- 왜 하는가
- 두 번째 aligned word의 byte 위치를 나타냅니다.
- 종이 산출물
- Offset=0x0104 mod 8=4
- 완료 조건
- Offset=4가 block base 차이와 일치합니다.
막혔을 때 단계 힌트·대표 오류
힌트: 하위 3 bit는 100입니다.
이 단계의 대표 오류: Offset=1 word라고 적어 공식 byte field와 다르게 만듭니다.
Block 0x0020에서 Set 0을 계산합니다.
- 왜 하는가
- #3에서 두 tag가 저장된 Set 0을 조회해야 합니다.
- 종이 산출물
- Set=0x0020 mod 4=0
- 완료 조건
- Set 0 ways=[0x004,0x008]을 불러왔습니다.
막혔을 때 단계 힌트·대표 오류
힌트: block number는 #3과 같습니다.
이 단계의 대표 오류: Offset 4를 set index로 사용해 Set 1을 고릅니다.
Tag 0x008을 계산합니다.
- 왜 하는가
- Set 0의 여러 way 중 matching block을 찾을 identifier입니다.
- 종이 산출물
- Tag=0x0104//32=0x008
- 완료 조건
- 요청 Tag 0x008을 두 way 모두와 비교할 준비가 되었습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x0100과 0x0104의 Tag는 같습니다.
이 단계의 대표 오류: 주소 끝 4를 tag에 더해 0x00C로 계산합니다.
Set 0의 모든 stored tag를 비교해 두 번째 way Hit를 확정합니다.
- 왜 하는가
- 첫 way 0x004는 mismatch지만 두 번째 way 0x008이 요청 tag와 같습니다.
- 종이 산출물
- before: Set 0 ways=['0x004', '0x008']; history=seen; Offset=4, Set=0, Tag=0x008, Type=Hit.; after: Set 0 ways=['0x004', '0x008']
- 완료 조건
- 두 comparator 결과와 공식 Hit, unchanged after가 모두 적혀 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 4-way에서는 하나가 match할 때까지 모든 valid way를 확인합니다.
이 단계의 대표 오류: 첫 way 0x004만 보고 mismatch라서 Miss라고 합니다.
공식 답을 열기 전 마지막 회상
0x0104와 같은 block에 속하는 다른 4-byte word 주소는 무엇인가요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
Offset=4, Set=0, 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. 개념 재구성
N-way set-associative cache의 Hit 조건을 comparator와 논리 연산 관점에서 설명하세요.
각 way equality 결과를 하나로 합칩니다.
제출 후 모델 답 보기
선택된 set의 각 valid way tag를 요청 tag와 비교하고, comparator 중 하나라도 true이면 OR 결과로 Hit입니다.
2. 변형 문제
Set 0 ways=[0x005,0x009]일 때 주소 0x0124의 fields와 Type을 구하세요.
0x0124의 Tag는 0x009입니다.
제출 후 모델 답 보기
Block=0x0024, Offset=4, Set=0, Tag=0x009, Type=Hit이며 두 번째 way가 match합니다.
3. 오류 진단
학생이 Set 0의 첫 tag 0x004만 0x008과 비교해 Miss라고 했습니다. 4-way lookup을 적용해 고치세요.
Set 0에는 몇 개의 valid way가 있나요?
제출 후 모델 답 보기
모든 valid way를 비교해야 합니다. 두 번째 way의 0x008이 요청 Tag 0x008과 같으므로 공식 result는 Hit입니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p18 Aufgabe 8c 접근 #6과 공식 해설 p43–44: Block 0x0020, Offset 4, Set 0, Tag 0x008, seen Hit in ways [0x004,0x008].


