<쉽게 배우는 운영체제> 교재를 참고하였습니다.
캐시 직접 매핑
캐시 직접 매핑
- 메모리의 블록이 캐시로 올라올 때 항상 같은 위치에 올라옴
- 캐시는 메모리의 어떤 블록에서 올라온 페이지인지만 확인
- CPU가 메모리에 접근하려는 주소 <P, D>는 <tag, bd, D>로 바꿀 수 있고, 원하는 데이터를 캐시에 얻기 위해 <tag, D>를 사용
- 태그 : 캐시에 블록 번호를 명시하는 것
- bdblock distance : 블록에서의 거리를 의미
캐시 직접 매핑의 예
- 현재 캐시의 00 위치에 lion, chicken, tuna, snake 중 어떤 데이터가 올라왔는지 확인하기 위해 캐시에서는 태그를 유지
- 태그는 메모리 주소의 앞 2bit에 해당하는 값으로, 어떤 블록에서 올라온 데이터인지를 나타냄
- CPU가 메모리 워드 1101의 cobra를 필요로 하는 경우 CPU는 캐시의 01 위치(주소의 뒷자리)에 가서 태그가 11인지 확인하는데 태그가 11이므로 캐시 히트
- 0111의 crow가 필요하다면 먼저 캐시의 11 위치로 가서 태그가 01인지 확인하는데 캐시의 11 위치 태그가 현재 00이므로 캐시 미스가 발생하고, CPU는 메모리의 0111로 가서 crow를 가져옴
캐시 연관 매핑
캐시 연관 매핑
- 메모리 워드가 캐시의 어느 위치에도 자유롭게 올라갈 수 있으므로 캐시가 메모리 워드의 주소를 전부 가지고 있음
- CPU가 특정 주소를 필요로 할 때 캐시에서 검색하여 찾는 경우는 캐시 히트이지만, 찾지 못하면 캐시 미스가 발생하여 메모리에서 원하는 데이터를 가져옴
- 장점 : 캐시 메모리를 자유롭게 사용할 수 있음
- 단점 : 캐시 히트인지, 캐시 미스인지 확인하기 위해 캐시의 모든 주소를 검색해야함
캐시 집합-연관 매핑
캐시 집합-연관 매핑
- 캐시를 K개의 집합으로 나누고 각 집합에 직접 매핑을 사용
- 직접 매핑을 하는 캐시 메모리를 K개로 나눔으로써 같은 끝자리를 가진 캐시 메모리도 K개가 되기 때문에 직접 매핑의 자리다툼 문제가 완화됨
- 집합 내에서 직접 매핑을 사용하기 때문에 바로 캐시 히트 여부를 알 수 있음
캐시 집합-연관 매핑의 예
- 캐시를 2개의 집합(K=2)으로 나누고 하나의 집합에 2개의 페이지를 사용
- 주소 P의 4bit 중 마지막 1bit만 bd를 나타내고 태그는 앞의 3bit
- 주소의 끝이 0인 페이지는 2개의 집합 중 비어 있는 첫 번째 위치에 들어가고, 끝이 1인 페이지는 2개의 집합 중 비어 있는 마지막 위치에 들어감
'전공 > 운영체제' 카테고리의 다른 글
Ch09. 가상 메모리 관리_02)요구페이징 (0) | 2023.06.12 |
---|---|
Ch09. 가상 메모리 관리_01)가상 메모리의 이해 (0) | 2023.06.12 |
Ch08. 가상 메모리의 기초_04)세그먼테이션-페이징 혼용 기법 (1) | 2023.06.10 |
Ch08. 가상 메모리의 기초_03)세그먼테이션 기법 (0) | 2023.06.09 |
Ch08. 가상 메모리의 기초_02)페이징 기법(2) (0) | 2023.06.08 |
댓글