출처: https://velog.io/@underlier12/컴퓨터구조-20-효율적-메모리-관리-정책, https://velog.io/@gyrbs22/전산학-Cache-메모리
(출처는 위 링크! 형광펜은 개인적으로 공부하면서 체크한 부분입니다)






효율적 메모리 관리 정책
(Associative Memory)




⭐ 효율적 메모리 (Associative memory)란?

내용에 의해 접근하는 메모리 장치를 이르는 용어


메모리 장치란 자료의 저장과 접근을 용이하게 하기 위해 필요로 하는 장치
CPU는 필요 자료를 얻기 위해 메모리 장치를 탐색
이러한 저장 형태를 CAM(Content Addresable Memory)라고도 명명

이 방식은 데이터의 내용으로 병렬 탐색을 하기에 적합하도록 구성되어 있으며 탐색은 전체 워드 혹은 한 워드 내 일부만을 가지고 실행 될 수 있다.

각 셀이 저장 능력 뿐 아니라 외부 인자와 내용을 비교하기 위한 논리회로를 갖고 있기 때문에 RAM보다 값이 비싸다. 따라서 탐색 시간이 필히 짧아야 한다.

Key register의 역할은 argument register-A의 특정한 영역이나 키를 선택하기 위한 마스크를 제공한다.



⭐ 캐시 메모리 (Cache Memory)


📌 참조의 국한성

프로그램이 수행되는 동안 메모리 참조는 국한된 영역에서만 이루어지는 경향이 있음을 확인 할 수 있다.

  • 프로그램 루프와 서브 루틴의 빈번한 활용
  • 순차적 프로그램의 실행
  • 데이터 메모리 참조에서도 동일한 경향이 있음을 확인

이와 같이 참조의 국한성(locality of reference)을 이용하여 속도는 빠르고(CPU 만큼), 적은 메모리를 이용하여 프로그램을 수행 시킬 경우 평균 메모리 접근 시간의 단축과 그에 따른 전체 프로그램 수행 시간의 절약을 담보 할 수 있을 것이다.

이러한 원리에서 만들어진 기억 공간을 cache memory라 함


📌 cache memory 동작과 성능

CPU가 메모리에 접근할 필요가 있을 경우 캐시의 기본동작 순서는 다음과 같다.

  1. 캐시 체크
  2. 워드가 캐시에서 발견되면(hit) 읽고 아닐 경우(miss) 주 기억 장치에 접근
  3. 이 워드를 포함한 블록(1~16워드)을 캐시로 전송

cf) hit ratio

히트율(hit ratio)

컴퓨터의 성능을 알 수 있는 수치
hit 수 / CPU에 의한 메모리 참조 수(주기억장치 포함)
히트율은 참조국한성에 의해 약 0.9


📌 cache memory의 매핑 프로세스

효율적 메모리 관리를 위해서는 효과적으로 캐시를 구성하는 방법이 다음과 같은 것들이 있다.

  • Associative mapping
  • Direct mapping
  • Set-associative mapping


📌 평균 메모리 접근 시간

Cache 메모리가 1개 존재할 때

아래와 같은 구조로 메모리가 존재한다고 가정

  • 캐시 하나(L1)와 메인 메모리(M) 하나를 가진 CPU
  • 캐시의 Hit Ratio가 0.5 이고 캐시에 접근하는데 걸리는 시간은 10 ns, 메인 메모리에 접근하는 시간은 800 ns (캐시에 데이터가 존재하는지 여부는 캐시에 우선 접근하고 나서 알게 됨)

캐시 접근 후에 데이터 유무를 알 수 있으므로,
Cache에 접근하여 데이터를 찾을 확률 +
없는 경우 주기억 장치에서 데이터를 찾을 확률

로 평균 메모리 접근 시간을 알 수 있음


평균메모리 접근 시간
Cache 접근시간 x hit ratio + 주기억장치 접근시간 x miss ratio
= 10 x 0.5 + 800 x 0.5 = 405ns
→ 405ns


Cahce 메모리가 여러 개 존재할 때

아래와 같은 구조로 메모리가 존재한다고 가정

  • 위 시스템에서 캐시와 메인 메모리 사이에 캐시를 두개 더 추가
    따라서 시스템에는 캐시 L1, 캐시 L2, 캐시 L3, 메인메모리 M이 있음
  • L1의 접근 시간은 10 ns, L2의 접근시간은 50ns, L3의 접근 시간은 100ns, M의 접근 시간은 800 ns
  • L1의 Hit Ratio는 0.5, L2의 Hit Ratio는 0.6, L3의 Hit Ratio는 0.8
    (접근 순서는 L1 → L2 → L3 → M)

평균데이터 접근 시간
캐시메모리를 통해 데이터를 찾은 경우와,
찾지 못하였을 때 주기억 장치에 접근하여 데이터를 찾은 경우가 합산
된 수치

이때 캐시가 다중으로 구성되어 있으므로, 각 캐시히트시간과 미스율 및 미스패널티를 모두 고려해야 합니다.
※미스패널티 = 이전 캐시에서 데이터를 못찾았을 경우 다음 캐시에서 데이터를 찾기까지의 소요시간

Cache 메모리는 많이 있을 수록 성능 개선 효과가 큼
캐시메모리가 1개 존재할 때보다 여러 개 존재할 때 평균 접근 시간이 약 87% 개선되었음을 알 수 있습니다.

profile
⛅🛩️ 먼 길을 돌아서 온 프론트엔드 개발자 ✈️⛅

0개의 댓글