Memoria Cache
Jerarquías de memoria en computadores
Contenido
Concepto de Jerarquía de Memoria Organización de la caché
Localización de bloques, asociatividad.
Políticas de lectura y escritura
Optimizaciones
Tema 3. Memoria Caché.
2
Sería estupendo… pero imposible.
Tema 3. Memoria Caché.
3
¿Qué podemos hacer?
Combinar diferentestecnologías de memoria.
- Diferencias radican en tamaño y precio (€/bit)
- Memorias grandes son baratas pero lentas.
- Memorias rápidas son caras pero pequeñas.
Explotar el principio de localidad
- Accesos repetidos en una ventana de tiempo (ej. Bucles) - Patrón de accesos previsible (ej. Recorrido secuencial de arrays)
Tema 3. Memoria Caché.
4
Jerarquía de Memoria
Tema 3.Memoria Caché.
5
Objetivos de un sistema de cachés
La estrategia consiste en intentar tener los datos e instrucciones que puede necesitar el procesador en los niveles más altos de la jerarquía.
¿Predicción? Principio de localidad.
El acceso a las memorias más rápidas permite mejorar el tiempo de acceso a memoria más lenta. Casi todo dentro de un ordenador es una cache
- Losregistros de la CPU lo son de las variables
- La cache L1 lo es de la L2 - La cache L2 lo es de la memoria principal - La memoria principal lo es del disco duro
- …
Tema 3. Memoria Caché. 6
Conceptos básicos y definiciones
Las entradas de una caché se denominan bloques
- Un bloque es la unidad mínima de información en caché y que se transfiere entre dos niveles de la jerarquía.
Si buscamos un datos en la caché y lo encontramos, tenemos un hit o acierto; si no lo que tenemos es un fallo de caché. La frecuencia de fallos es el porcentaje de los accesos a memoria que causan un fallo de caché. Un fallo de caché obliga a una penalización por fallo: el número de ciclos necesarios para obtener el dato de los niveles inferiores.
Tema 3. Memoria Caché.
7
Conceptosbásicos y definiciones (y II)
Ciclos de parada = Nº Instrucciones* Nº Accesos a Memoria/Inst.* Frec. Fallos*Penalización por fallo
Tiempo medio acceso a memoria = Tiempo Acierto + Frec. Fallos*Penalización/Fallo
Tema 3. Memoria Caché.
8
Aspectos básicos en el diseño de una cache
Política de emplazamiento de los bloques: correspondencia entre los bloques de nivel superior einferior
Identificación: cómo se localiza un bloque en la cache
Reemplazo: qué bloque se expulsa cuando se necesita espacio libre Política de escritura: cómo se tratan las escrituras
Tema 3. Memoria Caché.
9
Aspectos básicos
Las caches se organizan en líneas que contienen bloques
el tamaño de las líneas suele ser potencia de 2
típicamente entre 16 y 128 bytesSet 0
Set j-1 Block 0 Sector 0 Byte 0 Block k-1 Replacement info Sector m-1 Byte n-1 Valid Tag Dirty Shared
Tema 3. Memoria Caché.
10
Cuestiones a considerar
¿Dónde colocar un bloque en el nivel superior de la jerarquía? ¿Cómo se localiza un bloque en el nivel superior de la jerarquía?
¿Qué bloque debe eliminarse si se produce un fallo y la cache está completamentellena?
¿Qué sucede cuando se quiere escribir un dato en memoria?
¿se escribe en la cache? ¿se escribe en algún sitio más?
Tema 3. Memoria Caché.
11
Direccionamiento
Partes de una dirección
# bloque desplazamiento
Tema 3. Memoria Caché.
12
Ubicación de los bloques
Direct mapped (correspondencia directa)
el bloque solo puede ubicarse en 1 sitiohabitualmente: ubicación = dirección modulo (# bloques en la cache)
Fully associative (completamente asociativa)
el bloque puede ser colocado en cualquier lugar
Set associative (asociativa por conjuntos)
el conjunto (set) es un grupo de bloques de la cache el conjunto asociado es fijo. Dentro del conjunto puede estar en cualquier lugar ubicación = (dirección del bloque) modulo (# conjuntos)...
Regístrate para leer el documento completo.