Memoria caché
-
Upload
epadilla024 -
Category
Documents
-
view
35 -
download
4
description
Transcript of Memoria caché
MemoriaMemoria CACHÉ
1https://goo.gl/RRmsli
Chapter 2 - Computer Architecture - A quantitative approach Hennessy & Patterson, Fifth edition, 2013
2
3
Un cuello de botella entre el procesador y la memoria
4
5
Caché
Un espacio oculto para el almacenamiento de provisiones, armas, tesoros, etc.
Una memoria de rápido acceso a los datos o instrucciones recientemente usados o de uso más frecuente
De manera general:
Optimizar transferencias de datos entre diferentes elementos de sistemas
6
7
Acierto: Comunicación procesador - caché
8
Al no encontrar el bloque 12, se produce un Fallo,
9
10
Principio de localidad
11
12
13
Jerarquía de Memoria
14
Métricas de desempeño CACHÉ
Tasa de aciertos
Porcentaje de accesos encontrados en la caché
Tasa de Fallos
Fracción de referencias a memoria no encontradas en caché (fallos/accesos) = 1-Tasa de aciertos
Típicamente (en porcentajes):
3% -10% para L1
Tiempo de acierto
Tiempo para entregar al procesador una línea encontrada en la caché
Incluyendo el tiempo para determinar si esa línea está en la caché
Típicamente, el tiempo de acierto es de 1 a 2 ciclos de reloj para L1
Penalidad por fallo
Tiempo adicional debido a un fallo
Típicamente entre 50 a 200 ciclos de reloj
15
→ Costo de los fallos de CACHÉ
Hay una enorme diferencia entre un acierto (hit) y un fallo (miss)
por ejemplo de hasta 100x
Considere lo siguiente: 99% de aciertos es dos veces mejor que 97% de aciertos:
Con un tiempo de acierto de un ciclo y un tiempo de fallo de 100 ciclos
Tendremos una Tasa Promedio de Acceso:
97% aciertos: 1 ciclo + 0.03 * 100 ciclos = 4 ciclos
99% aciertos: 1 ciclo + 0.01 * 100 ciclos = 2 ciclos
Entonces, usamos el concepto: Tasa de fallos, en vez de tasa de aciertos
16
Jerarquías de Memoria
Algunas propiedades perdurables de sistema de hardware y software:
Tecnologías de almacenamiento más rápidas casi siempre cuestan más por byte y tienen menor capacidad
La brecha entre tecnologías de memoria respecto a Velocidad es amplia
registros ↔ caché(SRAM) ↔ DRAM ↔ HDD, …
Programas bien escritos tienden a hacer uso apropiado del principio de localidad
Esto sugiere un enfoque para organizar la memoria y los sistemas de almacenamiento conocido como Jerarquía de Memoria 17
Jerarquías de Memoria
principio fundamental:
Cada nivel k sirve como caché para el nivel k+1 más grande, pero más lento
Funcionamiento
Debido al principio de localidad, los programas tienden a acceder a los datos en el nivel k, mas a menudo que a los datos en un nivel k+1
por lo que, el almacenamiento a nivel k + 1 puede ser más lento, y por lo tanto más grande y más barato por bit
Idea principal
La Jerarquía de Memoria crea un pool de recursos de almacenamiento que cuesta tanto como el almacenamiento barato cercano en el nivel inferior, pero que sirve datos a una tasa similar a la del almacenamiento rápido cercano por la parte superior
18
19
20
21
22
Tarea: ¿Qué tecnología se usa en la construcción de m. Caché?
¿y, en las memorias RAM?
guía: DRAM / SRAM
23
Organización de la Memoria Caché
24
25
Función de mapeo
1. Directo: Cada bloque de memoria principal es asignado a una única línea de caché, pero cada línea puede recibir más de un bloque
2. Asociativa: Cada bloque de memoria principal puede ser cargado en cualquier línea de la caché
3. Asociativo por conjuntos: Toma lo mejor de cada uno de los dos tipos
26
Mapeo directoMod 4
bloques
27
28
29
Tamaño típico de un bloque o línea de caché: 32 o 64 bytes
30
Analicemos:
¿Qué puede inferir de?
1. Inicialmente, la memoria CACHÉ está vacía 2. Flujos de acceso: (addr, hit/miss)
(10, miss), (11, hit), (12, miss), ….
31
Problemas con caché de mapeo directo
32
Mapeo Asociativo↔Mapeo Directo
Que pasa si pudiéramos almacenar datos en cualquier parte de la caché?
Esto relentizaría la caché
Revisemos:
conflictos más cara
00100110
33
Mapeo Directo - Direccionamiento
Ejemplo: Considere 2² bloques con 2¹ byte por bloque y direcciones de 4 bit. ¿Cuál sería la dirección caché del byte número 13 (1101)
Desplazamiento (n-bits) = 1: un bit es suficiente para conocer el desplazamiento (2¹ byte)
Index (k bits) = 2: con dos bits, podemos identificar los 2² bloques
Tag: Por diferencia, 1 bit para identificar qué byte de la memoria
1 10 1
34
Mapeo Asociativo por conjuntos
¿Dónde irá el contenido de la dirección 0x1833?
Tamaño de bloque o línea de caché de 16 bytes
0x1833 en binario es 00...0001 1000 0011 0011Desplazamiento
4 bits
35
Reemplazo de bloques
Un bloque vacío en el conjunto correcto puede ser usado
Si no hay bloques vacíos, ¿Cuál deberíamos reemplazar?
Reemplacemos alguno, por supuesto, pero ¿Cual?
Típicamente, la caché usa algo cercano al Usado Menos Reciente (LRU -Least Recently Used)
Con la intención de maximizar la localidad temporal
36
Analicemos ahora:
¿Qué puede inferir de?
1. Inicialmente, la memoria CACHÉ está vacía 2. Flujos de acceso: (addr, hit/miss)
(10, miss), (12, miss), (10, miss)
37
Organización General de CACHÉ (S,E,B)
38
Lecturas de caché
39
Ejemplo: Caché de mapeo directo (E=1 bloque/ conjunto)
Mapeo directo: Una línea por conjunto / Asuma tamaño de bloque: 8 byte
1
40
Ejemplo: Caché de mapeo directo (E=1 bloque/ conjunto)
Mapeo directo: Una línea por conjunto / Asuma tamaño de bloque: 8 byte
2
3 41
Ejemplo: Caché de mapeo directo (E=1 bloque/ conjunto)
Mapeo directo: Una línea por conjunto / Asuma tamaño de bloque: 8 byte
Si no hay coincidencia, la línea entera es reemplazada
42
Ejemplo: Caché de conjunto asociativo(E vías)
E = 2: Dos líneas por conjunto / Asuma tamaño de bloque: 8 byte
1
43
Ejemplo: Caché de conjunto asociativo(E vías)
E = 2: Dos líneas por conjunto / Asuma tamaño de bloque: 8 byte
2
344
Ejemplo: Caché de conjunto asociativo(E vías)
E = 2: Dos líneas por conjunto / Asuma tamaño de bloque: 8 byte
Si no hay coincidencia:
La línea es reemplazada ( no todo el conjunto)
Políticas de reemplazo: Ramdom, Least Recently Used (LRU)
45
Tipos de fallos de caché (3 C’s)
Cold miss (Obligatorio)
Ocurre en el primer acceso a un bloque
Conflict miss ( Fallo por conflicto)
Debido a la organización de la caché
El hardware de caché limita los bloques a un pequeño subconjunto (a veces sólo uno) de los espacios de caché disponibles
mapeo directo (solo a uno): el bloque i debe ser puesto en (i mod size)
asociativa por conjuntos (a varios): n es potencia de 2
Ocurre cuando múltiples objetos son mapeados al mismo espacio
Capacity miss (Fallo por capacidad)
Ocurre cuando el conjunto de bloques de caché activa (conjunto de trabajo) es mayor que el total de memoria caché (simplemente no encaja)
46
¿Qué sucede en las escrituras (write caché)?
Existen múltiples copias de los datos
L1, L2, posiblemente en L3 y Memoria Principal
¿Cuál es el mayor problema con este enfoque?
coherencia: La no concordancia entre las diferentes copias
47
Aciertos (hit) en la Escritura
Políticas para Acierto de escritura
Write-through → Escritura Inmediata: Escribe inmediatamente a la Memoria Principal
Desventaja, cada escritura implica ir hasta la Memoria principal
Write-back → Escritura diferida:
Escritura diferida a la Memoria principal hasta que la línea se va a reemplazar
Necesita un bit (dirty bit - bit sucio) que indica si la línea es o no diferente de la línea en memoria principal
48
Fallos (miss) en la Escritura (No)
Políticas para fallos de escritura
Write-allocate →:
Carga en caché, actualiza la línea en caché
Bueno si siguen más escrituras en el mismo lugar
No-Write-allocate →:
Simplemente, escribir de inmediato a la Memoria principal
49
políticas típicas de escritura (no)
Usualmente: Write-back + write-allocate
Ocasionalmente: Write-through + No-Write-Allocate
50
Créditos
51