En informática , colorear la caché (también conocido como colorear páginas ) es el proceso de intentar asignar páginas libres contiguas desde el punto de vista de la caché de la CPU , para maximizar el número total de páginas almacenadas en caché por el procesador. La coloración de la caché se emplea normalmente mediante el código de asignación de memoria dinámica de bajo nivel en el sistema operativo , cuando se asigna la memoria virtual a la memoria física. Un subsistema de memoria virtual que carece de colores de caché es menos determinista con respecto al rendimiento de la caché, ya que las diferencias en la asignación de páginas de un programa ejecutado al siguiente pueden generar grandes diferencias en el rendimiento del programa.
Detalles de operaciones
Un caché de CPU indexado físicamente está diseñado de manera que las direcciones en bloques de memoria física adyacentes ocupan diferentes posiciones ("líneas de caché") en el caché, pero este no es el caso cuando se trata de memoria virtual; cuando se asignan bloques de memoria virtualmente adyacentes pero no físicamente adyacentes, ambos podrían potencialmente tomar la misma posición en la caché. La coloración es una técnica implementada en el software de administración de memoria, que resuelve este problema seleccionando páginas que no compiten con las páginas vecinas.
Las páginas de la memoria física están "coloreadas" para que las páginas con diferentes "colores" tengan diferentes posiciones en la memoria caché de la CPU. Al asignar páginas secuenciales en la memoria virtual para procesos, el kernel recopila páginas con diferentes "colores" y las asigna a la memoria virtual. De esta forma, las páginas secuenciales en la memoria virtual no compiten por la misma línea de caché.
Implementaciones
Este código agrega una cantidad significativa de complejidad al subsistema de asignación de memoria virtual, pero el resultado vale la pena el esfuerzo. [1] El color de la página hace que la memoria virtual sea tan determinista como la memoria física con respecto al rendimiento de la caché. La coloración de páginas se emplea en sistemas operativos como Solaris , [2] FreeBSD , [1] NetBSD , [3] y Windows NT . [4]
Referencias
- ^ a b Matthew Dillon . "Colorear página" . Elementos de diseño del sistema FreeBSD VM . Fundación FreeBSD . Consultado el 13 de enero de 2007 .
- ^ "Novedades del sistema operativo Solaris" . Material de marketing de Solaris . Sun Microsystems, Inc . Consultado el 13 de enero de 2007 .
- ^ Matt Thomas . "Mejora de NetBSD / mips" (PDF) . Gestión de colores de página . La Fundación NetBSD . Consultado el 24 de septiembre de 2012 .
- ^ Edouard Bugnion; Jennifer M. Anderson; Todd C. Mowry *; Mendel Rosenblum; Monica S. Lam. "Coloración de páginas dirigida por el compilador para multiprocesadores" . Universidad de Stanford . Consultado el 6 de octubre de 2009 .
enlaces externos
- " Algoritmos de colocación de páginas para grandes cachés indexados reales ", por RE Kessler, Mark D. Hill, Universidad de Wisconsin, 1992.
- " Colorable Memory ", de Jochen Liedtke , IBM TJ Watson Center, noviembre de 1996.
- "缓存 着色 技术", de Maray, Blog tecnológico de CSDN, 2008.