Reducción de la penalización por fallo Técnica: Dar prioridad a los fallos de lectura sobre la escritura (I)

Documentos relacionados
Memoria virtual Ubicación de bloque en paginación

Sistema de memoria. Introducción

Memoria Virtual. Ing. Jorge Castro-Godínez

Organización lógica Identificación de bloque

Memoria Virtual. Memoria Virtual

GESTION DE LA MEMORIA

Memoria. Organización de memorias estáticas.

Sistemas Operativos. Curso 2016 Administración de memoria II

Trabajo Práctico Número 6

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

Memoria Virtual. Departamento de Arquitectura de Computadores

Microprocesadores para comunicaciones. Escuela Técnica Superior de Ingenieros de Telecomunicación. Organización y estructura de las memorias caché

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7

UNIDAD TEM ATICA 3: ACELERACI ON DEL ACCESO A MEMORIA.

Tutorías con Grupos Reducidos (TGR) Parte 5: Memoria Virtual

JERARQUÍAS DE MEMORIA

Profesores y Horarios de Tutorías Temas 3 y 4. Daniel Cascado Caballero Lourdes Miró Amarante

Memoria caché básica

Caches unificadas vs. Caches separadas Comparativa (I)

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

Trabajo Práctico Número 6 Arquitectura de Computadoras

Gestión de la Memoria y Memoria Virtual

Universidad de Los Andes Escuela de Ingeniería de Sistemas Departamento de Computación Arquitectura de Computadores. Clase 24

Arquitectura de Computadoras

Tema 6: Memoria virtual. Óscar David Robles Sánchez Sofía Bayona Beriso David Miraut Andrés Luis Rincón Córcoles

Basado en S.O. de William Stallings / 5ed. y S.O. de Jesús Carretero (y otros). Universidad Simón Bolívar

Sistemas Operativos. Trabajo Práctico N ō 6

Arquitectura de Computadoras

Introducción a memorias cache

Aspectos avanzados de arquitectura de computadoras Jerarquía de Memoria II. Facultad de Ingeniería - Universidad de la República Curso 2017

PRINCIPIOS GENERALES DE JERARQUÍA DE MEMORIA

Administración de memoria

Introducción a la Computación. Capitulo 4 Memoria Cache

Tema II. Unidad de memoria

Mapa de memoria. memoria CACHÉ

Administración de memoria

Optimizaciones avanzadas de memoria caché

Diseño de la jerarquía de memoria

Gestión de memoria Profesores y tutorías

Administración de memoria

Memoria Cache. Departamento de Arquitectura de Computadores

La gestión de memoria es automática y la realiza el sistema operativo con ayuda del hardware de la maquina.

Memoria. Otros temas sobre cachés

Memoria Virtual Sistemas Operativos. Lic. Ing. Osvaldo Clúa Lic. Adrián Muccio Facultad de Ingeniería Universidad de Buenos Aires

Sistemas de Computación Memoria. 2º Semestre, 2008 José Miguel Rubio L.

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U MEMORIA VIRTUAL

Jerarquía de Memoria Memoria Cache

Práctica 5 - Memoria Cache

Universidad de Sonora Arquitectura de Computadoras 2

Tema III: Componentes de un Sistema Operativo

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Miss rate vs. Tamaño de bloque En general el MR baja cuando se aumenta el tamaño del bloque.

Sistemas Operativos. Iván Bernal, Ph.D. 4. Escuela Politécnica Nacional I.

Administración de Memoria

Concepto de memoria virtual

ARQUITECTURA DE SISTEMAS PARALELOS. 3º ITIS. PROBLEMA DE MEMORIA VIRTUAL.

Miss rate vs. Tamaño de bloque En general el MR baja cuando se aumenta el tamaño del bloque.

Arquitectura y Tecnología de Computadores. Curso 09/10

Memoria. Otros temas sobre cachés

Tema II. Unidad de memoria

Arquitectura de Computadores II Clase #6

Memoria Virtual. Memoria Virtual

cal.php

Memoria Caché. Algorítmo de Mapeo Directo

Memoria virtual Ejercicios resueltos

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

Memoria. M. en C. Erika Vilches. Parte 3

Arquitectura de Computadores Problemas (hoja 4). Curso

Tema 5: Gestión de la Memoria Principal

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

2.3 Memoria virtual En prácticamente todos los sistemas operativos modernos se usa la técnica de memoria virtual. En esta sección se analizarán los

Tema 6: Sistema de memoria

Ejercicios Jerarquía de Memoria

Ejercicios sobre gestión de memoria

Administración de Memoria. Módulo 8. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

Administración de la memoria

Sistema Cache. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Contenido. Paginación. Características de la Paginación y la Segmentación. Cómo se ejecuta un programa? Ventajas de particionar los procesos

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1

TEMA 11: MEJORA DE LAS PRESTACIONES DE LAS CACHE.

Tema 5: Memorias. Espacio reservado para notas del alumno

Memoria. M. en C. Erika Vilches. Parte 1

Administración de Memoria

Sistemas Operativos. Gestión de E/S Discos. Dr. Wenceslao Palma

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

Memoria virtual. 6. La: memoria. Fundamentos de Computadores Ingeniería de Telecomunicación. Departamento de Automática Escuela Politécnica Superior

Tema 5 (III) Jerarquía de Memoria

Subsistemas de memoria. Departamento de Arquitectura de Computadores

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion.

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Fundamentos de Sistemas Operativos Licenciatura en Administración de Tecnologías de Información y Comunicaciones

Memoria y caché. Organización del Computador I, verano de 2016

Velocidades Típicas de transferencia en Dispositivos I/O

Transcripción:

Reducción de la penalización por fallo Técnica: Dar prioridad a los fallos de lectura sobre la escritura (I) Dar prioridad a los fallos de lectura sobre la escritura: En la caches WT el buffer de post-escritura mejora el rendimiento pero también complica los accesos a memoria cuando el bloque buscado se encuentra en el buffer (aún no ha sido escrito en memoria) y se produce un fallo en lectura de dicho bloque. Qué hacer? Ejemplo: Una cache de correspondencia directa WT con buffer de post-escritura (conflicto entre las posiciones 512 y 1024) El contenido de R2 y R3 es igual? M[512] R3 -- escritura en buffer R1 M[1024] -- fallo en lectura R2 M[512] -- fallo en lectura (aún no se ha copiado el bloque) -- El fallo en lectura debe esperar a que finalice la escritura Arquitectura de Sistemas Paralelos (50) Reducción de la penalización por fallo Técnica: Dar prioridad a los fallos de lectura sobre la escritura (II) Solución: Para evitar que los fallos en lectura esperen siempre a que el buffer se vacíe (en un buffer de cuatro palabras supone un incremento de la penalización de un 50%) se puede comprobar el contenido del buffer y si no hay conflicto permitir que el fallo en lectura continúe Esta técnica también permite reducir la penalización por fallo en caso de caches CB (escritura del bloque sucio) Arquitectura de Sistemas Paralelos (51) 1

Reducción de la penalización por fallo Técnica: Uso de Sub-bloques Uso de sub-bloques: Cuando las etiquetas son demasiado grandes (ocupan mucho y su comparación es costosa) pueden reducirse haciendo bloques más grandes pero eso aumenta la penalización por fallo (tiempo de transferencia) Para evitarlo pueden dividirse los bloques en sub-bloques y utilizar en vez de un bit de válido tantos como sub-bloques tengamos. Las transferencias son a nivel de sub-bloques Caché de correspondencia directa - Cache por bloques: 16 etiquetas 16 bits de válido - Caches con sub-bloques: 4 etiquetas 16 bits de válido Arquitectura de Sistemas Paralelos (52) Reducción de la penalización por fallo Técnica: Re-arranque rápido y primera palabra crítica Re-arranque rápido y primera palabra crítica: Estas técnicas se basan en el hecho de que en un momento dado la CPU sólo necesita una palabra del bloque para continuar la ejecución Re-arranque rápido (Early restart): Consiste en no esperar a leer todo el bloque sino que en cuanto se haya transferido la palabra solicitada enviarla a la CPU y luego continuar trayendo el bloque Primera palabra crítica (Critical word first): Consiste en solicitar a la memoria sólo la palabra que falló y enviarla tan pronto como llegue a la CPU. Mientras ésta continua con la ejecución, se rellena el resto de palabras del bloque Arquitectura de Sistemas Paralelos (53) 2

Reducción de la penalización por fallo Técnica: Caches no bloqueantes Caches no bloqueantes: Esta técnica se utiliza en máquinas con pipeline ( se verán en el tema de Introducción al Paralelismo). Por ejemplo, es posible continuar la búsqueda de una instrucción en la cache de instrucciones mientras se espera que se traiga un bloque fallido en la cache de datos Arquitectura de Sistemas Paralelos (54) Reducción de la penalización por fallo Técnica: Caches de segundo nivel (I) Caches de segundo nivel: Añadiendo un nivel más en la jerarquía de memoria (L1 y L2) Rendimiento (tiempo medio de acceso a memoria, tmam) tmam=t_acierto L1 +f_fallo L1 *(t_acierto L2 +f_fallo L2 *p_fallo L2 ) Frecuencia de fallos local: número de fallos en la cache dividido por el número total de accesos a esa cache (en L2 es f_ fallo L2 ) Frecuencia de fallos global: número de fallos en la cache dividido por el número total de accesos a memoria generados por la CPU (en L2 es f_fallo L1 *f_fallo L2 ) Ejemplo: 1000 referencias a memoria, 40 fallos en la cache L1 y 20 en la cache L2 Frecuencia de fallos en L1 (tanto local como global) = 40/1000 =4% Frecuencia de fallos local para L2 = 20/40 =50% Frecuencia de fallos global para L2= 20/1000=2% (4%*50%) Arquitectura de Sistemas Paralelos (55) 3

Reducción de la penalización por fallo Técnica: Caches de segundo nivel (II) Frecuencia de fallo vs. Tamaño de cache (escalas lineal y logarítmica) Cache de un único nivel: single cache miss rate Cache de dos niveles: (primer nivel: 32Kb) local miss rate global miss rate Arquitectura de Sistemas Paralelos (56) Reducción de la penalización por fallo Técnica: Caches de segundo nivel (III) Ejemplo Cuál es el impacto de la asociatividad de la cache de segundo nivel sobre la penalización? Datos: Un grado de asociatividad 2 incrementa el tiempo de acierto en un 1% Tiempo de acierto de L2 para cache de mapeado directo = 10 ciclos Frecuencia de fallos local de L2 para cache de mapeado directo = 25% Frecuencia de fallos local de L2 para cache asociativa de 2 vías = 20% Penalización por fallo de L2 = 50 ciclos Solución P_fallo 1-vía-L1 =10+25%*50=22,5 ciclos P_fallo 2-vías-L1 =10.1+20%*50=20.1 ciclos El segundo nivel de cache debe estar sincronizado con el primero (t_acierto=10 o 11 ciclos) Arquitectura de Sistemas Paralelos (57) 4

Reducción del tiempo acierto Técnica: caches pequeñas y simples Caches pequeñas y simples: Buena parte del tiempo de acierto se dedica a leer y comparar las etiquetas Las caches pequeñas (on-chip) permiten tiempos de acierto reducidos pero poca capacidad. Una posible solución: etiquetas onchip y datos off-chip En las caches de correspondencia directa (simples) la comprobación de la etiqueta y el acceso al dato se hace a la vez En el primer nivel de cache se utilizan caches pequeñas y simples Arquitectura de Sistemas Paralelos (58) Reducción del tiempo acierto Técnica: Evitar la traducción de direcciones Evitar la traducción de direcciones durante la indexación de la cache: Consiste en almacenar direcciones virtuales ( se verá en el apartado de Memoria Virtual) en la cache, evitando así la traducción de direcciones virtuales a físicas en caso de acierto (Caches virtuales vs. Caches físicas) Arquitectura de Sistemas Paralelos (59) 5

Reducción del tiempo acierto Técnica: Escrituras en pipeline para aciertos en escritura rápidos Escrituras en pipeline para aciertos en escritura rápidos: Consiste en crear un pipeline ( se verán en el tema de Introducción al Paralelismo) para las operaciones de escritura, de manera que la escritura actual se hace solapada en el tiempo con la comparación de etiquetas de la escritura siguiente. Las operaciones de lectura no son parte de este pipeline pues la comparación de etiquetas y la lectura del bloque se hacen siempre en paralelo Arquitectura de Sistemas Paralelos (60) Objetivos Los objetivos de la memoria virtual son: Permitir a los programas usar más memoria de la disponible físicamente. Se gestiona automáticamente los dos niveles de la jerarquía de memoria representada por la memoria principal y la secundaria, liberando al programador de esta tarea (origen histórico)... se ha inventado un sistema para hacer que la combinación de tambores de núcleos magnéticos parezca al programador como un simple nivel de almacenamiento, realizando automáticamente las transferencias precisas Kilburn y cols. [1962] Compartir una misma memoria física entre diferentes procesos con su propio espacio de direcciones (sistemas multitarea). Sería muy costoso dedicar una memoria de tamaño igual al espacio total de direcciones a cada proceso. Se requiere un esquema de protección Arquitectura de Sistemas Paralelos (61) 6

Definiciones (I) Página/Marco (page) o segmento (segment): en los términos definidos para la jerarquía de memoria es un bloque Fallo de página (page fault) o de dirección (address fault): en los términos definidos para la jerarquía de memoria es un fallo Direcciones virtuales: son las direcciones que genera la CPU Direcciones físicas: son las direcciones que atacan a la memoria principal Correspondencia de memoria (memory mapping) o traducción de direcciones (address translation): el proceso (software/hardware) para traducir las direcciones virtuales a direcciones físicas Niveles de la jerarquía controlados por la memoria virtual: Memoria RAM y disco duro Arquitectura de Sistemas Paralelos (62) Definiciones (II) Direcciones virtuales 0 4K 8K 12K Traducción de direcciones A B C C D A B 24K 28K Memoria principal Direcciones físicas 0 4K 8K 12K 16K 20K Página Fallo de página Arquitectura de Sistemas Paralelos (63) D Disco 7

Diferencias entre cache y memoria virtual (I) El reemplazo en los fallos de cache está controlado principalmente por hardware, mientras que el reemplazo en memoria virtual está controlado principalmente por el sistema operativo El tamaño de la dirección del procesador determina el tamaño de la memoria virtual, pero el tamaño de la cache es normalmente independiente de la dirección del procesador Además de actuar como memoria de más bajo nivel para la memoria principal en la jerarquía, la memoria secundaria se utiliza para el sistema de ficheros que normalmente no es parte del espacio de direcciones Arquitectura de Sistemas Paralelos (64) Diferencias entre cache y memoria virtual (II) Parámetro Primer nivel de cache Tamaño de bloque Tiempo de acierto Penalización por fallo: Tiempo de acceso Tiempo de transferencia Frecuencia de fallo Tamaño de la memoria 16-128 bytes 1-2 ciclos de reloj 8-100 ciclos de reloj 2-60 ciclos de reloj 2-40 ciclos de reloj 0.5-10% 0,0016-1Mb 4096-65536 40-100 ciclos de reloj 700000-6000000 ciclos de reloj 500000-4000000 ciclos de reloj 200000-2000000 ciclos de reloj 0.00001-0.001% 16-8192Mb Arquitectura de Sistemas Paralelos (65) 8

Paginación vs. Segmentación (I) En los sistemas de memoria virtual los bloques pueden ser: de tamaño fijo: página (ligado al hardware) de tamaño variable: segmento (ligado al proceso) Cuando el bloque es de tamaño fijo se habla de paginación y cuando es variable de segmentación Lo más habitual es utilizar la paginación pues es más sencilla de implementar (direccionamiento, política de reemplazo, etc.) Hay soluciones híbridas: segmentación paginada en la que un segmento es un número entero de páginas (la política de reemplazo es más sencilla, pues no se necesita que la memoria sea contigua ni que los segmentos completos estén en memoria principal) Arquitectura de Sistemas Paralelos (66) Paginación vs. Segmentación (II) Arquitectura de Sistemas Paralelos (67) 9

Paginación vs. Segmentación (III) Fragmentación Fragmentación externa (Segmentación) Proceso1 Proceso1 Proceso2 Fragmentación interna (Paginación) Página Fragmentación interna Proceso1 Proceso2 Proceso3 Proceso1 Proceso3 Arquitectura de Sistemas Paralelos (68)... Marco1 Marco2... Proceso1 Proceso4 Proceso3 Fragmentación externa Solución: Compresión (muy costosa) Tiempo Influencia del tamaño de página a) Pagina grande: Mayor eficiencia en la transferencia b) Página pequeña: Menor fragmentación y menor tiempo de arranque 10