캐시 메모리의 개념과 역할에 대해 설명해주세요.
- 데이터를 임시로 저장해두는 메모리
- 디바이스간 처리 속도 차이를 해소하기 위한 버퍼 역할 (주기억장치와 CPU사이에 위치)
- ex. 한번 사용한 데이터를 캐시에 저장해두고 이후에 동일한 데이터를 불러올 때 하드 디스크에서 불러오지 않아도 되도록 하여 처리 시간을 단축시킴.
- 캐시 성능은 CPU가 호출하는 데이터가 캐시에 저장되어 있는 확률로 결정된다. 따라서 CPU가 호출할 만한 데이터를 어느정도 예측하는 것이 필요함
- 매핑: 캐시 메모리와 주기억장치 사이에서 정보를 옮기는 것
- 직접매핑: 데이터의 원래 주소를 캐시 라인 개수로 나눈 나머지가 가리키는 주소에 저장. 충돌이 자주 발생해서 교체가 잦음. 구현이 쉬움.
- 연관매핑: 캐시 라인에서 빈 곳 아무데나 혹은 빈 곳이 없다면 LRU, FIFO, Random 등 교체 정책을 사용해서 데이터를 교체하여 저장. 충돌이 줄어듦. 찾을 때 캐시 안에 있는 데이터의 태그(데이터 식별용)를 탐색해야함. 탐색 시간이 소요됨.
- 직합연관매핑: 캐시 라인을 몇개의 집합으로 묶음. 데이터를 집합에 할당할 때는 직접 매핑처럼 주소를 나눈 나머지 값에 배정하고, 그 집합 안에서는 연관 매핑 방식을 차용해서 교체 정책을 사용하여 적절한 곳에 배치.
캐시의 지역성(Locality) 원리
캐시 적중률 (hit rate)을 높이기 위해 캐시에 어느 데이터를 저장할지 고를 때 사용되는 특성(원리)
locality는 모든 정보에 균일하게 접근하는 것이 아니라 특정 부분을 집중적으로 참조하는 특성을 의미함.
- 시간적 지역성
- 최근에 호출된 데이터가 또 다시 호출될 가능성이 많다고 보는 특성
- 공간적 지역성
- 호출된 데이터와 인접한 메모리상의 주소에 저장된 데이터를 호출할 가능성이 많다고 보는 특성
728x90
'CS' 카테고리의 다른 글
[컴퓨터구조] 상호배제(Mutual Exclusion) 뮤텍스(Mutex) & 세마포어 (Semaphore) (0) | 2025.03.10 |
---|---|
[컴퓨터구조] CPU 아키텍처 (x86, ARM) (0) | 2025.03.10 |
[알고리즘] 시간복잡도 (0) | 2025.02.20 |
[컴퓨터구조] 컴퓨터 시스템의 CPU, RAM(메모리), 보조 저장 장치, 시스템 버스 (0) | 2025.02.18 |