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