stringtranslate.com

Coloración de caché

En informática , la coloración de caché (también conocida como coloración de páginas ) es el proceso de intentar asignar páginas libres que son 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 caché generalmente se emplea mediante código de asignación de memoria dinámica de bajo nivel en el sistema operativo , cuando se asigna memoria virtual a memoria física . Un subsistema de memoria virtual que carece de coloración 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 a otro pueden generar grandes diferencias en el rendimiento del programa.

Detalles de operaciones

Ilustración de coloración de caché. A la izquierda están los espacios de memoria virtual , al centro está el espacio de memoria física y a la derecha está el caché de la CPU .

Un caché de CPU indexado físicamente está diseñado de manera que las direcciones en bloques de memoria física adyacentes tomen 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 ocupar la misma posición en la memoria 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 manera, 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 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

  1. ^ ab Matthew Dillon . "Colorear página". Elementos de diseño del sistema VM FreeBSD . Fundación FreeBSD . Consultado el 13 de enero de 2007 .
  2. ^ "Novedades del sistema operativo Solaris". Material de marketing de Solaris . Sun Microsystems, Inc. Consultado el 13 de enero de 2007 .
  3. ^ 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 .
  4. ^ Édouard Bugnion; Jennifer M. Anderson; Todd C. Mowry*; Mendel Rosenblum; Mónica S. Lam. "Coloración de páginas dirigida por compilador para multiprocesadores". Universidad Stanford . Consultado el 6 de octubre de 2009 .

enlaces externos