Correspondencia directa
En la correspondencia directa el bloque Bj de Mp se puede ubicar sólo en el marco de bloque MBi que cumple la siguiente relación i = j mod m, donde m es el número total de líneas que tiene la caché. En la tabla siguiente se especifica el conjunto de bloques que se pueden ubicar en una línea de Mc:
Interpretación de una dirección física en correspondencia directa:
2w palabras/bloque
2s bloques de Mp
2r marcos de bloque en Mc (2r = m)
2s-r veces contiene Mp a Mc
Los s – r bits de la etiqueta diferenciarán a cada uno de los bloques de Mp que pueden ubicarse en el mismo marco de bloque de Mc. El directorio caché en correspondencia directa contendrá un registro de s – r bits por cada marco de bloque para contener la etiqueta del bloque ubicado en ese momento en dicho marco.
El mecanismo de obtención del contenido de una dirección física en cachés con correspondencia directa podemos resumirlo en el siguiente esquema:
Ejemplo: para los tres tipos de correspondencia utilizaremos los siguientes datos:
• Tamaño de bloque K = 4 bytes = 22 => w = 2
• Tamaño de Mc = 64 KBytes = 216 Bytes = 214 marcos de bloque => r = 14
• Tamaño de Mp = 16 MBytes = 224 Bytes = 222 bloques => s = 22
Una Mc de correspondencia directa se puede implementar sobre una RAM con longitud de palabra suficiente
para ubicar un bloque y los bits de etiqueta (directorio), tal como se muestra en la siguiente figura:
En una operación de lectura se lee la palabra completa de la RAM, es decir, la línea y la etiqueta.
Si la etiqueta leída coincide con la procedente de la dirección física, significa que la línea contiene la palabra de Mp referenciada por dicha dirección física: se produce un acierto de caché. En este caso con los w bits de palabra se selecciona la palabra referenciada dentro de la línea.
Si no coinciden las etiquetas, significa que Mc no contiene el bloque de Mp al que pertenece la palabra referenciada, por lo que se produce un fallo de caché.
Parte de un posible contenido de Mc en un instante determinado para el ejemplo anterior podría ser el siguiente:
Se ha dibujado Mp dividida en zonas consecutivas de tamaño 64 KB (igual que el tamaño de Mc) para facilitar la correspondencia de los bloques de Mp y los marcos de bloque de Mc.
Fuente: Estructura de Computadores, Facultad de Informática, UCM