Memoria Virtual. Memoria Virtual

Documentos relacionados
Organización lógica Identificación de bloque

Jerarquía de memoria - Motivación

Memoria Cache. Departamento de Arquitectura de Computadores

Memoria Virtual. Memoria Virtual

Arquitectura de Computadores II Clase #7

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Organización del Computador 1 Memoria Cache

Arquitectura de Computadores II Clase #7

Organización de computadoras. Clase 11. Universidad Nacional de Quilmes. Lic. Martínez Federico

Organización del Computador I. Memoria Cache. Autor: Alejandro Furfaro

TEMA 1. Arquitecturas multiprocesador: MIMD de memoria compartida (multiprocesadores) V 2.0

Memoria. Organización de memorias estáticas.

Organización del Computador. Memorias

Organización del Computador I Verano. Memoria Virtual Basado en el capítulo 5 del libro de Patterson y Hennessy

Simulación de sistemas de memoria con Xcache32

Registros. Cache L1. Cache L2. Memoria Principal (RAM) Memoria Secundaria (Disco) Memoria Terciaria (Cinta)

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Jerarquía de Memoria. Sistema de Memoria. El Cache. Efectividad del Cache. Patrón de Accesos a Memoria Generado por Programas

Subsistemas de memoria. Departamento de Arquitectura de Computadores

Arquitectura de Computadoras para Ingeniería

Caché. Matías Barbeito Organización del computador 1 2 cuatrimestre 2011

Arquitectura de Computadores II Clase #6

EJERCICIOS DEL TEMA 4

Arquitectura de Computadores. Tema 13 Memoria Virtual. Eduardo Daniel Cohen

Tema 4. Subsistema de Memoria

Resolución de los Ejercicios de la Hoja 4

Organización del Sistema de Memoria. 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria

Respuestas al Problemario Memoria Cache

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

Tarea 4.2 Memoria Virtual

Ejercicios de Arquitectura de Computadoras

Ejercicios del tema 5. Jerarquía de de Memoria

Tema 10. Sistemas Multiprocesadores Multiprocesadores Simétricos (SMP) SISTEMAS ELECTRÓNICOS PARA EL TRATAMIENTO DE LA INFORMACIÓN

Tema 6 (II) Jerarquía de Memoria

16bits: Tamaño total: 2 16 Tamaño página: 2 13 nº de páginas: 2 16 / 2 13 = 2 3 = 8 páginas Tamaño de tabla: 2 3 *2B = 16B por tabla

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

Memoria Cache. Clase Práctica Organización del computador I 2º Cuatrimestre de octubre. María Elena Buemi

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. 2. Multiprogramación

Ingeniería de Computadores I Primera Actividad Calificable

Arquitectura de Computadores. Apellidos, Nombre:

Ejercicios Jerarquía de Memoria

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

Espacio de direcciones de un proceso

ARQUITECTURA DE COMPUTADORES. 2º INGENIERÍA INFORMÁTICA. Problemas de Gestión de Memoria.

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

Herramientas Informáticas I Software: Sistemas Operativos

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 19 de junio de 2007

Administración de Memoria.

El subsistema de Memoria

MEMORIA EJERCICIO 1 EJERCICIO 2

Diagrama temporal de un programa simple. Multi-Programación con dos programas

Unidad de Memoria. Almacenamiento de información Operaciones básicas. Propiedades de la Memoria. Escritura o almacenamiento. Lectura.

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

Unidad 2: Gestión de Memoria

Tema 7. Memoria virtual

Examen de Estructura de Computadores ( ) Solución teoría

Administración de la memoria

1) Se dispone de un computador de 32 bits con la siguiente estructura:

Capítulo 1. Sistemas de Asignación Contigua Basados en Particiones

Arquitectura de Computadoras. Anexo Clase 8 Buses del Sistema

La memoria del ordenador

Sistema de archivos de Google. Mario Alonso Carmona Dinarte A71437

Ayuda del Simulador SMPCache

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

Verificación. Taller de Programación

Tema 2 Unidades de Memoria y Entrada/Salida

FUNDAMENTOS DE COMPUTACION INVESTIGACION PROCESADORES DIANA CARRIÓN DEL VALLE DOCENTE: JOHANNA NAVARRO ESPINOSA TRIMESTRE II

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

La Máquina de Acceso Aleatorio (Random Access Machine)

Gestión de Entrada-salida

Memorias RAM. Basilio B. Fraguela Rodríguez. Copyright Basilio B. Fraguela 2006

Reporte Técnico RT Modelos de memoria en entornos de virtualización

Gestión de memoria Gestión de memoria Índice y bibliografía

Memoria Compartida Distribuida (DSM) Sistema de Archivos

Tema 20 Gestión de memoria

Administración de memoria: Funciones y operaciones

Almacenamiento magnético, 4

T E M A 2. Sistema de Memoria

Sistemas Operativos. Curso 2016 Estructuras de dispositivos masivos de datos

Tema 6. Administración de memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

MEMORIA CACHÉ. Componentes principales de un ordenador

Tema 11. Soporte del Sistema Operativo REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS MULTIPROGRAMACIÓN.

Introducción Composición Caracteristicas Jerarquía Tipos Memoria Diseño. Cache. Memorias

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS

Administración de memoria: Asignación de memoria

Arquitectura de los Ordenadores (Teoría) Final Junio Mañana Pág 1 APELLIDOS Y NOMBRE GRUPO Nº EXPEDIENTE

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.

Arquitectura de Computadores

Sistemas Distribuidos. Soporte de Sistemas Operativos

Tema 5: Memorias. Espacio reservado para notas del alumno

La decodificación y el mapeo de memoria es importante porque permite conectar mas de un dispositivo al microprocesador.

Gestión de Memoria. Curso AT3148 Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P.

MICROPROCESADORES I ELECTRONICA DIGITAL III INTERFASE PROGRAMABLE A PERIFERICOS PPI 8255

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 4. Gestión Avanzada de Memoria

Transcripción:

Memoria Virtual Es el nivel de la jerarquía que maneja la cache entre memoria principal y memoria secundaria. Permite que los programas se expandan más allá de los límites de la memoria principal. Permite compartir memoria de manera protegida. Es un desafío por la enorme penalidad. Técnicas: Páginas grandes para reducir la tasa de fallos. La correspondencia entre direcciones virtuales y físicas es asociativa El S.O. reemplaza una página considerando LRU y bit de referencia 1 Memoria Virtual Usa write-back y Dirty Bit por el costo de escritura. Traduce la dirección virtual del programa a una dirección física de la memoria. Permite: Compartir memoria de manera protegida. Simplifica la asignación de memoria. Sólo el SO cambia la traducción de direcciones. Las páginas compartidas se controlan con bits de acceso. Se evitan accesos a la tabla de páginas con TLB. Cache, Memoria Virtual y Translation-Lookaside Buffer comparten principios y políticas. 2

Dirección Virtual y Dirección Física 3 Correspondencia de dirección Virtual a Física Tamaño 4 GB Tamaño 1 GB 4

Traducción de dirección Virtual a Física 5 La tabla de páginas 6

Características compartidas por la jerarquía de memoria Dónde se puede ubicar un bloque? Cómo se encuentra un bloque? Qué bloque reemplazar en un miss? Qué ocurre con las escrituras? Las tres C s: modelo de comportamiento de la jerarquía. 7 Dónde se puede ubicar un bloque? Varaciones sobre el esquema de conjunto asociativo Nombre del esquema Número de conjuntos Bloques por conjunto Correspondencia directa Nro de bloque en cache 1 Conjunto asociativo Nro de bloque en cache Asociatividad Asociatividad(2-16) Totalmente asociativa 1 Nro de bloque en cache Tasa de fallo a medida que aumenta la asociatividad, considerando ocho tamaños de caches 8

Cómo encontrar un bloque? Asociatividad Método de ubicación Número de comparaciones Esquemas de ubicación de los bloques Correspondencia directa Índice 1 Conjunto asociativo Completa Indexar el conjunto y buscar entre los elementos Buscar en todas las entradas Asociatividad(2-16) Nro de bloques en cache Tabla Externa 0 El esquema usado depende del costo del miss y del hard. Usar L2 permite mayor asociatividad. Totalmente Asociativas para caches pequeñas, con: pocos comparadores mejoras significativas 9 Qué bloque reemplazar? Principales estrategias: Aleatorio y LRU LRU (aproximado) en cuatro vías se pueden usar 2 bits: 1 para un par de bloques LRU. 1 para el bloque LRU en el par. Con caches de mayor asociatividad: Algoritmo simple en hardware. Miss rate: Random>LRU (1,1) En las grandes ambas fallan Memoria virtual usa LRU aproximado: Reduce el miss rate, importante porque el miss penalty es grande. En soft, usando bits de referencia. Razón: miss costosos y pocos. 10

Qué ocurre en una escritura? Ventajas de write-back Las palabras se escriben a la tasa de la cache. Múltiples escrituras requieren un sólo acceso a memoria. Puede escribir el bloque completo (high-bandwidth). Ventajas de write-through Misses simples y baratos. Nunca escribe un bloque entero. Más fácil de implementar. Usará un buffer de escritura. Memoria virtual sólo usa write-back porque: Gran latencia al escribir en el nivel inferior. La memoria no soporta la tasa de escritura del procesador. 11 Las tres C s Origen de los misses. Cómo los cambios afectan los misses. Compulsory (Obligatorios) misses. Primer acceso. Comienzo en frío Capacity (Por capacidad) misses. No hay espacio suficiente. Bloques reemplazados y recargados. Conflict (Por conflictos) misses. Conflictos por conjuntos de bloques. No se darían en Full Asociat. 12

Las tres fuentes de misses 13 Desafíos del diseño de la jerarquía Los cambios para mejorar la tasa de fallos pueden afectar todo el desempeño. La combinación de efectos positivos y negativos hace interesante el diseño de la jerarquía de memoria. 14

Diseño del controlador para una Cache simple Correspondencia Directa. Escritura demorada usando alojamiento del bloque. Tamaño del bloque 4 palabras. Tamaño de cache 16KiB, mantiene 1024 bloques. Direcciones de 32 bits. Cada bloque tiene bit de validez y modificado. 15 Diagrama de una cache simple 16

CPU 32 32 32 Lect/Escr Válida Dirección Dato Dato Listo CACHE 32 128 Lect/Escr Válida Dirección Dato Dato 128 Listo MEMORIA 17 Implementación de un autómata 18

Controlador simple 19 Una traza de accesos y sus estados TAG (18) INDEX (10) 2 2 0 1 2 3 0 0 A B C 3 4 5 C 0 0 A B C 3 4 6 0 0 0 A B C 3 4 6 4 3 0 D A A F 0 0 0 0 0 A B C 3 4 6 8 0 0 A B C 3 4 6 C 0 0 A B C 3 4 7 0 2 0 D A A 7 0 0 F 20

El problema de coherencia de cache Definición informal: Un sistema de memoria es coherente si cualquier lectura de un ítem de dato devuelve el último valor escrito sobre ese ítem. Esta definición no es precisa y presenta una visión simplificada del problema. Aspectos del comportamiento del sistema de memoria: -Coherencia: que valores son retornados en una lectura. -Consistencia: cuando un valor escrito será retornado por una lectura. 21 Esquema básico para forzar la coherencia 22

Sistema de memoria coherente - Propiedades Una lectura de un procesador P a una ubicación X luego de una escritura de P en X, sin otra escritura en X por otro procesador entre la escritura y la lectura por P, siempre retorna el valor escrito por P. Una lectura de un procesador a una ubicación X luego de la escritura de otro procesador en X, retorna el valor escrito si la lectura y la escritura están suficientemente separadas en tiempo, y ninguna otra escritura en X ocurre entre los dos accesos. Un par de escrituras a la misma ubicación se llaman serializadas, si son vistas en el mismo orden por todos los procesadores. 23 Esquema básico para forzar la coherencia La cache provee migración y replicación de datos compartidos. Migración: los datos son movidos a la cache local y usados en forma transparente, reduce la latencia de acceso y el bandwidth de la memoria compartida. Replicación: los datos pueden ser simultáneamente compartidos para lectura, reduce la latencia de acceso y la contención en la lectura de datos compartidos. 24

Ejemplo del problema de coherencia de cache Se deben considerar dos situaciones: las cache son write-trhough o write-back 25 Protocolos de Snooping Acceso exclusivo para escribir. Invalidación por escritura. No existen otras copias válidas después de una escritura. Ejemplo de invalidación en cache write-back: Una escritura seguida por una lectura de otro procesador. Como las copias son invalidadas, se produce miss. Otras escrituras requieren acceso exclusivo. Escrituras simultáneas: condición de carrera. Fuerza la serialización. 26

Protocolo de invalidación El dueño, en este caso A, responde con el valor y cancela el acceso a memoria. Ejemplo para cache write-back 27 Coherencia de cache en multi-procesadores mediante Snoopy 28

El protocolo Snoopy Se controlan actividades desde el procesador y desde el bus. Se mantiene el estado de los bloques. A través del bus se acceden e invalidan los datos. Un write hit cambia el estado V S * CACHE BUS NODO CPU SNOOPY 29 Requerimientos generados desde la CPU BUS DEL SISTEMA MEMORIA requerimientos generados desde la CPU CACHE CPU 30

Requerimientos y Acciones 31 Invalido Lectura desde CPU Compartido (solo lectura) Exclusivo (lect/escrit) Transiciones de estado en base a los requerimientos desde la CPU 32

Hit de Lectura desde CPU Invalido Lectura desde CPU Compartido (solo lectura) Exclusivo (lect/escrit) Transiciones de estado en base a los requerimientos desde la CPU 33 Hit de Lectura desde CPU Invalido Lectura desde CPU Compartido (solo lectura) Miss de Lectura desde CPU Exclusivo (lect/escrit) Transiciones de estado en base a los requerimientos desde la CPU 34

Hit de Lectura desde CPU Invalido Lectura desde CPU Compartido (solo lectura) Miss de Lectura desde CPU Exclusivo (lect/escrit) Escritura de CPU Ubica un write miss Transiciones de estado en base a los requerimientos desde la CPU 35 Hit de Lectura desde CPU Invalido Lectura desde CPU Compartido (solo lectura) Miss de Lectura desde CPU Exclusivo (lect/escrit) Miss de Lectura desde CPU Escritura de CPU Ubica un write miss Transiciones de estado en base a los requerimientos desde la CPU Hace write-back del bloque en el bus 36

Hit de Lectura desde CPU Invalido Lectura desde CPU Compartido (solo lectura) Miss de Lectura desde CPU Exclusivo (lect/escrit) Miss de Lectura desde CPU Escritura de CPU Ubica un write miss Transiciones de estado en base a los requerimientos desde la CPU Miss de escritura desde CPU Hace write-back del bloque. Ubica un write miss 37 Hit de Lectura desde CPU Invalido Lectura desde CPU Compartido (solo lectura) Miss de Lectura desde CPU Hit de lectur/ escr desde CPU Exclusivo (lect/escrit) Miss de Lectura desde CPU Escritura de CPU Ubica un write miss Transiciones de estado en base a los requerimientos desde la CPU Miss de escritura desde CPU Hace write-back del bloque. Ubica un write miss 38

Hit de Lectura desde CPU Invalido Lectura desde CPU Compartido (solo lectura) Miss de Lectura desde CPU Escritura desde CPU Ubica un write miss Hit de lectur/ escr desde CPU Exclusivo (lect/escrit) Miss de Lectura desde CPU Escritura de CPU Ubica un write miss Transiciones de estado en base a los requerimientos desde la CPU Miss de escritura desde CPU Hace write-back del bloque. Ubica un write miss 39 Estados para los requerimientos generados desde el bus Requerimientos que vienen desde otros procesadores a través del bus MEMORIA CACHE CPU 40

Invalido Write miss o Invalidate para el bloque Compartido (solo lectura) Exclusivo (lect/escrit) Transiciones de estado en base a los requerimientos desde el BUS 41 Invalido Write miss o Invalidate para el bloque Compartido (solo lectura) Read miss para el bloque Exclusivo (lect/escrit) Transiciones de estado en base a los requerimientos desde el BUS 42

Invalido Write miss o Invalidate para el bloque Compartido (solo lectura) Exclusivo (lect/escrit) Write-back del bloque Aborta el acceso a memoria Read miss para el bloque Read miss para el bloque Transiciones de estado en base a los requerimientos desde el BUS 43 Invalido Write miss o Invalidate para el bloque Compartido (solo lectura) Write-Back del bloque; Aborta acceso a memoria Write miss para el bloque Exclusivo (lect/escrit) Write-back del bloque Aborta el acceso a memoria Read miss para el bloque Read miss para el bloque Transiciones de estado en base a los requerimientos desde el BUS 44

Variantes del protocolo Snoopy La red de interconexión común es el bus, puede ser crosbar Si la cache es write-through, sólo se necesitan dos estados. En algunos casos se hace difusión del bloque actualizado, pero lo habitual es hacer invalidación de las copias. Para caches write-back existen tres protocolos: MSI: de tres estados. MESI: agrega un estado exclusivo. Dragon: 4 estados, no tiene I porque es de actualización 45 Protocolo de invalidación para una caché coherente de escritura directa y sin alojamiento-en-escritura 46

Protocolo MSI Acciones del controlador: *PrRd *PrWr Acciones del bus: *BusRd *BusRdX *Flush 47 Protocolo MESI Acciones del controlador: *PrRd *PrWr Acciones del bus: _ *BusRd [BusRd(S/S)] *BusRdX *Flush Señal Señal compartida compartida por por todos todos los los controladores controladores _ 48

Simulador 49 Evolución del multiprocesador Transiciones de un estado a otro Accesos a memoria 50

Datos en formato texto de una cache Estado de cache Acceso actual 51 Evolución de un bloque Última transición de estado Último Acceso al bloque 52

Gráficas de la evolución de la cache 53 Qué vimos? Memoria Virtual Cuatro preguntas a la jerarquía Las tres C s Coherencia de cache Comportamiento del controlador de Cache Esquemas para mantener la coherencia de cache Protocolo Snoopy Protocolo MESI Simulador SMP Cache 54