캐시매핑

2024. 10. 31. 03:58·Computer Science/Operating System

캐시의 크기는 메모리보다 작기 때문에 효율적으로 매핑하는 것이 중요하다

적절한 매핑 기법을 사용하면 캐시 적중률을 높일 수 있어 전체 시스템의 성능이 향상된다

운영체제의 메모리 관리

운영체제는 메모리를 똑같은 크기의 페이지(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. 집합 - 연관매핑

  • 직접 매핑과 연관 매핑의 장점을 결합한 방식
  • 캐시를 여러 집합으로 나누고, 각 집합 내에서 연관 매핑을 적용
  • 장점: 직접 매핑보다 높은 적중률, 연관 매핑보다 간단한 구현
  • 단점: 하드웨어 복잡성이 증가
  1. 구조
    • 캐시가 여러 개의 집합(Set)으로 나뉨
    • 메모리 블록은 특정 집합에만 매핑될 수 있음(블록 번호 % 집합 수)
  2. 동작 방식
    • 메모리 주소의 일부(블록 주소의 하위 비트)로 캐시 집합을 결정 
    • 선택된 집합 내에서는 완전 연관 매핑처럼 작동
  3. 예시
    • 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
'Computer Science/Operating System' 카테고리의 다른 글
  • 캐시히트와 캐시미스
  • PCB와 Context Switching
  • 메모리 계층 구조
  • 컨텍스트 스위칭(context switching)
mint723dev
mint723dev
mint723dev 님의 블로그 입니다.
  • mint723dev
    mint723dev 님의 블로그
    mint723dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • Computer Science (16)
        • Computer Architecture (0)
        • Data Structure (2)
        • Database (4)
        • Network (4)
        • Operating System (6)
        • Software Engineering (0)
      • Java (6)
      • 자료 구조 (0)
      • 코딩테스트 (62)
        • LeetCode (1)
        • 프로그래머스 (29)
        • 백준 (32)
      • Spring (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    탐욕법
    DFS
    DP
    티스토리챌린지
    JVM
    BFS
    deque
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
mint723dev
캐시매핑
상단으로

티스토리툴바