Memorias Cache
En informática,
la caché es la memoria de
acceso rápido de una computadora,
que guarda temporalmente los datos recientemente procesados (información).
La memoria caché es un búfer especial de memoria que poseen las
computadoras, que funciona de manera similar a lamemoria
principal, pero es de menor tamaño y de acceso más rápido. Es usada
por el microprocesador para reducir el tiempo de acceso a
datos ubicados en la memoria principal que se utilizan con más frecuencia.
La caché es una memoria que se sitúa entre la unidad central de procesamiento (CPU) y la memoria de acceso aleatorio(RAM)
para acelerar el intercambio de datos.
Cuando se accede por primera vez a un
dato, se hace una copia en la caché; los accesos siguientes se realizan a dicha
copia, haciendo que sea menor el tiempo de acceso medio al dato. Cuando el
microprocesador necesita leer o escribir en una ubicación en memoria principal,
primero verifica si una copia de los datos está en la caché; si es así, el
microprocesador de inmediato lee o escribe en la memoria caché, que es mucho
más rápido que de la lectura o la escritura a la memoria principal
Cache completamente asociativo
§
Búsqueda completa: el bloque puede
estar en cualquier bloque del cache
§
Comparar el tag del bloque con todos
los tags de los bloques del cache
§
Multiplexor selecciona bloque cuyo
tag coincide, si existe uno
§
Dato está disponible después de las
comparaciones.
Cache asociativo por conjuntos
§
Indexación parcial: encontrar el
conjunto del bloque
§
Búsqueda asociativa parcial:
encontrar el bloque dentro del conjunto
§
Comparar tags de bloques dentro del
conjunto
§
Multiplexor selecciona bloque dentro
del conjunto
§
Bloque disponible después de la
selección
Correspondencia totalmente asociativa
Esta técnica subsana el inconveniente
que se acaba de mencionar al estudiar la correspondencia directa, ya que
permite que un bloque de memoria principal se cargue en cualquier bloque de la
memoria caché.
Cuando la CPU genera una dirección
para acceder a una palabra de la memoria principal, su formato desde el punto
de vista de la memoria caché se divide en dos campos: etiqueta y palabra. El
número de bits de cada uno de estos campos viene dado por las relaciones
siguientes:
El funcionamiento de la
correspondencia totalmente asociativa se puede describir en los términos que
siguen:
Cuando se lee un nuevo bloque, con la
correspondencia totalmente asociativa, hay que decidir generalmente por cuál se
va a sustituir en la memoria caché. Los algoritmos de reemplazamiento se
diseñan con el fin de optimizar la probabilidad de encontrar la palabra
solicitada en la memoria caché. La principal desventaja de este procedimiento
es la necesidad de una circuitería, bastante compleja, para examinar en
paralelo los campos de etiqueta de todos los bloques de la memoria caché
(aumenta la complejidad de acceso). Aunque tiene como ventaja el que dos
bloques con localidad de referencia temporal no competirán por la misma línea
(bloque en la caché).
Correspondencia asociativa por
conjuntos
La correspondencia asociativa por conjuntos se puede ver como una correspondencia directa entre los bloques de la Mp y los conjuntos de la Mca, y como una correspondencia totalmente asociativa entre los bloques de un mismo conjunto.
La correspondencia asociativa por conjuntos se puede ver como una correspondencia directa entre los bloques de la Mp y los conjuntos de la Mca, y como una correspondencia totalmente asociativa entre los bloques de un mismo conjunto.
Cuando la CPU genera una dirección
para acceder a una palabra de la Mp, su formato desde el punto de vista de la
Mca se divide en tres campos: etiqueta, conjunto y palabra.
El funcionamiento de la
correspondencia asociativa por conjuntos se puede describir en los términos
siguientes:
En primer lugar se utiliza el número de conjunto de la dirección solicitada por el procesador para acceder al conjunto correspondiente de la Mca.
Se comparan simultáneamente
todas las etiquetas del conjunto seleccionado con la etiqueta de la dirección solicitada.
Si coinciden entonces se accede a la palabra pedida en la Mca, en caso
contrario se produce un fallo y habrá que ir a buscar la palabra a Mp.En primer lugar se utiliza el número de conjunto de la dirección solicitada por el procesador para acceder al conjunto correspondiente de la Mca.
MAPEO
Dado
que hay muchas menos bloques en cache que en memoria principal es necesario un
algoritmo para mapear bloques de memoria principal en bloques de cache.
La
organización de la caché impone la forma de mapeo.
CACHE DE MAPEO DIRECTO
Dirección
de memoria
Etiqueta,
Línea e Índice
Cada
bloque de MP tiene asignada una línea de cache
Etiqueta
o Etiqueta: el bloque de MP donde se halla la línea que contiene a la palabra
requerida
Línea:
la línea de caché donde está el bloque
Índice:
la plabra requerida
CORRESPONDENCIA DIRECTA O MAPEO DIRECTO
Cada
sector específico de la cache corresponde a varios sectores específicos de la
memoria principal. Cada vez que el procesador pide un dato, la controladora de
cache debe ir a esa ubicación para encontrar la información, ahorrando tiempo
de búsqueda.
La
gran desventaja de esta arquitectura de cache es que al corresponder varios
bloques de memoria RAM al mismo bloque en la cache, si un programa accede a
estos datos, la cache estará constantemente accediendo a la memoria principal
para actualizar la información.
Dos
o más bloque pueden ser asignados a una ubicación específica del cache, pero
esa ubicación solamente puede almacenar un bloque por vez.
La
cache debe buscar ese bloque para obtener información.
La
CPU pide el bloque de memoria 50.
Rendimiento
El tiempo medio (Tm) de acceso a un sistema de
memoria compuesto por una memoria principal y una memoria cache viene dado por:
Tm=TaPa + Tf(1-Pa)
·
Pa (tasa de aciertos): mide la probabilidad de
encontrar en la cache el dato al que se desea acceder. La tasa de fallos se
mide como (1-Pa)
·
Ta (Tiempo de acceso de la cache)
·
Tf (Tiempo de penalización): tiempo necesario
para tratar un fallo de cache, es decir, transferir el bloque que contiene la
dirección solicitada en caso de no encontrarse en la memoria cache y enviar la
palabra solicitada al procesador..Reailizado por : Dany J, Leon C,
Leonardo H,. Savatier Leon



