Skip to content

Latest commit

 

History

History
44 lines (30 loc) · 2.19 KB

Cache.md

File metadata and controls

44 lines (30 loc) · 2.19 KB

Cache (캐시)

  • 데이터를 미리 복사해 놓는 임시 저장 장소
  • 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간없이 더 빠른 속도로 데이터에 접근할 수 있다.
  • 자원을 효율적으로 사용하기 위해 한 번 요청하고 받은 응답 데이터를 저장해두기 위해 사용한다.

Cache miss

  • 참조하려는 데이터가 캐시에 없는 경우 -> 캐시 교체 정책에 따라 기존 캐시를 교체한다.

    1. Cold miss

    • 해당 메모리 주소를 처음 불러서 발생하는 미스

    2. Conflict miss

    • 캐시 메모리에 A와 B 데이터를 저장해야 하는데, A와 B가 같은 메모리 주소에 할당되어 있어서 발생하는 미스

    3. Capacity miss

    • 캐시 메모리의 공간이 부족해서 발생하는 미스

    • 캐시 크기를 키워 문제를 해결하려면, 캐시의 접근속도가 느려지고 파워를 많이 먹는다는 단점이 생긴다.

Cache hit

  • 참조하려는 데이터가 캐시에 존재하는 경우

페이지 교체 알고리즘

  • LRU(Least-Recently-Used) : 가장 오랫동안 사용되지 않은 데이터가 교체된다.

  • 예제

  • LFU(Least-Frequently-Used) : 참조 횟수가 가장 적은 데이터가 교체된다.

캐시 메모리

  • 메인 메모리와 CPU 간의 데이터 속도 향상을 위한 중간 버퍼 역할을 하는 메모리
  • 지역성을 이용해 데이터 접근 속도를 빠르게 하기 위한 메모리이다. -> 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리

지역성

시간 지역성

  • 반복문(for, while)처럼 방금 전에 접근한 메모리를 다시 참고할 확률이 높다.

공간 지역성

  • A[0] 사용 후 인접한 A[1]이 사용될 확률이 높다.

캐시에 데이터를 저장할 때는 이러한 참조(공간) 지역성을 최대한 활용하기 위해 해당 데이터 뿐만 아니라, 옆 주소의 데이터도 같이 가져와 미래에 쓰일 것을 대비한다.