gksrudtlr
|2025. 3. 20. 10:29
- 캐시미스란?
- CPU나 GPU가 데이터를 캐시에서 찾지 못해 메인 메모리(RAM) 또는 저장장치에서 데이터를 가져와야하는 상황
- 이는 성능 저하의 주 원인중 하나
- 종류
- 컴펄서리 미스(Compulsory Miss)
- 콜드 미스(Cold Miss)라고도 불림
- 처음 요청한 데이터가 캐시에 없는 경우 발생
- 새로운 프로그램 실행 시 자주 발생
- 캐패시티 미스(Capacity Miss)
- 캐시 크기가 작아 필요한 데이터가 캐시에 남아 있을 수 없는 경우 발생
- 데이터가 캐시에서 밀려나고 다시 필요할 때 미스가 발생
- 컨플릭트 미스(Conflict Miss)
- 특정 주소의 데이터가 캐시 내에서 같은 인덱스를 공유해야 하는 경우 발생
- 직접 매핑(Direct-Mapped) 캐시에서 특히 문제가 될 수 있음
- 캐시 교체 정책이 영향을 미침
- 성능에 미치는 영향
- 발생시 CPU/GPU는 더 느린 메모리(RAM 또는 디스크)에서 데이터를 가져와야함
- 캐시 미스율(Miss Rate)이 높아지면 프로그램 실행 속도가 급격히 느려질 수 있음
- 게임 엔진이나 그래픽스 프로그래밍에서 캐시 최적화가 중요한 요소
- 줄이는 방법
- 공간 지역성(Spatial Locality) : 연속된 데이터를 함께 사용하도록 배열 기반 구조 활용
- 시간 지역성(Temporal Locality) : 자주 사용하는 데이터를 반복적으로 참조하도록 코드 구성
- 데이터 구조 최적화 : 연결 리스트(Linked List)보다 배열을 선호
- 캐시 친화적인 알고리즘 : 행 우선 순회(Row-Major-Order)등을 사용하여 메모리 접근 최적화