캐시 컬러링
Cache coloring컴퓨터 과학에서 캐시 컬러링(페이지 컬러링이라고도 함)은 프로세서가 캐시하는 총 페이지 수를 극대화하기 위해 CPU 캐시의 관점에서 연속적인 자유 페이지를 할당하는 과정이다.캐시 컬러링은 일반적으로 가상 메모리를 물리적 메모리에 매핑할 때 운영 체제의 낮은 수준의 동적 메모리 할당 코드에 의해 사용된다.캐시 컬러링이 부족한 가상 메모리 서브시스템은 캐시 성능에 대해 덜 결정론적인데, 한 프로그램 실행과 다른 프로그램 간의 페이지 할당 차이가 프로그램 성능에 큰 차이로 이어질 수 있기 때문이다.
작업내역
물리적으로 인덱싱된 CPU 캐시는 인접한 물리적 메모리 블록의 주소가 캐시에서 다른 위치("캐시 라인")를 취하도록 설계되어 있지만 가상 메모리의 경우는 그렇지 않다; 가상 메모리 블록이 물리적으로 인접하지 않지만 물리적으로 인접하지 않은 메모리 블록이 할당되었을 때, 두 CPU 캐시가 모두 잠재적으로 동일한 위치를 차지할 수 있다.cache. coloring은 메모리 관리 소프트웨어에서 구현되는 기법으로, 인접 페이지와 경쟁하지 않는 페이지를 선택하여 이 문제를 해결한다.
물리적 메모리 페이지는 CPU 캐시 메모리에서 서로 다른 "색"을 가지도록 "색상"이다.프로세스를 위해 가상 메모리에 순차적 페이지를 할당할 때 커널은 서로 다른 "색상"이 있는 페이지를 수집하여 가상 메모리에 매핑한다.이와 같이 가상 메모리의 순차 페이지는 동일한 캐시 라인을 다투지 않는다.
구현
이 코드는 가상 메모리 할당 서브시스템에 상당한 복잡성을 더하지만, 그 결과는 충분히 노력할 가치가 있다.[1]페이지 색상은 가상 메모리를 캐시 성능에 관한 물리적 메모리만큼 결정론적으로 만든다.페이지 색상은 Solaris,[2] FreeBSD,[1] NetBSD,[3] Windows NT와 같은 운영 체제에서 사용된다.[4]
참조
- ^ a b Matthew Dillon. "Page Coloring". Design elements of the FreeBSD VM system. FreeBSD Foundation. Retrieved 2007-01-13.
- ^ "Solaris Operating System What's New". Solaris marketing material. Sun Microsystems, Inc. Retrieved 2007-01-13.
- ^ Matt Thomas. "Improving NetBSD/mips" (PDF). Managing Page Colors. The NetBSD Foundation. Retrieved 2012-09-24.
- ^ 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.
외부 링크
- R. E. Kessler, Mark D.의 "대규모 리얼 인덱싱 캐시에 대한 페이지 배치 알고리즘"1992년 위스콘신 대학교의 힐.
- 1996년 11월 IBM T. J. Watson Center의 Jochen Liedtke의 "Colorable Memory".
- CSDN Technical Blog, 2008년 Maray의 "缓存着色术术".