캐시의 지역성

0

취업 및 면접준비

목록 보기
10/20

캐시의 지역성

1. 캐시의 지역성 원리

  • "캐시 메모리는 속도가 빠른 장치와 느린 장치 속도차 병목 현상을 줄이려고 나온 범용 메모리"
  • (내 기억으로는) 캐시메모리가 일종의 센스쟁이인데, CPU가 상대적으로 느리고, RAM이 상대적으로 빨라 그 사이를 조절해주는 완급장치 역할을 해주는 것. 그 때 CPU가 어떤 데이터를 원할 것인가 "예측"하는 센스가 있다면 캐시 메모리가 더 효율적일 것. 이걸 "적중율" 이라고 하는데 이를 극대화 시키기 위해 '지역성 원리'를 사용한다고 함.

지역성 원리

  • 전제조건 : 프로그램은 모든 코드나 데이터를 균등하게 어세스 하지 않는다.
  1. 시간 지역성 : 최근에 참조된 주소의 내용은 곧 다음에 다시 참조되는 특성
    -> 최근에 사용된 데이터나 명렁이 다시 사용될 확률이 높다는 뜻.

  2. 공간 지역성 : 대부분의 실제 프로그램이 참조된 주소와 인접한 주소의 내용이 다시 참조되는 특성
    -> 일반적으로 프로그램은 순차적으로 실행되는데 1000번이 실행되었다면 다음은 1004번, 그 다음은 1008번 이런식으로 순차적으로 실행될 확률이 높다는 뜻.

2. 캐싱 라인

  • 캐시는 자주 쓰는 것 갖다가 바로 쓸 수 있게 놔두는 장소라고 하지만 그 놔두는 장소가 가까이 있더라도 어디있는지 모르면 말짱 꽝이다.
  • 그래서 바로 접근할 수 있어야 한단 말이다.
  • 이를 위해 특정 자료구조를 사용하여 묶음으로 저장하게 되는데 이를 캐싱라인이라고 한다.

(이런게 있구나 정도 또 알아두기)

  1. fully associative :
    캐시 메모리가 있으면 그냥 마음대로 주소를 저장하는 방식

  2. set associative :
    direct map과 associative 의 혼합으로 특정 로우를 지정해서 그 로우 안의 어떤 열이든 비어있으면 저장. 검색도 저장도 약간 중간 정도 되는 수준.

  3. direct map :
    메인메모리와 캐시를 똑같은 크기로 나누고 순서대로 매핑

profile
커피 내리고 향 맡는거 좋아해요. 이것 저것 공부합니다.

0개의 댓글