La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Gustavo Andrés Uribe Gómez

Presentaciones similares


Presentación del tema: "Gustavo Andrés Uribe Gómez"— Transcripción de la presentación:

1 Gustavo Andrés Uribe Gómez
Memoria Caché La palabra cache viene del frances que significa escondite. Pero se ha reconocido en el español como caché igual que la palabra sinónimo de elegancia. Gustavo Andrés Uribe Gómez

2 Características Principales de las Memorias
Word: Es el número de bits de organización natural de la memoria. "usualemente" es equivalente al número de bits con que trabaja el procesador.  Unidad direccionable: Son el número de bits que tienen dirección única. En muchos casos las unidades direccionables son las palabras, sin embargo existen muchos sistemas que tienen el byte como unidad direccionable.  La capacidad máxima de unidades direccionables esta determinado por N= 2A . Donde A es el número de bits del bus de direcciones . Unidad de transferencia: Número de bits leídos o escritos en una operación. Direct access Method: Método de lectura y/o escritura en memorias usando un mecanismo compartido y el tiempo para alcanzar las diversas direcciones varía dependiendo de su posición física. Ejemplo: Discos. Random Access Method: El tiempo de acceso a todas las direcciones es una constante. Associative Access Method: Es un tipo de acceso aleatorio en el cual no se busca por una dirección, sino por una porción del contenido. En otras palabras se accede mediante una "búsqueda" simultanea por todas las posiciones. Access time (latencia): tiempo que tarda en ejecutarse una operación de lectura o escritura. Cycle time: Tiempo entre dos operaciones consecutivas de escritura o lectura.

3 Jerarquía de Memorias A medida que jerarquía desciende, ocurre:
A medida que jerarquía desciende, ocurre: Decrece el costo por bit Incrementa la capacidad Incrementa el tiempo de acceso Decrece la frecuencia con la que el procesador accede a la memoria.

4 Principios de la Memoria Caché
El nivel 3 de la memoria cache tiene copia de sectores de la memoria principal, el nivel 2 tiene copia de algunos sectores de memoria del nivel 3 de cache y el nivel 1 tiene copia de algunos sectores del nivel 2 de caché.

5 Principios de la Memoria Caché
En la cache se copian bloques de la memoria de nivel superior. Por ejemplo cuando le procesador realiza el fetch de una instrucción y esta instrucción no se encuentra en cache, la instrucción es cargada en la cache junto con las siguientes k instrucciones. El tag, identifica el bloque almacenado en esa línea de la caché. Puede ser una parte de la dirección de la memoría principal (caché RAM) o una parte del contenido (caché Asociada).

6 Diagrama de Flujo Lectura Memoria con Caché

7 Ejemplos de Memoria Caché

8 Evolución Memoria Caché - Intel

9 Elementos de Diseño de Memoria Caché
Cache Address Logical: Las direcciones son asignadas según el modo de direccionamiento del procesador. Mapping Function: Algoritmo de asignación de las líneas de caché a los bloques de memoria de mayor nivel. En la memoria principal los bloques normalmente son de 4 bytes. Direct mapping: Asignación directa de cada bloque de la memoria principal en solo una línea de la caché.

10 Caché de Direccionamiento Lógico
MMU (Memory Managemen Unit) : Se encarga de convertir las direcciones lógicas a direcciones físicas, proteger la memoria principal (Posiciones de memoria protegidas) y maneja la caché.

11 Caché de Direccionamiento Físico

12 Caché de Asignación Directa

13 Caché de Asignación Directa

14 Caché Asignación Directa
Para este caso la dirección de memoria principal es dividida en 3 partes Tag, line y word. tag: Parte alta de la dirección y es almacenada en la memoria cache como identificador único de una dirección. line: linea de la memoria cache en la cual se almacena el bloque. Word: Byte o palabra específica dentro del bloque que se quiere leer o escribir. En este ejemplo los bloques son de 4 bytes El problema de este tipo de asignación directa es que si un programa necesita frecuentemente datos asignados a la misma línea de la caché entonces la caché continuamente será refrescada ocasionando retardo. Este fenómeno se conoce como thrashing.

15 Caché de Asignación Asociativa
En la asignación asociativa un bloque de memoria puede estar en cualquier línea de la memoria caché.

16 Caché de Asignación Asociativa
El problema de este tipo de memoria cache es que para encontrar una dirección dentro de la caché debe compararse con cada una de las posiciones de la memoria caché y al mismo tiempo.

17 Caché de Asignación Asociativa de Grupo
La memoria caché se divide en v grupos de líneas. Cada bloque de memoria principal puede ser asignado a k líneas, ubicadas consecutivamente en la caché.  m=v x k Donde m es el número de líneas de la caché. Este tipo de  memoria cache adopta cada una de las ventajas de las anteriores.

18 Caché de Asignación Directa de Grupo
Es una manera distinta de ver la asignación asociativa de grupo. La memoria caché se divide en v grupos de k líneas. Cada bloque de memoria principal puede ser asignado a una de las k líneas. m=v x k Donde m es el número de líneas de la caché. La configuración más común es v=m/2 y k=2.

19 Caché de Asignación Directa de Grupo
En este ejemplo k=2 y se conoce como una caché de asignación asociada de 2 vías.

20 Algoritmos de reemplazo
En la asignación directa no hay elección. Ultimo recientemente usado (LRU) Cola (FIFO) Menos Frecuentemente Usado (LFU) Aleatorio (Random) Los algoritmos de reemplazo, son los que permiten decidir cual de los bloques sobrescribir si uno nuevo bloque necesita ser gravado en la memoria. La implementación de estos algoritmos es a nivel de hardware. LRU: Las lineas de la memoria cache se marcan con un bit que indica cual linea a sido recientemente usada dentro de los grupos. La caché reemplazará los que no se estén usando. LFU: El algoritmo reemplaza la linea de la caché que menos se haya usado. Para esto se debe asociar una contado para cada línea de la caché.

21 Políticas de Escritura
Problema en múltiples procesadores (caché por procesador) y múltiples dispositivos accediendo a la memoria principal. Soluciones Write throught: Mantener siempre actualizada la memoria principal cada vez que se realice una operación de escritura. Todos las caches se actualizan al realizarse una escritura en la memoria principal.  Write back: Cada línea en la caché tiene un bit de Update, que indica que la línea a sido actualizada. Los sistemas de I/O no pueden acceder a la memoria principal sino a la caché. Antes de reemplazar una línea de la memoria caché es necesario sincronizar la información que no esté actualizada en la memoria principal. Puede darse el caso también que la memoria principal haya sido modificada por ejemplo en el caso de que un dispositivo de I/O acceda directamente a la memoria principal. Con el Write trought se crea un cuello de botella en la memoria principal y con el Write back se necesita una compleja circuitería y posiblemente un cuello de botella en la caché. Estas dos son soluciones para el caso de múltiples dispositivos accediendo a la memoria principal, pero no solucionan el problema para múltiples caches, para solucionar este problema se usan algoritmos de coherencia de caché que no se estudiarán aquí.

22 Line Size Bloques grandes de memoria principal reducen el número de bloques que se pueden asignar en la caché y ocasiona que las lineas tengas que ser actualizadas muy frecuentemente. El tamaño de la caché optima varía de acuerdo al programa y hasta el momento se considera que está entre los 8 y 32 bytes. Aunque para sistemas de alta complejidad computacional se usan de 64 a 128 bytes. El tamaño de la línea de caché no solo comprende los bits asignados de la memoria principal, sino también información asociada.    

23 Número de Caches La caché de nivel L2 y L3 puede ubicarse en el chip o fuera de él, pero con memorias SRAM. El uso de diferentes niveles de caché mejoran el rendimiento de los procesadores, sin embargo aumentan considerablemente la complejidad del procesador, aumentando la dificultad de los algoritmos de reemplazo y las políticas de escritura.  El uso de la caché L1 para datos e instrucciones por separado favorece los procesadores superescalares o de ejecución en paralelo. En los procesadores superescalares se puede dar el caso de que mientras un proceso este solicitando la instrucción a ejecutar, otro proceso este accediendo a un dato en memoria.

24 Número de Caches

25 Pentium 4 - Caché Caché L1 8Kbytes Líneas de 64 bytes
Asignación de 4 vías asociativa de grupo. Caché L2 512Kbytes Líneas de 128 bytes Asignación de 8 vías asociativa de grupo. Caché L3 en el chip 1 MB La caché L1 es usada para las micro-instrucciones.

26 Caché ARM

27 GRACIAS


Descargar ppt "Gustavo Andrés Uribe Gómez"

Presentaciones similares


Anuncios Google