Funciones de correspondencia de la caché

Ya que hay menos líneas de caché que bloques de memoria principal, se necesita un algoritmo que hace corresponder bloques de memoria principal a líneas de caché. Se requiere algún medio para determinar qué bloque de memoria principal ocupa actualmente una línea dada de caché. Como consecuencia, la elección de la función de correspondencia determina cómo se organiza la caché.

1. Correspondencia directa

En esta técnica de correspondencia un bloque de memoria principal se asigna siempre a una sola línea de la memoria caché (Y esta también es su desventaja). Una línea de caché se corresponde con un conjunto explícito de bloques de memoria principal y puede recibir más de un bloque.

“Cada bloque puede ir a una sola línea y cada línea puede recibir más de un bloque”

Usar una parte de la dirección como número de línea proporciona una correspondencia o asignación única de cada bloque de memoria principal en la caché.

Untitled

<aside> ⚠️ Cada línea tiene su etiqueta y también cada bloque tiene su etiqueta, acá estamos trabajando con la etiquetas de los bloques

</aside>

2. Correspondencia por asociativa

En esta técnica de correspondencia cada bloque de memoria principal puede cargarse en cualquier línea de la caché. El campo etiqueta identifica unívocamente un bloque de memoria principal y la búsqueda de etiquetas se realiza en paralelo para determinar si un bloque está en la caché.

Ventajas:

Desventaja:

Untitled

3. Correspondencia asociativa por conjuntos

Esta tercera técnica de correspondencia combina la simplicidad de la asignación directa con la flexibilidad de la asignación asociativa sin presentar desventajas.