[운영체제] Cache Locality(캐시의 지역성)

김성록·2023년 4월 3일
0

운영체제

목록 보기
14/14

캐시의 지역성에 대해 설명해보세요.


캐시 메모리(Cache Memory)

  • 캐시 메모리는 속도가 빠른 CPU와 속도가 느린 주기억장치(RAM) 사이에 위치하여 장치간의 병목 현상을 줄이기 위한 범용 메모리이다.

  • 주기억장치에서 자주 사용하는 프로그램과 데이터를 캐시 메모리에 저장해주어 속도를 빠르게 한다.

  • 주기억장치로부터 캐시 메모리로 데이터를 보내는 것을 매핑(Mapping) 이라고 한다.


캐시의 지역성(Cache Locality)

  • 속도는 캐시 메모리에 CPU가 필요한 정보가 어느 정도 들어있느냐에 따라 결정되기 때문에, 적중률(Hit rate)을 높이기 위해 어느정도 예측이 필요하다. 이를 위해 필요한 개념이 캐시의 지역성이다.

  • 캐시의 지역성이란 데이터의 접근이 시간적이나 공간적으로 가깝게 일어나는 것을 말한다.

  • 프로그램은 정보를 균일하게 참조하는 것이 아니라, 어느 한 순간에 특정 부분을 집중 참조하는 것이 지역성의 특성이다.


지역성의 종류

  • 캐시의 지역성은 두 가지로 나뉜다.

    • 시간 지역성(Temporal Locality)
      : 최근에 사용했던 데이터가 재참조될 가능성이 높은 특성이다.
      ex) for 문의 index로 쓰이는 변수 i

    • 공간 지역성(Spatial Locality)
      : 최근에 사용했던 데이터와 인접한 데이터가 참조될 가능성이 높은 특성이다.
      ex) 자료구조 배열은 연속적인 메모리 공간을 가지므로 탐색 시 가까운 메모리에 연속적으로 접근


캐싱 라인(Caching Line)

  • 캐싱 라인이란 캐시에 데이터를 저장할 때 특정 자료구조를 사용하여 묶어 놓은 것을 말한다.

  • 캐싱 라인은 세 가지 방식으로 매핑을 한다.

    • 직접 매핑(Direct Mapping)

      • 메모리 주소와 캐시의 순서를 일치시켜 주기억장치의 블록들이 지정된 한 개의 캐시 라인으로만 매핑할 수 있다.

      • 적중률과 성능이 낮지만 구현이 간단하고 쉽다.

    • 연관 매핑(Associative Mapping)

      • 순서를 일치시키지 않고 필요한 메모리 값을 캐시의 어느 곳이든 저장할 수 있다.

      • 찾는 과정은 복잡하고 느리지만 적중률이 높다.

    • 직접 연관 매핑(Set Associative Mapping)

      • 직접 매핑과 연관 매핑의 장점을 합쳐 놓은 방식이다. 순서를 일치시키되, 일정 그룹을 두어 그룹 내에서 편하게 저장할 수 있다.

      • 효율적으로 검색하면서 적중률도 높다.

profile
예비 개발자

0개의 댓글