Allocation Policy
Cache Allocation Policy(캐시 할당 정책)는 캐시 메모리 관리에서 중요한 역할을 하는 정책으로, 데이터를 캐시에 어떻게 할당할지 결정하는 방식을 의미한다.
이 정책은 시스템의 성능과 효율성에 큰 영향을 미치므로 신중하게 선택해야 한다.
Cache Allocation Policy의 주요 유형과 특징
Write-Allocate (Fetch-on-Write)
Write-Allocate 정책에서는 쓰기 작업 시 해당 데이터가 캐시에 없는 경우(write miss), 먼저 해당 블록을 캐시로 가져온 후 쓰기 작업을 수행한다. 이 방식은 후속 읽기 작업이 캐시에서 바로 데이터를 찾을 수 있어 읽기 성능을 향상시킬 수 있다.No-Write-Allocate (Write-No-Allocate)
No-Write-Allocate 정책에서는 쓰기 작업 시 해당 데이터가 캐시에 없는 경우, 캐시를 건너뛰고 직접 메인 메모리에 데이터를 쓴다. 이 방식은 캐시 공간을 절약할 수 있지만, 후속 읽기 작업에서 캐시 미스가 발생할 가능성이 높아진다.Exclusive Allocation
Exclusive Allocation은 데이터가 하나의 코어에서만 사용될 때 적용된다. 예를 들어, 코어 0에서 처음 요청한 데이터는 L1 또는 L2 캐시에 할당되지만 L3 캐시에는 할당되지 않는다. 이 데이터가 코어 0에서 제거될 때 L3 캐시에 할당된다. 코어 0이 이 데이터를 다시 가져오면, L1 또는 L2 캐시에 할당되고 L3 캐시에서는 제거되어 배타적 상태를 유지한다.Inclusive Allocation
Inclusive Allocation은 데이터가 여러 코어 간에 공유될 때 사용된다. 예를 들어, 코어 1이 이미 코어 0에 캐시된 데이터에 접근하면, 해당 데이터는 코어 0의 캐시에 남아있으면서 동시에 코어 1의 캐시와 L3 캐시에도 할당된다.동적 캐시 할당 (Dynamic Cache Allocation)
동적 캐시 할당은 시스템의 요구사항에 따라 캐시 할당을 실시간으로 조정하는 방식이다. 예를 들어, 중요한 작업에 고정된 수의 캐시 웨이를 할당하고, 작업이 시작될 때 할당을 활성화하는 방식으로 구현할 수 있다. 이 방식은 정적 할당의 단점을 보완하고 시스템의 유연성을 높일 수 있다.
Cache Allocation Policy를 선택할 때 고려해야할 사항
- 쓰기 빈도: 데이터가 얼마나 자주 쓰이는지
- 읽기 빈도: 데이터가 얼마나 자주 읽히는지
- 데이터 일관성 요구사항: 캐시와 메인 메모리 간의 데이터 일관성이 얼마나 중요한지
- 시스템 성능 목표: 읽기/쓰기 성능과 전체 시스템 효율성의 균형
- 워크로드 특성: 높은 지역성이나 무작위 접근 패턴 등 작업 부하의 특성