less than 1 minute read

캐쉬(Cache)와 캐쉬 알고리즘

레지스터가 하드디스크와 동일한 크기의 레지스터를 가진다면 캐시메모리 자체는 필요 없을 것인데,

현실적으로 불가능 하기 때문에 캐쉬 메모리는 컴퓨터를 향상시키는 데 아주 중요한 역할을 한다.

컴퓨터 프로그램의 일반적인 특성

템퍼럴 로컬리티 (Temporal Locality) : 프로그램 실행 시 한번 접근이 이뤄진 주소의 메모리 영역은 자주 접근하게 된다

스페이셜 로컬리티 (Spatial Locality) : 프로그램 실행 시 접근하는 메모리 영역은 이미 접근이 이루어진 영역의 근처일 확률이 높다

위에 나온 소프트웨어의 2가지 특성 때문에 캐쉬는 성능 향상에 많은 도음이 됨.

캐쉬 알고리즘

  1. ALU 연산과정 중에서 필요한 데이터가 있다면 이를 레지스터로 이동

  2. 데이터를 가져오기 위해 데이터가 존재하는 L1 캐쉬를 찾아봐야 한다.

만약 L1캐쉬에 데이터가 존재할 경우, 캐쉬 힛(Cache Hit)이 발생했다고 하며, 이 데이터를 레지스터로 이동시킨다.
만약 L1캐쉬에 데이터가 존재하지 않을 경우, 캐쉬 미스(Cache Miss)가 발생했다고 하고, L2캐쉬에서 가져오게 된다.
물론 L2캐쉬에도 없다면 (L2캐쉬 레벨의 캐쉬미스가 생긴다면) 메인 메모리에서 데이터를 가져와야 한다.
  1. 데이터의 이동은 블록 단위로 진행

예를들어, 레지스터로 이동해야 하는 데이터의 주소 번지가 0x1000번지였는데 이 데이터가 L1 캐쉬에 존재하지 않았다면, L2캐쉬에서 L1캐쉬로 이동하는 데이터의 단위는 0x1000번지의 데이터를 포함하는 하나의 블록이 된다.

출처 : https://popcorntree.tistory.com/68

Categories:

Updated: