캐시의 크기는 메모리보다 작기 때문에 효율적으로 매핑하는 것이 중요하다
적절한 매핑 기법을 사용하면 캐시 적중률을 높일 수 있어 전체 시스템의 성능이 향상된다
운영체제의 메모리 관리
운영체제는 메모리를 똑같은 크기의 페이지(4kb)로 나눠 관리를 한다
주소 구조
가상 주소는 <P,D>로 구성
P(Page Number): 페이지 번호 (20bits로 관리)
D(Page Offset): 페이지번호로부터 해당 주소까지의 거리 (12bits로 관리)
가상 주소와 물리 주소
가상 주소: 프로그램이 사용하는 주소(20bits)
물리 주소: 실제 메모리의 주소(16bits)
주소 변환
가상 주소를 물리 주소로 변환할 때 페이지 테이블을 사용
Page Number만 변환되고 Page Offset은 그대로 유지
매핑의 종류
1. 직접매핑
- 메모리의 특정 블록을 특정 캐시 라인에만 매핑
- 장점: 구현이 단순하고 접근 속도가 빠르다
- 단점: 캐시 교체가 자주 일어나 적중률이 낮을 수 있다
메모리는 총 100개의 페이지, 캐시는 총 5개의 페이지로 이루어져있다고 했을 때
메모리의 한 블럭의 요소 = 메모리 페이지 / 캐시 페이지 = 100/5 = 20
캐시 1 : 메모리 블럭1 (1~20)
캐시 2 : 메모리 블럭2 (21~40)
...
직접매핑은 P부분을 {tag, bd(Block Distance)}로 세분화하여 구현
bd 블럭을 위한 태그를 기반으로 <tag, bd, D> 로 세분화하여 bd가 같은 라인만 매핑이 되게 함
- tag: 메모리의 몇번째 블럭인지
- bd: 캐시의 몇번째 페이지인지
주홍철의 자리는 주홍철, 김건구, 구성천만 들어올 수 있음
2. 연관매핑
순서를 일치시키지 않고 관련 있는 캐시와 메모리를 매핑하여 메모리의 컨텐츠가 캐시의 어느 위치에도 올라갈 수 있는 방법
- 메모리의 블록을 캐시의 어느 위치에나 매핑할 수 있다
- 장점: 적중률이 높다
- 단점: 구현이 복잡하고 검색 시간이 길어질 수 있다
P: bd와 tag를 합한것
3. 집합 - 연관매핑
- 직접 매핑과 연관 매핑의 장점을 결합한 방식
- 캐시를 여러 집합으로 나누고, 각 집합 내에서 연관 매핑을 적용
- 장점: 직접 매핑보다 높은 적중률, 연관 매핑보다 간단한 구현
- 단점: 하드웨어 복잡성이 증가
- 구조
- 캐시가 여러 개의 집합(Set)으로 나뉨
- 메모리 블록은 특정 집합에만 매핑될 수 있음(블록 번호 % 집합 수)
- 동작 방식
- 메모리 주소의 일부(블록 주소의 하위 비트)로 캐시 집합을 결정
- 선택된 집합 내에서는 완전 연관 매핑처럼 작동
- 예시
- 2-way 집합 연관 매핑의 경우 캐시가 2개의 블록을 가진 집합들로 구성
- 메모리 블록은 지정된 집합 안의 2개의 위치 중 하나에 저장 가능
bd가 같은 곳으로 들어갈 곳은 정해져있으나 (직접매핑) 아무데나 들어가도 상관 없다 (연관매핑)
'Computer Science > Operating System' 카테고리의 다른 글
캐시히트와 캐시미스 (0) | 2024.10.30 |
---|---|
PCB와 Context Switching (2) | 2024.10.23 |
메모리 계층 구조 (0) | 2024.10.10 |
컨텍스트 스위칭(context switching) (0) | 2024.09.20 |
프로세스와 스레드 (0) | 2024.09.19 |