Sei sulla pagina 1di 51

Memoria

Memoria CACH
Chapter 2 - Computer Architecture - A quantitative approach
Hennessy & Patterson, Fifth edition, 2013

https://goo.gl/RRmsli

Un cuello de botella entre el procesador y la memoria

Cach
Un espacio oculto para el almacenamiento de provisiones, armas, tesoros, etc.

Una memoria de rpido acceso a los datos o instrucciones recientemente usados


o de uso ms frecuente

De manera general:
Optimizar transferencias de datos entre diferentes elementos de sistemas

Acierto: Comunicacin
procesador - cach

Al no encontrar el bloque
12, se produce un Fallo,

10

Principio de localidad

11

12

13

Jerarqua de Memoria

14

Mtricas de desempeo CACH


Tasa de aciertos
Porcentaje de accesos encontrados en la cach

Tasa de Fallos
Fraccin de referencias a memoria no encontradas en cach (fallos/accesos)
1-Tasa de aciertos

Tpicamente (en porcentajes):


3% -10% para L1

Tiempo de acierto
Tiempo para entregar al procesador una lnea encontrada en la cach
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

Jerarquas de Memoria
Algunas propiedades perdurables de sistema de hardware y software:
Tecnologas de almacenamiento ms rpidas casi siempre cuestan ms por byte y tienen
menor capacidad
La brecha entre tecnologas 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 Jerarqua de Memoria
17

Jerarquas de Memoria
principio fundamental:
Cada nivel k sirve como cach para el nivel k+1 ms grande, pero ms 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 ms lento, y por lo tanto ms grande y
ms barato por bit

Idea principal
La Jerarqua 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
18
tasa similar a la del almacenamiento rpido cercano por la parte superior

19

20

21

22

Tarea:
Qu tecnologa se usa en la construccin de m. Cach?
y, en las memorias RAM?
gua: DRAM / SRAM

23

Organizacin de la Memoria Cach

24

25

Funcin de mapeo
1. Directo: Cada bloque de memoria principal es asignado a una nica lnea de
cach, pero cada lnea puede recibir ms de un bloque

2. Asociativa: Cada bloque de memoria principal puede ser cargado en


cualquier lnea de la cach

3. Asociativo por conjuntos: Toma lo mejor de cada uno de los dos tipos

26

bloques

Mapeo directo
Mod 4
27

28

29

Tamao tpico de un bloque o lnea de cach:


32 o 64 bytes
30

Analicemos:
Qu puede inferir de?
1. Inicialmente, la memoria CACH est vaca
2. Flujos de acceso: (addr, hit/miss)

(10, miss), (11, hit), (12, miss), .

31

Problemas con cach de mapeo directo

32

Mapeo AsociativoMapeo Directo


Que pasa si pudiramos almacenar datos en cualquier parte de la cach?
Esto relentizara la cach
Revisemos:

0010
0110

conflictos

ms cara

33

Mapeo Directo - Direccionamiento

Ejemplo: Considere 2 bloques con 2 byte por bloque y direcciones de 4 bit.


Cul sera la direccin cach del byte nmero 13 (1101)
1
10 1
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
34

Mapeo Asociativo por conjuntos


Dnde ir el contenido de la direccin 0x1833?
Tamao de bloque o lnea de cach de 16 bytes

0x1833 en binario es 00...0001 1000 0011 0011

Desplazamiento
4 bits

35

Reemplazo de bloques
Un bloque vaco en el conjunto correcto puede ser usado
Si no hay bloques vacos, Cul deberamos reemplazar?
Reemplacemos alguno, por supuesto, pero Cual?

Tpicamente, la cach usa algo cercano al Usado Menos Reciente (LRU


-Least Recently Used)
Con la intencin de maximizar la localidad temporal

36

Analicemos ahora:
Qu puede inferir de?
1. Inicialmente, la memoria CACH est vaca
2. Flujos de acceso: (addr, hit/miss)

(10, miss), (12, miss), (10, miss)

37

Organizacin General de CACH (S,E,B)

38

Lecturas de cach

39

Ejemplo: Cach de mapeo directo (E=1 bloque/ conjunto)


Mapeo directo: Una lnea por conjunto / Asuma tamao de bloque: 8 byte

1
40

Ejemplo: Cach de mapeo directo (E=1 bloque/ conjunto)


Mapeo directo: Una lnea por conjunto / Asuma tamao de bloque: 8 byte

3
41

Ejemplo: Cach de mapeo directo (E=1 bloque/ conjunto)


Mapeo directo: Una lnea por conjunto / Asuma tamao de bloque: 8 byte

Si no hay coincidencia, la lnea entera es reemplazada


42

Ejemplo: Cach de conjunto asociativo(E vas)


E = 2: Dos lneas por conjunto / Asuma tamao de bloque: 8 byte

1
43

Ejemplo: Cach de conjunto asociativo(E vas)


E = 2: Dos lneas por conjunto / Asuma tamao de bloque: 8 byte

3
44

Ejemplo: Cach de conjunto asociativo(E vas)


E = 2: Dos lneas por conjunto / Asuma tamao de bloque: 8 byte

Si no hay coincidencia:
La lnea es reemplazada ( no todo el conjunto)
Polticas de reemplazo: Ramdom, Least Recently Used (LRU)

45

Tipos de fallos de cach (3 Cs)


Cold miss (Obligatorio)
Ocurre en el primer acceso a un bloque

Conflict miss ( Fallo por conflicto)


Debido a la organizacin de la cach
El hardware de cach limita los bloques a un pequeo subconjunto (a veces slo 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 mltiples objetos son mapeados al mismo espacio

Capacity miss (Fallo por capacidad)

46

Qu sucede en las escrituras (write cach)?


Existen mltiples copias de los datos
L1, L2, posiblemente en L3 y Memoria Principal

Cul es el mayor problema con este enfoque?


coherencia: La no concordancia entre las diferentes copias

47

Aciertos (hit) en la Escritura


Polticas 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 lnea se va a reemplazar
Necesita un bit (dirty bit - bit sucio) que indica si la lnea es o no diferente de la lnea en
memoria principal

48

Fallos (miss) en la Escritura (No)


Polticas para fallos de escritura
Write-allocate :
Carga en cach, actualiza la lnea en cach
Bueno si siguen ms escrituras en el mismo lugar
No-Write-allocate :
Simplemente, escribir de inmediato a la Memoria principal

49

polticas tpicas de escritura (no)


Usualmente: Write-back + write-allocate

Ocasionalmente: Write-through + No-Write-Allocate

50

Crditos

51

Potrebbero piacerti anche