Caches Multicolumnas

 Volver al índice 


 
 

Técnica de Bloque MRU Multiple: 

El sistema de la cache usualmente busca las posiciones candidatas en un set en el orden de importancia. Las caches MRU mantienen sólo un orden por cada set en la cache. Esto significa que para cada referencia mapeada en el set, la búsqueda comienza desde la misma posición -la posición MRU para el set (figura 1a). Lamentablemente este esquema sufre de una baja proporción de aciertos al primer intento en algunos casos. El problema es que un bloque en un set puede tener distinta importancia para distintas referencias mapeadas en el mismo set, y este esquema no considera esto. Para solucionar esto se propone la técnica de bloque MRU multiple. Para este caso, como para las caches directamente mapeadas, la posición principal es la posición en la cual una referencia esta mapeada. Las otras posiciones dentro del mismo set son posiciones no-principales para la referencia. Se clasifican las referencias para un set en diferentes grupos en términos de sus posiciones principales, cada grupo de referencias corresponde a una posición principal. Manteniendo un orden de búsqueda independiente para cada grupo de referencias, en vez de un orden de búsqueda para todos, podría optimizar la performance. El bloque MRU es el más importante en el orden de búsqueda, y la posibilidad que una referencia encuentre un acierto en una posición distinta a el bloque MRU es muy pequeña. Por lo tanto, solo se guarda la información sobre los bloque MRU multiples. 

Cuando la cache responde una referencia, la posición principal para la referencia sirve como punto de entrada para comenzar la búsqueda. Tenemos múltiples puntos de entrada, cada uno corresponde a un grupo de referencias (figura 1b). Usamos swapping para garantizar que el bloque MRU siempre quede en la posición principal después de una referencia, aunque otros bloques de datos puedan reemplazarlo luego. El sistema realiza una operación de swap sólo cuando no se acierta en el primer intento o no se encuentra la referencia en la cache. Por lo tanto, en la mayoría de los casos, el swap no es necesario.

Durante es swapping la cache no puede responder los accesos desde la CPU. Con ayuda del hardware se puede reducir el tiempo requerido para realizar swaps. Usamos el mismo hardware que se usa en la cache de columnas asociativas, este consiste primariamente de una buffer adicional, cuyo costo es muy bajo. Un swap requiere, en promedio, de solo un ciclo. Se ha considerado para el diseño y la simuación solo un ciclo.

Con la técnica de bloque MRU multiple, todos los aciertos para los dos esquemas de secuencias de referencias que siguen a continuación serán aciertos al primer intento, incluyendo el peor caso. Los diseñadores pueden usar este esquema para extender las caches MRU originales u otros esquemas para un mejoramiento de la performance.

 Volver al índice