캐시 컬러링

Cache coloring

컴퓨터 과학에서 캐시 컬러링(페이지 컬러링이라고도 함)은 프로세서가 캐시하는 총 페이지 수를 극대화하기 위해 CPU 캐시의 관점에서 연속적인 자유 페이지를 할당하는 과정이다.캐시 컬러링은 일반적으로 가상 메모리를 물리적 메모리에 매핑할 때 운영 체제의 낮은 수준의 동적 메모리 할당 코드에 의해 사용된다.캐시 컬러링이 부족한 가상 메모리 서브시스템은 캐시 성능에 대해 덜 결정론적인데, 한 프로그램 실행과 다른 프로그램 간의 페이지 할당 차이가 프로그램 성능에 큰 차이로 이어질 수 있기 때문이다.

작업내역

캐시 컬러링 그림.왼쪽은 가상 메모리 공간, 가운데는 물리적 메모리 공간, 오른쪽은 CPU 캐시.

물리적으로 인덱싱된 CPU 캐시는 인접한 물리적 메모리 블록의 주소가 캐시에서 다른 위치("캐시 라인")를 취하도록 설계되어 있지만 가상 메모리의 경우는 그렇지 않다; 가상 메모리 블록이 물리적으로 인접하지 않지만 물리적으로 인접하지 않은 메모리 블록이 할당되었을 때, 두 CPU 캐시가 모두 잠재적으로 동일한 위치를 차지할 수 있다.cache. coloring은 메모리 관리 소프트웨어에서 구현되는 기법으로, 인접 페이지와 경쟁하지 않는 페이지를 선택하여 이 문제를 해결한다.

물리적 메모리 페이지는 CPU 캐시 메모리에서 서로 다른 "색"을 가지도록 "색상"이다.프로세스를 위해 가상 메모리에 순차적 페이지를 할당할 때 커널은 서로 다른 "색상"이 있는 페이지를 수집하여 가상 메모리에 매핑한다.이와 같이 가상 메모리의 순차 페이지는 동일한 캐시 라인을 다투지 않는다.

구현

이 코드는 가상 메모리 할당 서브시스템에 상당한 복잡성을 더하지만, 그 결과는 충분히 노력할 가치가 있다.[1]페이지 색상은 가상 메모리를 캐시 성능에 관한 물리적 메모리만큼 결정론적으로 만든다.페이지 색상은 Solaris,[2] FreeBSD,[1] NetBSD,[3] Windows NT와 같은 운영 체제에서 사용된다.[4]

참조

  1. ^ a b Matthew Dillon. "Page Coloring". Design elements of the FreeBSD VM system. FreeBSD Foundation. Retrieved 2007-01-13.
  2. ^ "Solaris Operating System What's New". Solaris marketing material. Sun Microsystems, Inc. Retrieved 2007-01-13.
  3. ^ Matt Thomas. "Improving NetBSD/mips" (PDF). Managing Page Colors. The NetBSD Foundation. Retrieved 2012-09-24.
  4. ^ Edouard Bugnion; Jennifer M. Anderson; Todd C. Mowry*; Mendel Rosenblum; Monica S. Lam. "Compiler Directed Page-Coloring for Multiprocessors". Stanford University. Retrieved 2009-10-06.

외부 링크