Memoria cache
Localidad espacial: se plantea que tras una referencia a una posición de memoria
dada, es mucho más probable que se acceda a posiciones cercanas a ella que a
posiciones lejanas a la misma. Esto deriva de la tendencia a almacenar los datos en
zonas contiguas.
6.6 Correspondencias
Ya que hay menos líneas de cache que bloques de memoria principal, se necesita un
algoritmo que haga corresponder bloques de memoria principal a líneas de cache.
Además, se requiere algún medio para determinar que bloque de memoria principal
ocupa actualmente una línea dada de cache. La elección de la función de
correspondencia determina cómo se organiza la cache. Pueden utilizarse tres
técnicas: directa, asociativa y asociativa por conjuntos.
𝑖 = 𝑗 𝑚𝑜𝑑𝑢𝑙𝑜 𝑚
Dónde:
Con este tipo de correspondencia, hay flexibilidad para que cualquier bloque sea
reemplazado cuando se va a escribir uno nuevo en la cache. La principal desventaja
de la correspondencia asociativa es la compleja circuitería necesaria para examinar en
paralelo las etiquetas de todas las líneas de cache.
Si alguna etiqueta de la memoria de etiquetas coincide con el campo de etiquetas de
la referencia a memoria principal, se extrae la palabra de la línea desde la posición
indicada por el campo de palabra. Si la palabra a que se hizo referencia no se
encuentra en la memoria cache, se deberá traer desde la memoria principal el bloque
de memoria que contiene la palabra buscada, recuperando luego esa palabra referida
desde la memoria cache.
𝑚=𝑣∗𝑘
𝑖 = 𝑗 𝑚𝑜𝑑𝑢𝑙𝑜 𝑘
Dónde:
i=número de conjunto de cache
j=número de bloque de memoria principal
m=número de líneas de la cache
A medida que fue creciendo el tamaño de los circuitos integrados de silicio, así como
la densidad de integración de los elementos que lo componen, se hizo posible incluir la
memoria cache en el mismo circuito integrado que el procesador: cache on-chip o
interna.
Esta cache puede ser más rápida que una memoria cache externa, es decir, una
cache off-chip o externa. Sin embargo, la tecnología actual no ofrece la densidad
suficiente como para colocar toda la memoria cache en el mismo circuito integrado del
procesador.
Por este motivo, se desarrollaron la memoria cache de múltiples niveles, siendo los
siguientes:
Nivel L1 (cache interna): a menudo referida como cache o cache interna principal,
es utilizada para acceder a datos importantes y de uso frecuente. Es la más rápida y
más costosa se integra en el mismo circuito integrado que contiene al procesador,
mientras que el resto de la memoria se coloca fuera de dicho circuito integrado. Las
memorias cache de datos e instrucciones se mantienen separadas en este nivel.
Nivel L2 (cache externa): se utiliza para almacenar información recientemente
visitada. También es conocida como cache secundaria, está diseñada para reducir el
tiempo necesario para acceder a los datos en los casos en que los datos se hayan
utilizado previamente. Es más lenta que la memoria cache L1. Se integra fuera del
circuito integrado del procesador. Los datos e instrucciones se implementan
unificadas, es decir, la misma memoria contiene tanto datos como instrucciones.