Cache

2024. 3. 20. 09:19·CS/OS
  • 주기억장치에서(메인메모리)에서 자주 사용하는 프로그램과 데이터를 저장해두어 속도를 빠르게 하는 메모리.
    • 캐시 기억장치와 주기억장치 사이에서 정보를 옮기는 것을 사상(Mapping, 매핑)이라고 한다.
    • 직접매핑, 연관매핑, 집합 연관 매핑이 있다.
  • 속도가 빠른 장치와 느린 장치간의 속도 차에 따른 병목현상을 줄이기 위한 메모리
    • 이를 위해 CPU가 어떤 데이터를 원하는지 어느 정도 예측할 수 있어야 한다.
    • 캐시 메모리에 CPU가 이후에 참조할, 필요 있는 정보가 어느 정도 들어있느냐에 따라 캐시의 성능이 좌우됨.
  • 캐시에 자주 사용하는 데이터를 담아두고, 해당 데이터가 필요할 때 프로세서가 메인 메모리 대신 캐시에 접근하여 처리 속도를 높이는 것이 캐시의 목적이다.

캐시의 지역성

  • 캐시가 효율적으로 동작하기 위해 캐시의 적중율(Hit-rate)를 극대화 시켜야 한다.
  • 캐시에 저장할 데이터가 지역성(Locality)을 가져야 한다.
  • 지역성이란, 데이터 접근이 시간적, 공간적으로 가깝게 일어나는 것을 의미한다.
  • 지역성의 전제 조건으로 프로그램은 모든 코드나 데이터를 균등하게 Access하지 않는다는 특성을 기본으로 한다.
  • 즉, 지역성이란 기억장치 내의 정보를 균일하게 Access하는 것이 아닌 어느 한 순간에 특정 부분을 집중적으로 참조하는 특성이다.

시간적 지역성

  • 특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것
  • 메모리 상의 같은 주소에 여러 차례 읽기 쓰기를 수행할 경우,
    • 상대적으로 작은 크기의 캐시를 사용해도 효율성을 꾀할 수 있다.

공간적 지역성

  • 특정 데이터와 가까운 주소가 순서대로 접근되었을 경우.
  • CPU 캐시나 디스크 캐시의 경우 한 메모리 주소에 접근할 때 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져오게 된다.
  • 이때 메모리 주소를 오름차순이나 내림차순으로 접근한다면,
    • 캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상된다.

캐시 메모리의 매핑 프로세스(Mapping Process)

매핑 프로세스는 주기억장치로부터 캐시 메모리로 데이터를 전송하는 방법

  • 직접 매핑(Direct Mapping)
    • 주기억장치의 블록들이 지정된 한 개의 캐시 라인으로만 사상될 수 있는 매핑 방법
    • 간단하고 구현하는 비용이 적게 드는 장점이 있지만 적중률이 낮아질 수 있다는 단점이 있다.
  • 연관 매핑(Associative Mapping)
    • 직접 매핑 방식의 단점을 보완한 방식.
    • 모든 태그들을 병렬로 검사하기 때문에 복잡하고 비용이 높다는 단점이 있어 거의 사용하지 않는다.
  • 집합 연관 매칭(Set-Associative Mapping)
    • 집접 매핑과 연관 매핑의 장점만 취한 방식
저작자표시 (새창열림)

'CS > OS' 카테고리의 다른 글

동기화 문제  (0) 2024.04.23
인터럽트(interrupt)  (0) 2024.04.05
운영체제  (0) 2024.03.29
데드락(Dead Lock)  (0) 2024.03.21
프로세스 & 스레드  (0) 2024.03.18
'CS/OS' 카테고리의 다른 글
  • 인터럽트(interrupt)
  • 운영체제
  • 데드락(Dead Lock)
  • 프로세스 & 스레드
tjdgus
tjdgus
  • tjdgus
    Do It...
    tjdgus
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Language
        • Java
      • CS
        • Data Structure
        • OS
        • Algorithm
        • Network
      • 오류 모음집
      • ETC
      • 함수형 프로그래밍
      • JPA
      • Toy
      • 데이터베이스
      • Spring
      • 코딩테스트
        • 99클럽 4기
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    코딩테스트준비
    오블완
    99클럽
    티스토리챌린지
    항해99
    TiL
    개발자취업
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
tjdgus
Cache
상단으로

티스토리툴바