캐시의 지역성

공덕이형·2023년 12월 19일
0

CS

목록 보기
9/17

캐시의 지역성


캐시란?
메모리와 CPU 간의 속도 차이를 완화하기 위해 데이터를 미리 가져와 저장해두는 임시장소. 캐시는 사용할 것으로 예상되는 데이터를 미리 가져다 놓음으로써 두 장치의 속도 차이를 완화해준다.

Cache Locality

  • 캐시가 효율적으로 동작하기 위해선 캐시의 적중률 (Hit-Rate)를 극대화 시켜야 한다
  • 캐시에 저장할 데이터가 지역성 (Locality)을 가져야 한다.
  • 지역성이란, 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어나는 것
    기억장치 내의 정보를 균일하게 Access 하는 것이 아닌 어느 한 순간에 특정 부분을 집중적으로 참조하는 특성.

Locality 종류

시간적 지역성

  • 특정 메모리가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터가 접근할 가능성이 높은 것
  • 메모리 상의 같은 주소에 여러 차례 읽기 쓰기를 수행할 경우, 상대적으로 작은 크기의 캐시를 사용해도 효율성을 높일 수 있음.

공간적 지역성

  • 특정 데이터와 가까운 주소가 순서대로 접근되었을 경우 CPU 캐시나 디스크 캐시의 경우 한 메모리 주소에 접근할 때 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져오게 된다.
  • 이때 메모리 주소를 오름차순 혹은 내림차순으로 접근한다면, 캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상한다.

캐시 메모리의 매핑 기법

매핑 프로세스는 주기억장치로부터 캐시 메모리로 데이터를 전송하는 방법으로 3가지의 방법이 존재함

  • 직접 매핑(Direct Mapping)
    메모리 주소와 캐시의 순서를 일치시킴. 메모리가 1~100까지 있고 캐시가 1~10까지 있다면, 1~10까지의 메모리는 캐시의 1에 위치하고 11~20까지의 메모리는 캐시의 2에 위치시키는 것이다.
    구현이 간단하고 비용이 적지만 그만큼 적중률이 낮을 수 있음.

  • 연관 매핑 (Associative Mapping)
    순서를 일치시키지 않음. 필요한 메모리 값을 캐시의 어디든지 저장 할 수 있다. 때문에, 찾는 과정은 복잡하고 느리지만 정말 필요한 캐시들 위주로 저장할 수 있기에 적중률이 높음. 캐시는 애초에 속도가 굉장히 빠르기 때문에 적중률이 높은것이 성능이 좋다고 말할 수 있다.

  • 직접 연관 매핑 (Set Associative Mapping)
    연관 매핑 + 직접 매핑
    순서를 일치시키고 편하게 저장하되, 일정 그룹을 두어 그 그룹 내에서 편하게 저장하는 것. 예를 들어 메모리가 1~100까지 있고 캐시가 1~10 까지 있다면 캐시 1~5에는 1~50의 데이터를 무작위로 저장하는 것.

References

https://chelseashin.tistory.com/43
https://gguljaem.tistory.com/entry/%EC%BA%90%EC%8B%9C%EB%A9%94%EB%AA%A8%EB%A6%AC%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EB%A7%A4%ED%95%91%EA%B8%B0%EB%B2%95%EC%97%90-%EB%8C%80%ED%95%9C-%EC%84%A4%EB%AA%85

profile
형이 먹여살릴게

0개의 댓글