왜 이 소문제를 따로 배우는가
8c trace의 첫 접근은 address field 계산과 4-way set 상태의 출발점입니다. Block 0x0010과 Tag 0x004를 정확히 기록해야 바로 다음 0x0084가 같은 block의 Hit임을 설명할 수 있습니다.
이 페이지는 Aufgabe 8의 공통 템플릿이 아니라 8c-1 4-way Cache Zugriff #1에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 8 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- 8-byte Block
- 한 번의 miss에서 함께 cache로 가져오는 연속 8 Byte 범위입니다.이 소문제에서: 0x0080~0x0087이 하나의 block이며 0x0080은 그 base입니다.
- Block Number
- byte address를 block size로 나눈 정수값입니다.이 소문제에서: 0x0080/8=0x0010이며 Set과 Tag 계산의 입력입니다.
- 4-way Set
- 한 set이 서로 다른 tag를 최대 네 개까지 동시에 보유할 수 있는 구조입니다.이 소문제에서: 비어 있는 Set 0의 첫 way에 0x004가 들어갑니다.
이 소문제 전용 규칙과 종이 작업
주소를 block number로 먼저 축약
Block size가 8=2^3 Byte이므로 address의 하위 3 bit는 Offset이고 나머지가 block number입니다.
종이에: `block=0x0080//8=0x0010`, `offset=0`을 먼저 적습니다.
Block number를 Set과 Tag로 분해
4 sets이므로 Set=block mod 4이고 Tag=block//4, 즉 address//32입니다.
종이에: `Set=0x10 mod 4=0`, `Tag=0x10//4=0x004`를 적습니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
같은 8-byte, 4-set, 4-way cache가 비어 있을 때 주소 0x00A0을 접근합니다.
주어진 것
- Block size=8 Byte
- Set count=4
- Set 0=empty
- block base, number, offset을 계산합니다.
0x00A0은 8의 배수라 block의 첫 byte입니다.
종이 산출물: base=0x00A0, block=0x0014, offset=0
- Set과 Tag를 계산합니다.
block 0x14를 4 sets로 나눈 나머지와 몫을 사용합니다.
종이 산출물: Set=0, Tag=0x005
- 빈 way를 확인하고 적재합니다.
first visit block이며 matching tag가 없습니다.
종이 산출물: Compulsory Miss; Set 0 ways=[0x005]
예제 답과 독립 검산 보기
Offset=0, Set=0, Tag=0x005이고 Compulsory Miss입니다.
독립 검산: 0x00A0//32=0x005와 block 0x0014//4=0x005가 같은지 교차검사합니다.
이 접근의 cache 상태 전후
Hit/Miss 이름만 외우지 않고, 접근 직전과 직후 상태가 어떻게 달라지는지 한 칸씩 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
주소 0x0080의 Offset/Set/Tag와 Hit/Miss를 구하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
0x0080을 8-byte 경계로 내림해 block base와 number를 구합니다.
- 왜 하는가
- 같은 block 여부와 이후 field 계산의 공통 입력을 먼저 고정해야 합니다.
- 종이 산출물
- block base=0x0080; block number=0x0010
- 완료 조건
- 0x0080~0x0087 범위를 같은 block으로 표시했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 주소의 하위 3 bit를 0으로 만드세요.
이 단계의 대표 오류: 4-byte word 크기로 나눠 block number를 0x0020으로 만듭니다.
block 내부 byte Offset을 계산합니다.
- 왜 하는가
- 8-byte block의 어느 byte를 요청하는지 하위 3 bit가 나타냅니다.
- 종이 산출물
- Offset=0x0080 mod 8=0
- 완료 조건
- Offset이 0~7 범위이고 단위가 Byte임을 적었습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 0x80은 8의 배수입니다.
이 단계의 대표 오류: word index를 사용해 Offset을 word 단위 0으로만 적고 byte 기준임을 놓칩니다.
block number 0x0010이 mapping되는 Set을 계산합니다.
- 왜 하는가
- 4 sets 중 lookup할 한 set을 정해야 way의 tag를 비교할 수 있습니다.
- 종이 산출물
- Set=0x0010 mod 4=0
- 완료 조건
- Set=0이 cache 표의 정확한 행과 연결됩니다.
막혔을 때 단계 힌트·대표 오류
힌트: block number의 하위 2 bit가 set index입니다.
이 단계의 대표 오류: byte address 0x0080 mod 4만 쓰면서 offset bit를 제거한 이유를 설명하지 못합니다.
상위 block bits로 Tag를 계산합니다.
- 왜 하는가
- Set 0 안의 여러 way 중 요청 block을 식별하려면 Tag가 필요합니다.
- 종이 산출물
- Tag=0x0080//32=0x004
- 완료 조건
- Tag 0x004와 Set 0, Offset 0의 합이 원주소를 재구성합니다.
막혔을 때 단계 힌트·대표 오류
힌트: 32=8-byte block×4 sets입니다.
이 단계의 대표 오류: block number 0x0010을 그대로 Tag라고 씁니다.
Set 0 ways와 history를 조회해 판정하고 상태를 갱신합니다.
- 왜 하는가
- Set 0이 empty이고 Block 0x0010이 first visit이므로 처음 가져오는 miss입니다.
- 종이 산출물
- before: Set 0 ways=['empty']; history=first visit; Offset=0, Set=0, Tag=0x004, Type=Compulsory Miss.; after: Set 0 ways=['0x004']
- 완료 조건
- 공식 field/result와 after way 목록이 모두 적혀 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 빈 4-way set에는 replacement 없이 첫 way를 사용합니다.
이 단계의 대표 오류: 빈 way가 있다는 이유로 memory access가 필요 없다고 생각해 Hit라고 합니다.
공식 답을 열기 전 마지막 회상
0x0080와 같은 block에 속하는 다른 4-byte word 주소는 무엇인가요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
Offset=0, Set=0, 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. 개념 재구성
8-byte block과 4 sets에서 address로부터 Offset, Set, Tag를 얻는 정수 연산 세 개를 복원하세요.
mod 8, 나눈 뒤 mod 4, 전체를 32로 나눕니다.
제출 후 모델 답 보기
Offset=address mod 8, Set=(address//8) mod 4, Tag=address//32입니다.
2. 변형 문제
빈 cache에서 주소 0x00A0을 접근할 때 block number, Offset, Set, Tag, Type을 모두 구하세요.
0x00A0//8=0x0014입니다.
제출 후 모델 답 보기
Block=0x0014, Offset=0, Set=0, Tag=0x005, Type=Compulsory Miss입니다.
3. 오류 진단
학생이 0x0080/4=0x0020을 block number로 사용해 Tag=0x008이라고 했습니다. 최초 오류와 수정값을 쓰세요.
Cache block은 word가 아니라 8 Byte입니다.
제출 후 모델 답 보기
Block size 8 대신 word size 4로 나눈 것이 최초 오류입니다. 올바른 block number는 0x0010이고 Tag는 0x004입니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p16–18 · 공식 해설 p41–44 · Probeklausur.pdf p18 Aufgabe 8c 접근 #1과 공식 해설 p43–44: Block 0x0010, Offset 0, Set 0, Tag 0x004, first visit Compulsory Miss, after ways [0x004].


