stringtranslate.com

Coloración de caché

En informática , la coloración de caché (también conocida como coloración de página ) es el proceso de intentar asignar páginas libres que sean contiguas desde el punto de vista de la caché de la CPU, con el fin de maximizar el número total de páginas almacenadas en caché por el procesador. La coloración de caché se emplea normalmente en el código de asignación de memoria dinámica de bajo nivel en el sistema operativo , al asignar 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 al siguiente pueden generar grandes diferencias en el rendimiento del programa.

Detalles de las operaciones

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

Una caché de CPU indexada físicamente está diseñada de tal manera que las direcciones en bloques de memoria física adyacentes toman posiciones diferentes ("líneas de caché") en la 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 páginas vecinas.

Las páginas de memoria física están "coloreadas" de modo que las páginas con diferentes "colores" tienen diferentes posiciones en la memoria caché de la CPU. Al asignar páginas secuenciales en la memoria virtual para los procesos, el núcleo 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 añade una cantidad significativa de complejidad al subsistema de asignación de memoria virtual, pero el resultado bien vale el esfuerzo. [1] La coloración de páginas hace que la memoria virtual sea tan determinista como la memoria física con respecto al rendimiento de la memoria 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. ^ de Matthew Dillon . "Coloreado de páginas". Elementos de diseño del sistema de máquinas virtuales de FreeBSD . FreeBSD Foundation . 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 . The NetBSD Foundation . Consultado el 24 de septiembre de 2012 .
  4. ^ Edouard Bugnion; Jennifer M. Anderson; Todd C. Mowry*; Mendel Rosenblum; Monica S. Lam. "Coloreado de páginas dirigido por compilador para multiprocesadores". Universidad de Stanford . Consultado el 6 de octubre de 2009 .

Enlaces externos