Download Gestión de memoria Gestión de memoria

Document related concepts
no text concepts found
Transcript
Gestión de memoria
Profesores y tutorías
• Teoría:
– Raouf Senhadji Navarro
Despacho: F062
Horario de tutorías: Lunes y miércoles de 12:00h a 13:30h y
martes y jueves de 16:00h a 17:30h
• Prácticas y problemas:
– Lourdes Miró Amarante
Despacho: F061
Horario de tutorías: Martes de 10:30h a 12:30h
Arquitectura de Sistemas Paralelos (1)
Gestión de memoria
Índice y bibliografía
• Índice
– Jerarquía de memoria
– Memorias cache
• Organización física
• Organización lógica
• Optimización
– Memoria virtual
• Bibliografía
– Arquitectura de computadores: Un enfoque cuantitativo, Jhon L.
Hennesy y David A. Patterson
– Organización y arquitectura de computadores, W. Stalling.
Arquitectura de Sistemas Paralelos (2)
1
Jerarquía de memoria
Introducción
• Necesidad de grandes cantidades de memoria rápida
• Diferentes tipos de memorias según los criterios de tamaño,
velocidad y coste (tecnología)
• Principio de localidad: los programas favorecen una parte de su
espacio de direcciones
Idealmente sería deseable una capacidad indefinidamente grande de memoria
tal que cualquier particular…palabra estuviese inmediatamente disponible…
Estamos… forzados a reconocer la posibilidad de construir una jerarquía de
memorias, cada una de las cuales tenga mayor capacidad que la precedente
pero que sea menos rápidamente accesible
A.W. Burks, H.H. Goldstine y J. von Neumann,
Discusión preliminar del diseño lógico de un instrumento de cálculo electrónico (1946)
Arquitectura de Sistemas Paralelos (3)
Jerarquía de memoria
Principio de localidad
• Localidad temporal
– Si se referencia un elemento, éste tenderá a ser
referenciado pronto (p.e. bucles)
• Localidad espacial
– Si se referencia un elemento, los elementos
cercanos a él tenderán a ser referenciado
pronto (p.e. tablas)
Arquitectura de Sistemas Paralelos (4)
2
Jerarquía de memoria
Definición
• Una jerarquía de memoria es una reacción natural a la
localidad y tecnología
• Una jerarquía en memoria está organizada en varios
niveles, cada uno más pequeño, más rápido y más
caro por byte que el siguiente
• Los niveles de la jerarquía están contenidos en el
siguiente: todos los datos de un nivel se encuentran
también en el nivel siguiente y así sucesivamente
hasta que alcancemos el extremo inferior de la
jerarquía
Arquitectura de Sistemas Paralelos (5)
Jerarquía de memoria
Conceptos básicos
• Nivel (level)
• Bloque o línea (block or line): mínima unidad de
información que puede estar presente o no en la
jerarquía de dos niveles (tamaño fijo o variable)
• Acierto/Fallo (hit/miss)
• Frecuencia de aciertos/fallos (hit rate/miss rate)
• Tiempo de acierto (hit time)
• Penalización por fallo (miss penalty)
– Tiempo de acceso (access time): tiempo para
acceder a la primera palabra de un bloque en un
fallo
– Tiempo de transferencia (transfer time):
tiempo adicional para transferir las restantes
palabras del bloque
Nivel superior
Bloques
Nivel inferior
Arquitectura de Sistemas Paralelos (6)
3
Jerarquía de memoria
Ejemplo
Coste/bit (+)
Capacidad (- )
Velocidad (+)
Frecuencia
de accesos (+)
Registros
procesador
Cache
Memoria principal
Cache de disco
Disco magnético
CD-DVD
Arquitectura de Sistemas Paralelos (7)
Jerarquía de memoria
Evaluación del rendimiento
• Tiempo medio de acceso a memoria
Tiempo de acceso medio a memoria = Tiempo de acierto +
+ Frecuencia de fallos*Penalización por fallo
• Influencia de parámetros
– El tamaño de bloque influye sobre:
• Penalización por fallo
→ Tiempo de acceso medio a memoria
• Frecuencia de fallos
Arquitectura de Sistemas Paralelos (8)
4
Evaluación del rendimiento
Relación entre parámetros
Tiempo medio
de acceso
Tamaño del bloque
Penalización
por fallo
Tiempo de
transferencia
Frecuencia
por fallo
Tiempo de acceso
Tamaño del bloque
Tamaño del bloque
Arquitectura de Sistemas Paralelos (9)
Jerarquía de memoria
Criterios para clasificar los niveles
• Ubicación de bloque
¿Dónde puede ubicarse un bloque en el nivel superior?
• Identificación de bloque
¿Cómo se encuentra un bloque si está en el nivel
superior?
• Sustitución de bloque
¿Qué bloque debe reemplazarse en caso de fallo?
• Estrategia de escritura
¿Qué ocurre en una escritura?
Arquitectura de Sistemas Paralelos (10)
5
Memorias cache
Introducción
• Representa el nivel de jerarquía de memoria entre la CPU y la
memoria principal
• Se le pueden aplicar todos los conceptos vistos para la jerarquía
de memoria (principio de localidad, terminología, etc.)
• Algunos datos (década del 90)
Arquitectura de Sistemas Paralelos (11)
Memorias cache
Arquitecturas
• Organización física
• Según su ubicación dentro o fuera del chip
procesador: internas o externas
• Según su ubicación con respecto al resto de
dispositivos (configuración)
• Organización lógica
• Según su estructura interna y funcionamiento:
ubicación, identificación, sustitución y escritura
• Según el tipo de información que contienen:
unificadas o separadas
Arquitectura de Sistemas Paralelos (12)
6
Arquitecturas de memorias cache
Organización física
• Según su ubicación
– Caches externas: No se encuentran en el interior del chip
del procesador (cache-off-chip)
– Caches internas: Se encuentran en el propio chip del
proceador (cache-on-chip)
• Según la configuración
– Configuración en serie (Look-Trough Architecutre)
– Configuración en paralelo (Look-Aside Architecture)
Arquitectura de Sistemas Paralelos (13)
Organización física según la configuración
Configuración en serie
CPU
Bus local
Cache
DMA
I/O
Memoria
Bus
– Ventajas: Si el dato se encuentra en la cache no hay acceso
a memoria y no se ocupa el bus
– Inconvenientes: La cache debe tener 2 interfaces de buses
diferentes y el tiempo de acceso es mayor (igual al tiempo de
acceso a cache más el tiempo de acceso a memoria principal)
Arquitectura de Sistemas Paralelos (14)
7
Organización física según la configuración
Configuración en paralelo
Cache
DMA
I/O
Memoria
Bus
CPU
– Ventajas: Sólo hay una interfaz con el bus y el tiempo de acceso
es menor (igual al tiempo de acceso a memoria principal)
– Inconvenientes: El bus se ocupa en cualquier acceso a memoria,
evitando que otros dispositivos puedan acceder a él
Arquitectura de Sistemas Paralelos (15)
Organización física
Ejemplo: Pentium II
Arquitectura de Sistemas Paralelos (16)
8
Organización lógica
Ubicación de bloque
• ¿Dónde puede ubicarse un bloque en una cache?
– Caches de mapeado o correspondencia directa: si cada bloque
sólo tiene un lugar donde puede aparecer en la cache
(dirección del bloque) MOD (número de bloques en cache)
– Caches totalmente o completamente asociativas: si cada bloque
se puede colocar en cualquier parte de la cache
– Caches asociativas por conjuntos (asociativas por conjuntos de
n vías): si cada bloque se puede colocar en un subconjunto
restringido de lugares de la cache (conjunto). Un conjunto es un
grupo de dos o más bloques de la cache
(dirección del bloque) MOD (número de conjuntos en cache)
Arquitectura de Sistemas Paralelos (17)
Ubicación de bloque
Memoria: 32 bloques
Caches: 8 bloques
Tres tipos:
- Completamente
asociativas
- De correspondencia
directa
- Asociativa por
conjuntos de 2 vías
Arquitectura de Sistemas Paralelos (18)
9