Computer Science/OS

[운영체제/OS] 캐시(Cache)와 지역성(Locality) & 캐싱라인(Caching Line)

예민한고라니 2022. 8. 29. 22:07

Cache

캐시 메모리(cache Memory)

캐시 메모리란 ?

  • 주기억장치에서 자주 사용하는 프로그램과 데이터를 저장해두고 속도를 빠르게 하는 메모리
  • 속도가 빠른 장치와 느린 장치간의 병목 현상을 줄여주며, 메인 메모리와 CPU사이에 위치한다
  • 캐시가 효율적으로 동작하기 위해서는 CPU가 참조할 정보에 대한 예측이 잘 되어야함
    • 즉, 캐시의 적중률(Hit-rate) 을 극대화 시켜야함
    • 이때 나오는 개념이 캐시의 지역성(Locality)

캐시의 지역성(Locality)이란

  • 데이터에 대한 접근이 시간적-공간적으로 가깝게 발생하는 것을 뜻함
  • 이때 프로그램은 정보를 균일하게 참조하는 것이아니라, 어느 한 순간에 특정 부분을 집중 참조할 것이라는 전재 조건이 존재한다.
    • 시간지역성 : 최근에 참조된 데이터가 곧 다시 참조되는 특성
    • 공간지역성 : 최근에 참조된 데이터와 인접한 데이터가 참조될 가능성이 높은 특성

캐싱 라인(Caching Line)

캐싱라인이 뭔가요?

  • 캐시는 프로세서 가깝게 위치하며 자주 사용 되는 데이터들은 저장하는 것
  • 목적 데이터를 바로 접근하여 출력할 수 있어야 캐시가 의미가 있기때문에, 특정 자료구조를 사용하여 묶음으로 저장해놓는데, 이를 캐싱라인이라 칭함
  • 즉, 캐시 메모리의 매핑 프로세스라고 말할 수 있음

캐싱라인의 종류

1. 직접 매핑(Direct Mapping)

  • 메모리 주소와 캐시의 순서를 일치 시켜 지정된 캐시 라인으로만 사상하는 방식으로
  • 즉, 캐시 1에는 메모리 110번을, 캐시 2에는 메모리 1120을 위치시키는것
  • 하지만 특정메모리 위치의 값을 자주 불러다 사용한다면 저장할 캐시 공간은 1개이므로 매번 캐시 교체가 일어남
  • 즉 적중률과 성능이 낮지만 구현이 간단하고 쉬운 방법

2. 연관 매핑(Associative Mapping)

  • 순서를 일치시키지 않고 필요한 메모리 값을 캐시의 어디든 편하게 저장한다
  • 찾는 과정은 복잡하고 느리지만 필요한 캐시 위주로 저장하기에 적중률은 높다.
    • 캐시는 일반메모리보다 속도가 빠르므로 캐시의 검색량보다 적중률을 신경쓰는게 바람직함

3. 직접 연관 매핑( Set Associative Mapping)

  • 연관매핑과 직접매핑을 합쳐놓은 방식.
  • 순서를 일치시키면서 일정 그룹을 두지만, 그 그룹내에서는 편하게 저장하는 방식이다.
  • 블록화가 되어있어 검색에 조금더 효율적이며 적중률이 많이 떨어지지도 않는다.