Logo Studenta

Unidad 2 - Jerarquia de Memoria

¡Este material tiene más páginas!

Vista previa del material en texto

Jerarquía de 
Memoria
Unidad 2
Carreras:
• Lic. en Sistemas
• Ing. Informática
Ing. Carlos A. Afranllie
• Los programas comparten en la memoria tanto
su código como sus datos.
• Estrategia de optimización de rendimiento:
posibilitar a la CPU el acceso ilimitado y rápido
tanto al código como a los datos.
• Inconveniente: tecnológicamente, cuanto más
grandes son las memorias (más capacidad) más
lentas y costosas resultan.
Introducción
Los programadores quieren memorias grandes y
rápidas.
• Problema: no existe hoy en día una memoria a
la vez grande y rápida a un costo razonable.
• Crearemos la ilusión de una memoria de las
características deseadas combinando distintos
tipos de memoria -> Jerarquía de memoria.
Introducción
Analogía: mesa en la biblioteca
• Una buena selección de libros en la mesa (memoria
pequeña y rápida).
• Gran probabilidad de encontrar lo buscado sin ir a la
estantería.
• Visión de memoria grande (biblioteca) a la que se
accede rápido (tiempo de escoger un libro de la
mesa).
Objetivo: detectar zonas del programa con más
probabilidad de ser accedidas y llevarlas a la memoria
más rápida
Introducción
Principio de Localidad: “En un momento concreto, los
programas acceden a una parte relativamente pequeña de su
espacio de direcciones.”
• Localidad temporal: si se consulta un dato, seguramente
será consultado próximamente.
o Un libro de la mesa será consultado varias veces.
• Localidad espacial: si se consulta un dato, seguramente
otros datos cercanos a él serán consultados próximamente.
o Traemos un libro del estante -> los libros que están
próximos versarán sobre el mismo tema.
Principio de Localidad
• Localidad temporal de un programa.
o Bucles: datos e instrucciones.
for i:=1 to 1000 do
a := a + 2;
b := b * 3;
c := c div 2;
end;
•Localidad espacial de un programa.
o Instrucciones: ejecución secuencial.
o Datos: estructuras de datos como las tablas y arrays.
for i := 1 to 1000 do begin
a[i] := 1;
b[i] := 2;
end;
Principio de Localidad
• El objetivo de organizar la memoria de un computador
como una jerarquía de memorias es aprovechar el
principio de localidad.
• Consideración: las memorias más rápidas son las más caras
por bit y por lo tanto suelen ser más pequeñas.
Tiempos de acceso y precios de las distintas tecnologías de memoria más comunes (año 2009).
• Objetivo: mucha memoria + tecnología barata + alta
velocidad
Conceptos Generales
Tecnología Tiempo de acceso típico U$s por MB
SRAM 1 ns 20
SDRAM 5 ns 0,01
Disco magnético 8.500.000 ns 0,0001
Conceptos Generales
Jerarquía de Memoria
• Sacar provecho de la localidad temporal de un
programa: mantener los datos accedidos más
recientemente cerca del procesador.
• Sacar provecho de la localidad espacial de un
programa: moviendo bloques de varios datos
contiguos a los niveles próximos al procesador.
¿Cómo funciona?
Jerarquía de Memoria
• La jerarquía consta de múltiples niveles.
• Los datos sólo se copian entre niveles adyacentes.
o Nivel superior: más cercano al procesador, más caro,
más rápido.
o Nivel inferior: más lejano al procesador, más barato,
más lento.
¿Cómo se maneja?
Jerarquía de Memoria
• Registros <-> Memoria
o Por el compilador (programador?)
• Caché <-> Memoria
o Por el hardware
• Memoria <-> Discos
o Por el hardware y el sistema operativo (memoria
virtual)
o Por el programador (archivos)
¿Cómo se maneja?
Jerarquía de Memoria
Terminología básica:
• Bloque: unidad 
mínima de 
información en 
una jerarquía de 
2 niveles.
procesador
nivel superior
nivel inferior
bloques
Niveles de una jerarquia de memoria
Jerarquía de Memoria
Terminología básica:
• Acierto (hit): el elemento requerido por la CPU está en el nivel
superior.
• Fallo (miss): el elemento requerido por la CPU no está en el
nivel superior ) Se accede al nivel inferior para recuperar el
bloque que contiene al elemento requerido.
• Frecuencia o Tasa de aciertos (hit rate): porcentaje de accesos
a memoria encontrados en el nivel superior.
• Frecuencia o Tasa de fallos (miss rate): (1 – tasa de aciertos).
Porcentaje de accesos a memoria no encontrados en el nivel
superior.
Jerarquía de Memoria
Terminología básica:
• Tiempo de acierto: tiempo necesario para acceder al nivel
superior de la memoria, incluyendo el tiempo para
determinar si el acceso es un acierto o un fallo.
• Tiempo de fallo: tiempo necesario para sustituir un bloque
de nivel superior por el correspondiente bloque de nivel
más bajo, más el tiempo necesario para proporcionar este
bloque al dispositivo que lo solicitó (generalmente la CPU.
• Penalización por fallo: tiempo de fallo + tiempo de acierto.
Jerarquía de Memoria
Rendimiento:
Usaremos el tiempo medio de accesos a memoria como medida de 
rendimiento de la jerarquía de memoria.
Tiempo medio de accesos = Tiempo de acierto + Frecuencia de 
fallos * Penalización de fallo
tamaño de bloque tamaño de bloque
penalizacion
de fallo de fallo
frecuencia
tiempo de acceso
t iempo de
transferencia
tamaño de bloque frente a penalizacion y frecuencia de fallo.
Jerarquía de Memoria
Clasificación:
Usaremos términos que trascienden los niveles de los que estamos 
hablando y referirse a cualquier nivel:
• Ubicación del bloque: ¿Dónde puede ubicarse un bloque en el 
nivel superior?
• Identificación del bloque: ¿Cómo se encuentra un bloque en el 
nivel superior?
• Sustitución de bloque: ¿Qué bloque debe reemplazarse en caso 
de fallo?
• Estrategia de escritura:¿Qué ocurre en una escritura?
Primer Nivel
Memorias Caché:
• Memorias muy 
rápidas
• Poca capacidad
• Se interponen entre 
el Procesador y la 
Memoria Principal
Primer Nivel – Memorias Caché
Primer Nivel – Memorias Caché
Primer Nivel – Memorias Caché
Primer Nivel – Memorias Caché
Primer Nivel – Memorias Caché
Primer Nivel – Memorias Caché
1 - ¿Dónde puede ubicarse un bloque en la cache?
Primer Nivel – Memorias Caché
1.1 – Correspondencia Directa
Primer Nivel – Memorias Caché
1.1 – Correspondencia Directa01234567
bloque
num 01234567
bloque
num 01234567
bloque
num
00000000001111111111222222222233
01234567890123456789012345678901
asociativa total corresp. directa asoc. por conj.
01234567
bloque
num 01234567
bloque
num 01234567
bloque
num
00000000001111111111222222222233
01234567890123456789012345678901
asociativa total corresp. directa asoc. por conj.
Primer Nivel – Memorias Caché
1.1 – Correspondencia Directa
Primer Nivel – Memorias Caché
1.2 – Asociativa
Primer Nivel – Memorias Caché
1.2 – Asociativa
01234567
bloque
num 01234567
bloque
num 01234567
bloque
num
00000000001111111111222222222233
01234567890123456789012345678901
asociativa total corresp. directa asoc. por conj.
01234567
bloque
num 01234567
bloque
num 01234567
bloque
num
00000000001111111111222222222233
01234567890123456789012345678901
asociativa total corresp. directa asoc. por conj.
Primer Nivel – Memorias Caché
1.3 – Asociativa por Conjuntos
Primer Nivel – Memorias Caché
1.3 – Asociativa por Conjuntos
01234567
bloque
num 01234567
bloque
num 01234567
bloque
num
00000000001111111111222222222233
01234567890123456789012345678901
asociativa total corresp. directa asoc. por conj.
01234567
bloque
num 01234567
bloque
num 01234567
bloque
num
00000000001111111111222222222233
01234567890123456789012345678901
asociativa total corresp. directa asoc. por conj.
Primer Nivel – Memorias Caché
2 - ¿Cómo se encuentra un bloque si está en la cache?
01234567
bloque
num 01234567
bloque
num 01234567
bloque
num
asociativa total corresp. directa asoc. por conj.
etiqueta etiqueta
busqueda busqueda
1
2 2
1 1
2
Primer Nivel – Memorias Caché
3 - ¿Qué bloque debe reemplazarse en un fallo de la cache?
Primer Nivel – Memorias Caché
3 - ¿Qué bloque debe reemplazarse en un fallo de la cache?
Primer Nivel – Memorias Caché
4 - ¿Qué ocurre en una escritura?
Primer Nivel – Memorias Caché
4 - ¿Qué ocurre en una escritura?
Primer Nivel – Memorias Caché
Comparaciónde estrategias de escrituras en Caché
Primer Nivel – Memorias Caché
Las tres fuentes de fallos de la Caché
• Forzosos: el primer acceso a un bloque no está en la cache; así 
que el bloque debe ser traído a la misma. Estos también se 
denominan fallos de arranque en frío o de primera referencia.
• Capacidad: si la cache no puede contener todos los bloques 
necesarios durante la ejecución de un programa, se presentarán 
fallos de capacidad debido a los bloques que se descartan y luego 
se recuperan.
• Conflicto: si la estrategia de ubicación de bloques es asociativa por 
conjuntos o de correspondencia directa, los fallos de conflicto 
ocurrirán, ya que se puede descartar un bloque y posteriormente 
recuperarlo si a un conjunto le corresponden demasiados bloques. 
Estos fallos también se denominan fallos de colisión.
Primer Nivel – Memorias Caché
• Los fallos forzosos son independientes de la caché.
• Los fallos de capacidad disminuyen cuando la capacidad 
aumenta.
• Los fallos de conflicto dependen de la asociatividad de 
la memoria: si es totalmente asociativa no existen 
conflictos, en la de mapeo directo los conflictos 
aumentan hasta su máximo posible.
• Incrementar la capacidad de la caché reduce los fallos 
de conflicto así como los de capacidad, ya que una 
caché mayor dispersa las referencias.
Segundo Nivel
Memoria Principal:
Segundo Nivel – Memoria Principal
Latencia de la RAM:
Segundo Nivel – Memoria Principal
Latencia de la RAM:
Segundo Nivel – Memoria Principal
Organizaciones para mejorar el rendimiento 
de la Memoria Principal:
Segundo Nivel – Memoria Principal
Entrelazado (Interleaving):
Segundo Nivel – Memoria Principal
Limitaciones de la MP:
Siguiente Nivel
Memoria Virtual:
Siguiente Nivel – Memoria Virtual
Siguiente Nivel – Memoria Virtual
Siguiente Nivel – Memoria Virtual

Continuar navegando