domingo, 29 de noviembre de 2015

memorias caché

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.
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.

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


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