En la búsqueda de mejorar la performance
se han propuesto esquemas que incrementan la asociatividad
de la cache. Al crecer la asociatividad se reduce la tasa de errores, esto
se debe a que se reduce el número de conflictos en las referencias.
Una implementación tradicional de una cache
set-asociativa tiene la desventaja de tener un tiempo de ciclo de acceso
más largo que el de una cache directamente mapeada. Muchos métodos
se han propuesto para implementar la asociatividad de maneras no tradicionales.
Sin embargo, la mayoría de ellos sólo han logrado una asociatividad
cercana a dos. Otras, con mayor asociatividad, aún presentan tiempos
de ciclo de acceso largos o sufren de un tiempo
promedio de acceso prolongado. Aquí se proponen dos estrategias
para implementar caches con una asociatividad mayor: la Cache
Multi-Columna Secuencial, y la Cache Multi-Columna
Paralela. A fin de lograr el mismo tiempo de ciclo de acceso que el
de una cache directamente mapeada, la memoria de datos en en estos tipos
de cache se organiza en un banco de datos. Se usa la técnica
de bloque MRU multiple para aumentar la proporción de aciertos
al primer intento, y así reducir el tiempo de acceso promedio. Mientras
la Cache Multi-Columna Paralela realiza el chequeo de los tags en
paralelo, la Cache Multi-Columna Secuencial busca secuencialmente en los
lugares del set, y usa la información del índice para
filtrar las pruebas innecesarias. En el caso de una asociatividad de 4,
ambas logran el menor valor para la tasa de errores para una cache
4-asociativa. Los resultados de la simulación muestran que ambos
esquemas pueden efectivamente reducir el tiempo de acceso promedio. Ellos
tienen una mejora promedio de 9.8% y 10.8% en el tiempo de acceso promedio
sobre una cache directamente mapeada, y tienen una mejora relativa promedio
de 130% y 153% sobre la cache
de columnas asociativas, respectivamente, cuando el tamaño de
la cache es de 4Kb costo por errores
es de 20 ciclos. La mejora de la Cache Multi-Columna Secuencial en el tiempo
promedio de acceso alcanza al 22.4% cuando la asociatividad es de
8 y el costo por error aumenta
a 100 ciclos. Los dos esquemas son efectivos para ambos tipos de caches,
pequeños y grandes (de 1Kb a 128Kb).
Volver al índice