Conflictos y asociatividad

Dos direcciones que sólo difieran en la parte del tag mapearán para el mismo conjunto de caché, esto recibe el nombre de conflicto. Cuando se accede repetidamente a direcciones en conflicto y el numero de conjuntos supera la asociatividad de la caché la misma dirección generará repetidamente un fallo de caché, ya que las referencias en conflicto harán que se desaloje antes de que se pueda referenciar de nuevo.

Esta es la razón por la que una caché asociativa bidireccional pueda resultar tan efectiva como una directamente mapeada que le duplique el tamaño.

Virtual frente a física.

Hasta ahora, se ha hablado de la dirección de un determinado item que está copiado en la caché o en la memoria. De hecho, los sistemas utilizan dos tipos de dirección, la virtual y la física, y dos tipos de caché, según el tipo de dirección que se utilice.

Pero en realidad cada byte de RAM tiene una sola dirección. El sistema operativo y el hardware colaboran en la creación de este efecto al definir dos tipos de dirección la virtual y la física y hacerse cargo de la conversión entre ambas. Los programas utilizan direcciones virtuales, mientras que el controlador de memoria de sistema exige direcciones físicas.

Cachés direccionadas virtualmente.

El uso de una caché direccionada virtualmente presenta varias ventajas. El controlador de caché no tiene que esperar a que finalice la conversión de dirección para poder consultar la dirección en la caché, lo que significa que la caché pueda proporcionar datos mas rápidamente. Asimismo, debido a que se esta utilizando las direcciones virtuales del programa, ejecuciones idénticas de un programa conducirán a idénticos modelos de uso de caché.

Caches direccionadas físicamente .

Si bien las caches direccionadas físicamente padecen de variaciones de rendimiento, presentan dos ventajas claras.

PRIMERA.- Si se esta diseñando una caché fuera del chip para una CPU que tenga una unidad MNU (unidad de gestión de memoria) en el chip, la dirección que trasmite la CPU ya se ha convertido y la única opción es una caché direccionada físicamente.

SEGUNDA.- Debido a que todas las direcciones son para un único espacio de dirección física en vez de para un espacio diferente de dirección virtual para cada aplicación, se pueden dejar los datos en la caché cuando el sistema operativo transfiere el control de una aplicación a otra. Con una caché direccionada virtualmente hay que limpiar los datos cada vez que tiene lugar una transferencia de control o una conmutación de contexto.

Anterior

(c) 2000 Carlos Urzua Ruiz