캐시 알고리즘 이론의 최신 기술은 무엇입니까?


14

최근에 사용 가능한 메모리가 두 종류 이상인 상황에서 메모리 사용을 최적화하는 일반적인 문제에 관심을 갖게되었으며, 주어진 메모리 세그먼트의 용량과 액세스 속도 사이에 상충 관계가 있습니다.

익숙한 예는 프로세서 캐시, RAM 및 하드 드라이브 (가상 메모리를 통해) 에서 읽 거나 때를 결정하는 프로그램 입니다.

특히로드해야하는 데이터 양 (프로그램 자체 포함)이 사용 가능한 가장 빠른 스토리지 용량을 크게 초과하는 특별한 경우에 관심이 있습니다 (즉, "모든 것을로드"하는 사소한 솔루션은 적용 할 수 없습니다).

나는 일반적인 캐시 알고리즘을 설명 하는 Wikipedia 페이지 를 발견했다 . 불행히도, 이것들은 약간 저수준입니다.

  • LRU 또는 MRU와 같은 많은 것은 여러 번 액세스되는 서브 루틴이있는 경우에만 의미가 있습니다. 많은 수의 서브 루틴이있는 프로그램이 있는데, 그 중 일부는 주어진 실행에서 액세스되지 않으며 일부는 한두 번 액세스되면이 전략은 작동하지 않습니다. 일반적으로 사용되는 것과 그렇지 않은 것.
  • CLOCK과 같은 다른 사람들은 실제로 문제의 근원을 공격하는 것이 아니라 구현의 특성을 다루는 것 같습니다.
  • 테스트 실행 중 프로그램을 먼저 프로파일 링 한 다음 운영 체제가 그에 따라 최적화 할 수있는 프로파일을 제공하는 전략이 있다는 것을 알고 있습니다. 그러나 프로파일을 작성하는 동안 진정한 "예제 사용법"을 제공하는 문제를 여전히 해결해야합니다.

하드웨어와 소프트웨어의 모든 기술을 추상화하고 순전히 이론적 인 맥락에서 말할 때 알고리즘 구조를 분석하고 효과적인 캐시 전략을 수행하는 것이 가능합니까? 알고리즘이 수행하는 작업에 대한 높은 수준의 이해를 기반으로합니까?


"액세스 그래프"모델에 관심이있을 수 있습니다 .
닐 영

답변:


2

나는 일반적으로 캐시 정책을 제시하기 위해 임의의 주어진 알고리즘을 분석하는 방법에 대해 모른다. 분할 및 정복 구조를 분석하여 가장 잘 알려진 캐시 인식 알고리즘에 대한 사례 기반 . 캐시 불명확 한 알고리즘은 FFT, 행렬 곱셈, 정렬 및 기타 몇 가지로 알려져 있습니다. 참고 항목 위키 백과 페이지 및 참조 거기.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.