✅ 참고
Mapping의 3가지 방법
- 직접 매핑(Direct Mapping)
주기억장치의 블록들이 지정된 한 개의 캐시 라인으로만 사상될 수 있는 매핑 방법.
간단하고 구현하는 비용이 적다는 장점이 있지만 캐시 적중률이 낮아질 수 있다.- 연관 매핑(Associate Mapping)
직접 매핑 방식의 단점을 보완한 방식.
모든 태그들을 병렬로 검사하기 때문에 복잡하고 비용이 높다는 단점 때문에 거의 사용하지 않는다.- 집합 연관 매핑(Set Associate Mapping)
직접 매핑과 연관 매핑의 장점만을 취한 방식.
✅ 참고
- 캐시 적중(Cache Hit) : CPU가 액세스하려는 데이터가 이미 캐시에 적재되어있는 상태.
- 캐시 미스(Cache Miss) : CPU가 액세스하려는 데이터가 캐시에 없어 주기억장치로부터 인출해 와야하는 상태.
- 캐시 적중률(Cache Hit rate) : CPU가 원하는 데이터가 캐시에 있을 확률
캐시에 적중되는 횟수 / 전체 기억장치 액세스 횟수- 미스율(Miss rate) : CPU가 원하는 데이터가 캐시에 없을 확률
1-(Cache Hit rate)
특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 액세스할 가능성이 높아지는 특성.
메모리 상의 같은 주소에 여러 차례 읽기 쓰기를 수행할 경우, 상대적으로 작은 크기의 캐시를 사용해도 효율성을 꾀할 수 있다.
예) 반복 루프 프로그램이나 서브루틴들은 반복적으로 호출되며 공통 변수들도 빈번히 액세스 된다.
기억장치 내에 서로 인접하여 저장되어 있는 데이터들이 연속적으로 액세스될 가능성이 높아지는 특성.
CPU 캐시나 디스크 캐시의 경우 한 메모리 주소에 접근할 때 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져오게 된다.
이때 메모리 주소를 오름차순이나 내림차순으로 접근한다면, 캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상된다.
예) table이나 배열 데이터들이 저장되어 있는 기억장치 영역은 그들에 대한 연산이 수행되는 동안에 집중적으로 액세스된다.
분기(branch)가 발생하지 않는 한, 명령어들은 기억장치에 저장된 순서대로 인출되어 실행된다.