memoria cache
Upcoming SlideShare
Loading in...5
×
 

memoria cache

on

  • 5,285 views

 

Statistics

Views

Total Views
5,285
Views on SlideShare
5,285
Embed Views
0

Actions

Likes
1
Downloads
88
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    memoria cache memoria cache Document Transcript

    • Memoria CachéJerarquía de memoria Registros Cache nivel 1 Cache nivel 2 Memoria principal Cache de disco Disco Memoria óptica Cintas 1
    • Localidad de las referencias En el curso de la ejecución de un programa, las referencias a memoria tienden a estar agrupadas. Ejemplo: bucles, matrices, vectores.Cache Cantidad pequeña de memoria rápida. Está entre la memoria principal normal y la CPU. Puede localizarse en el chip o módulo de la CPU. Transferencia de bloques Transferencia de palabras Memoria principal 2
    • Operación de la cache: resumen La CPU solicita contenidos de la localización de memoria. Comprueba la cache para estos datos. Si está, la obtiene de la cache (rápidamente). Si no está, lee el bloque requerido a partir de la memoria principal hasta la cache. Después, de la cache los entrega a la CPU. La cache incluye etiquetas para identificar qué bloque de la memoria principal está en cada ranura de la cache.Diseño de la cache Tamaño Función de correspondencia Algoritmo de sustitución Política de escritura Tamaño del bloque Número de caches 3
    • El tamaño importa Coste Una cache grande es costosa. Velocidad Cuanto más cache, más rapidez (hasta cierto punto). Comprobar la cache para acceder a los datos, lleva tiempo.Organización típica de cache Direcciones Buffer de direcciones Bus del sistema Procesador Buffer de datos Datos 4
    • Función de correspondencia Cache de 64 kbytes. Los datos se transfieren en la cache en bloques de 4 bytes. Ejemplo: la cache es de 16k (214) líneas de 4 bytes. Memoria principal de 16Mbytes. Dirección de 24 bits: (224=16M).Correspondencia directa Cada bloque de memoria principal se corresponde a sólo una línea de cache. Ejemplo: si un bloque se encuentra en la cache, debería estar en un lugar específico. La dirección está en dos partes. Los w bits menos significativos identifican una sóla palabra. La mayoría de los s bits significativos especifican un bloque de la memoria. Los s bits significativos se distribuyen en un campo de línea r en la cache y en una etiqueta de s - r (los más significativos). 5
    • Correspondencia directa:Estructura de la direcciónEtiqueta s-r Línea o ranura r Palabra w 8 14 2 Dirección de 24 bits. Identificador de palabra de 2 bits (bloques de 4 bytes). Identificador de bloque de 22 bits. Etiqueta de 8 bits (=22-14). Ranura o línea de 14 bits. Ninguno de los dos bloques en la misma línea tiene el mismo campo de etiqueta. Compruebe los contenidos de la cache mediante la búsqueda de la línea y la comprobación de la etiqueta.Correspondencia directa:Tabla de la línea de cache Línea de cache Bloques de memoria principal asignados 0 0, m, 2m, 3m, …, 2s-m 1 1, m+1, 2m+1, …, 2s-m+1 m-1 m-1, 2m-1, 3m-1, …, 2s-1 6
    • Correspondencia directa:Organización de cache Memoria Cache principal Etiqueta Datos Dirección de memoria Etiqueta Línea Palabra Comparación (Acierto de cache) (Fallo de cache) Ejemplo de correspondencia directa Línea + Etiqueta Palabra Datos Número Etiqueta Datos de línea Cache de 16K palabras Memoria principal de 16 Mbytes 7
    • Correspondencia directa:ventajas y desventajas Simple. Poco costosa. Hay una posición concreta para cada bloque dado: Si un programa accede a dos bloques que se corresponden a la misma línea de forma repetida, las pérdidas de cache son muy grandes.Correspondencia asociativa Un bloque de memoria principal pueda cargarse en cualquier línea de la cache. La dirección de memoria se interpreta como una etiqueta y una palabra. La etiqueta identifica unívocamente un bloque de memoria. Todas las etiquetas de líneas se examinan para buscar una coincidencia. La búsqueda de cache es costosa. 8
    • Organización de cachetotalmente asociativa Memoria principal Etiqueta Datos Dirección de memoria Etiqueta PalabraComparación (Acierto de cache) (Fallo de cache)Ejemplo de correspondenciaasociativa Dirección Datos Número Etiqueta Datos de línea Cache de 16K palabras Memoria principal de 16 MBytes 9
    • Correspondencia asociativa:Estructura de la dirección Palabra Etiqueta 22 bits 2 bits La etiqueta de 22 bits está almacenada con cada bloque de datos de 32 bits. Compare el campo de etiqueta con la entrada de etiqueta en la cache para comprobar si ha tenido éxito. La dirección de 2 bits menos significativa identifica qué palabra de 16 bits se necesita en un bloque de datos de 32 bits. Ejemplo: Dirección Etiqueta Datos Línea de cache FFFFFC FFFFFC 24682468 3FFFCorrespondencia asociativa por conjuntos La cache se divide en un número de conjuntos. Cada conjunto contiene un número de líneas. Un bloque determinado se hace corresponder a cualquier línea en un conjunto determinado. Ejemplo: El bloque B puede asignarse en cualquiera de las líneas del conjunto i. Ejemplo: 2 líneas por conjunto. Correspondencia asociativa de 2 vías. Un bloque determinado puede asignarse en una de las dos líneas en un único conjunto. 10
    • Correspondencia asociativa por conjuntos Número de conjunto de 13 bits. El número del bloque de memoria principal es módulo 213. 000000, 00A000, 00B000, 00C000 … se hacen corresponder al mismo conjunto.Estructura de cache asociativa por conjuntos Memoria principal Etiqueta Datos Dirección de memoria Etiqueta Conjunto Palabra Conjunto 0Comparación Conjunto 1 (Acierto de cache) (Fallo de cache) 11
    • Correspondencia asociativa por conjuntos: Estructura de la direcciónEtiqueta Palabrade 9 bits Conjunto de 13 bits de 2 bits Utilice los campos de conjunto a la hora de determinar el conjunto de cache que necesita para poder verlo. Compare los campos de etiqueta para ver si tenemos éxito: Ejemplo: Dirección Etiqueta Datos Número de conjuntos 1FF 7FFC 1FF 12345678 1FFF 001 7FFC 001 11223344 1FFFCorrespondencia asociativa porconjuntos de dos vías Etiqueta Conj. +palabra Datos N.º de Etiqueta Datos Etiqueta Datos conjunto Cache de 16K palabras Memoria principal de 16Mbytes 12
    • Algoritmos de sustitución (1):Correspondencia directa No hay elección posible. Sólo hay una posible línea para cada bloque. Se necesita una sustitución de esa línea.Algoritmos de sustitución (2):Correspondencias asociativas yasociativas por conjuntos Los algoritmos deben implementarse en hardware (para conseguir velocidad). “Utilizado menos recientemente” (LRU). Ejemplo: en correspondencias asociativas por conjuntos de 2 vías. ¿Cúal de los 2 bloques es LRU? “Primero en entrar-primero en salir” (FIFO). Se sustituye aquel bloque que ha estado más tiempo en la cache. “Utilizado menos frecuentemente” (LFU). Se sustituye aquel bloque que ha experimentado menos referencias. Aleatoria (coger una línea al azar) 13
    • Política de escritura No se debe escribir sobre un bloque de cache, a no ser que la memoria principal esté actualizada. Las CPU múltiples pueden tener caches individuales. Un módulo E/S puede tener acceso directo a la memoria principal.Escritura inmediata Todas las operaciones de escritura se hacen, tanto en memoria principal como en cache. Las CPU pueden monitorizar el tráfico a memoria principal para mantener actualizada la cache local (CPU). Genera mucho tráfico. Retrasa la escritura. Recuerde los caches de falsa escritura inmediata. 14
    • Post-escritura Las actualizaciones se hacen sólo en la cache. Cuando tiene lugar la actualización, se activa un bit actualizar en la ranura de cache. Cuando un bloque es sustituido, es escrito en memoria principal, si el bit actualizar está activo. Las otras caches no son síncronas. Los módulos de E/S sólo pueden acceder a la memoria principal a través de la cache. El porcentaje de referencias a memoria para escritura es del orden del 15%.Otros elementos de diseño Caché de dos niveles: Puedo definir dos niveles de caché. Caché unificada frente a partida: Puedo definir una caché para datos y otra para instrucciones o bien una única caché dónde se almacena todo. Longitud de la línea. Cuanto mayor longitud tenga la línea, menos fallos tendremos, pero un fallo supone un coste muy alto (hay que trasvasar muchos datos de la memoria principal a la caché). 15