출처: https://velog.io/@underlier12/컴퓨터구조-20-효율적-메모리-관리-정책, https://velog.io/@gyrbs22/전산학-Cache-메모리
(출처는 위 링크! 형광펜은 개인적으로 공부하면서 체크한 부분입니다)
내용에 의해 접근하는 메모리 장치를 이르는 용어
메모리 장치란 자료의 저장과 접근을 용이하게 하기 위해 필요로 하는 장치
CPU는 필요 자료를 얻기 위해 메모리 장치를 탐색
이러한 저장 형태를 CAM(Content Addresable Memory)라고도 명명
이 방식은 데이터의 내용으로 병렬 탐색을 하기에 적합하도록 구성되어 있으며 탐색은 전체 워드 혹은 한 워드 내 일부만을 가지고 실행 될 수 있다.
각 셀이 저장 능력 뿐 아니라 외부 인자와 내용을 비교하기 위한 논리회로를 갖고 있기 때문에 RAM보다 값이 비싸다. 따라서 탐색 시간이 필히 짧아야 한다.
Key register의 역할은 argument register-A의 특정한 영역이나 키를 선택하기 위한 마스크를 제공한다.
프로그램이 수행되는 동안 메모리 참조는 국한된 영역에서만 이루어지는 경향이 있음을 확인 할 수 있다.
이와 같이 참조의 국한성(locality of reference)을 이용하여 속도는 빠르고(CPU 만큼), 적은 메모리를 이용하여 프로그램을 수행 시킬 경우 평균 메모리 접근 시간의 단축과 그에 따른 전체 프로그램 수행 시간의 절약을 담보 할 수 있을 것이다.
이러한 원리에서 만들어진 기억 공간을 cache memory라 함
CPU가 메모리에 접근할 필요가 있을 경우 캐시의 기본동작 순서는 다음과 같다.
cf) hit ratio
컴퓨터의 성능을 알 수 있는 수치
hit 수 / CPU에 의한 메모리 참조 수(주기억장치 포함)
히트율은 참조국한성에 의해 약 0.9
효율적 메모리 관리를 위해서는 효과적으로 캐시를 구성하는 방법이 다음과 같은 것들이 있다.
아래와 같은 구조로 메모리가 존재한다고 가정
캐시 접근 후에 데이터 유무를 알 수 있으므로,
Cache에 접근하여 데이터를 찾을 확률 +
없는 경우 주기억 장치에서 데이터를 찾을 확률
로 평균 메모리 접근 시간을 알 수 있음
평균메모리 접근 시간
Cache 접근시간 x hit ratio + 주기억장치 접근시간 x miss ratio
= 10 x 0.5 + 800 x 0.5 = 405ns
→ 405ns
아래와 같은 구조로 메모리가 존재한다고 가정
평균데이터 접근 시간
캐시메모리를 통해 데이터를 찾은 경우와,
찾지 못하였을 때 주기억 장치에 접근하여 데이터를 찾은 경우가 합산된 수치
이때 캐시가 다중으로 구성되어 있으므로, 각 캐시히트시간과 미스율 및 미스패널티를 모두 고려해야 합니다.
※미스패널티 = 이전 캐시에서 데이터를 못찾았을 경우 다음 캐시에서 데이터를 찾기까지의 소요시간
Cache 메모리는 많이 있을 수록 성능 개선 효과가 큼
캐시메모리가 1개 존재할 때보다 여러 개 존재할 때 평균 접근 시간이 약 87% 개선되었음을 알 수 있습니다.