MEMORIA 1.

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

Almacenamiento del sistema de archivos La gestión de archivos es uno de los componentes mas visibles de un sistema operativo. Las computadores pueden almacenar.
Administración de memoria
Administración Memoria
SISTEMAS OPERATIVOS GESTION DE MEMORIA INTEGRANTES Lizeth Chandi
Organización y arquitectura de sistemas de memoria
Hardware.
Microprocesadores para comunicaciones Escuela Técnica Superior de Ingenieros de Telecomunicación Organización y estructura de las memorias caché.
Introducción a los Sistemas Operativos Memoria Virtual
Introducción a los ordenadores
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Algorítmo de Mapeo Directo
El propósito del almacenamiento es guardar datos que la computadora no esté usando. El almacenamiento tiene tres ventajas sobre la memoria: Hay más espacio.
Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al costo de una memoria de baja velocidad Los puntos básicos relacionados con.
1 Aula de Informática del Centro de Participación Activa para Personas Mayores de El Ejido (Almería). Consejería Territorial de Salud y Bienestar Social.
Sistema de Memoria de una Computadora
Direcciones físicas y direcciones virtuales (lógicas)
Capítulo 4. Microprocesadres
Arquitectura del Computador
Tema 10: Gestión de Memoria
Administración del espacio
Diseño de la Jerarquía de Memorias
UNIDAD IV ADMINISTRACIÓN DE SISTEMAS CONCEPTOS DE GESTIÓN Y ALMACENAMIENTO.
Ing. CIP Francisco Mori Quiroz
Estructura y Tecnología de Ordenadores Noviembre 2004.
JERARQUIA DE LA MEMORIA
Overview Sistemas Computacionales
HARDWARE.
Contenido Estructura del computador Ejecución de instrucciones
TEMA 2: Organización de computadores
 La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad.
Memoria. Memoria  Propósito  Longitud de palabra  Notación convencional de capacidad de memoria de un circuito.
Introducción a la Programación “Componentes y Arquitectura de un computador” Semestre de Otoño 2006 MEng. Pedro Campos Soto.
Ing. María Rosa Dámaso Ríos1 MEMORIA PRINCIPAL Y SECUNDARIA Quinta Semana.
Unidad Central de Proceso
MEDIOS DE ALMACENAMIENTO
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
Sistemas Informáticos
Gestión de Memoria.
Breve historia de los Procesadores. Evolución del semiconductor: 1K, 4K, 16K, 64K, 256K Y 1M bits ventajas: Aumento de 4 veces la capacidad de almacenamiento.
Almacenamiento y discos
Medición del Desempeño de las Unidades de Almacenamiento
1. Motivación 2. Cintas magnéticas 3. Discos magnéticos 4. Discos ópticos 5. RAID.
UNIDADES DE MEDIDA EN INFORMÁTICA
Estructura de los Sistemas Operativos
Gestión de Memoria.
Almacenamiento y discos. Discos y almacenamiento 1.Motivación 2.Cintas magnéticas 3.Discos magnéticos 4.Discos ópticos 5.RAID.
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
Objetivos Generales Conocer el manejo de las instrucciones provenientes, o hacia, los dispositivos de E/S. Manejar las interrupciones que suceden en la.
Microprocesadores actuales
ALMACENAMIENTO DE DATOS. Son componentes que leen o escriben datos en medios o soportes de almacenamiento, y juntos conforman lamemoria o almacenamiento.
Gestión de memoria Rina Arauz.
UNIDADES DE MEDICION DE LA INFORMACIÓN. BIT y BYTE BIT: BINARY DIGIT – unidad mínima de información.
Arquitectura de Computadores I
Disco duro Disco duro externo Disco duro interno.
LOS ORDENADORES Rubén Granada. ¿Qué es un ordenador? El ordenador es un dispositivo electrónico que permite almacenar información, modificarla y generar.
INGENIERIA EN SISTEMAS FUNDAMENTOS DE COMPUTACION
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
FELIPE ANDRES RODRIGUEZ URRIAGO JONHATTAN OSVAWER GAVILAN.
José Alvarado – Cristian Anzola
1 Unidades funcionales de un ordenador Procesadores Memorias Dispositivos de E/S
ARQUITECTURA DEL ORDENADOR
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
El Computador. Computador. Máquina compuesta de elementos físicos (en su mayoría de origen electrónico) capaz de aceptar unos datos de entrada, realizar.
INTRODUCCIÓN A LA INFORMÁTICA Realizado por: SARI FOLGADO.
Arquitectura de Computadores Clase 16 Sistemas y Jerarquías de Almacenamiento IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de.
Arquitectura de Computadores Clase 18 Memoria Caché: Fundamentos IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
CAPITULO V Arquitectura de Von Neumann
UNIDADES DE ALMACENAMIENTO. La unidad básica en Informática es el bitInformática.
NOMBRE: SONIA IDROBO GRADO: 11 COMPUTACION PROFESOR: IGNACION REALPE.
Transcripción de la presentación:

MEMORIA 1

Estructura Jerárquica de la Memoria Memoria Caché Memoria Principal Memoria Virtual 2

Estructura Jerárquica de la Memoria 3 3

Estructura Jerárquica de la Memoria No es única Registros Caché N1-N2 Memoria Principal Disco Magnético Cinta Magnética Disco Óptico Coste por bit  Capacidad  Tiempo de acceso  Frecuencia de acceso  Quién se ocupa del transvase entre memorias ¿ ? - La CPU/MMU - El S. O. Memoria 4

Estructura Jerárquica de la Memoria Memoria Multinivel Memoria Principal CPU Bus de Memoria Bus de E/S Dispositivos de E/S Registros C a c h e Tamaño: Oct-KB KB-MB GB TB Velocidad: 250 ps. 1 ns. 100 ns. 10 ms. Memoria 5

MEMORIA Memoria Caché 6 6

¿ ? Fundamento Principio de la Localidad de Referencia Memoria Caché Por qué es tan útil una memoria tan pequeña ¿ ? Principio de la Localidad de Referencia Los accesos a memoria que realiza la CPU no están uniformemente distribuidos por todo el espacio de direccionamiento, sino que se concentran, temporalmente, solamente en ciertas áreas de la memoria. Memoria 7

Fundamento Memoria Caché Principio de Localidad de Referencia Localidad Temporal Localidad Espacial Es muy probable repetir instrucciones Es muy probable ejecutar instrucciones cercanas Unidad de Transferencia: BLOQUE Memoria 8

Memoria Principal (GB-TB) Memoria Caché El espacio de la memoria caché está dividido en líneas Nº Líneas << Nº Bloques Tamaño Bloque potencia de 2 Tamaño Línea = Tamaño Bloque CPU (bytes) Palabra Caché (KB-MB) Funcionamiento Buscar en la caché Bloque Acierto Fallo Asignar Línea Memoria Principal (GB-TB) Traer Bloque Entregar Dato Memoria 9

Memoria Caché Cuestiones de Diseño Memoria Políticas de Ubicación Correspondencia Directa Asociativa Asociativa de Conjuntos Políticas de Sustitución Tipo Estadístico Tipo NO Estadístico Políticas de Actualización Escritura Inmediata Escritura Diferida Tamaños Nº Caches Memoria 10

NumBloque módulo Líneas_en_caché Memoria Caché Políticas de Ubicación Correspondencia Directa Num_Línea = NumBloque módulo Líneas_en_caché b+d Caché etiq. datos pal. 0 pal. 1 pal. 2 pal. 3 . . . B0 Memoria principal pal. 4j pal. 4j+1 pal. 4j+2 pal. 4j+3 BJ Dir. de memoria L0 Bloque Despl. l d b-l etiq. línea . . . b LJ + d Comp. pal. 4j+2 Acierto . . . Falta de caché Memoria 11

Memoria principal de 16 palabras Memoria caché de 4 líneas Ejemplo: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Memoria principal de 16 palabras Bloque 0 Bloque 1 Bloque 2 Bloque 3 Bloque 4 Bloque 5 Bloque 6 Bloque 7 Bloques de 2 palabras Línea 0 Línea 1 Línea 2 Línea 3 Memoria caché de 4 líneas Arquitectura de Computadores Memoria 12

0 0 0 0  Línea 0 Desplazamiento 0 0 0 0 1  Línea 0 Desplazamiento 1 Memoria Caché 0 0 0 0  Línea 0 Desplazamiento 0 0 0 0 1  Línea 0 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea 3 0 0 1 0  Línea 1 Desplazamiento 0 0 0 1 1  Línea 1 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea 3 0 1 0 0  Línea 2 Desplazamiento 0 0 1 0 1  Línea 2 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea 3 0 1 1 0  Línea 3 Desplazamiento 0 0 1 1 1  Línea 3 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea 3 1 0 0 0  Línea 0 Desplazamiento 0 1 0 0 1  Línea 0 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea 3 1 0 1 0  Línea 1 Desplazamiento 0 1 0 1 1  Línea 1 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea 3 1 1 0 0  Línea 2 Desplazamiento 0 1 1 0 1  Línea 2 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea 3 Línea 0 Línea 1 Línea 2 Línea 3 1 1 1 0  Línea 3 Desplazamiento 0 1 1 1 1  Línea 3 Desplazamiento 1 Memoria 13

0 0 0 0  Línea 0 Desplazamiento 0 0 0 0 1  Línea 0 Desplazamiento 1 Memoria Caché 0 0 0 0  Línea 0 Desplazamiento 0 0 0 0 1  Línea 0 Desplazamiento 1 0 0 1 0  Línea 1 Desplazamiento 0 0 0 1 1  Línea 1 Desplazamiento 1 0 1 0 0  Línea 2 Desplazamiento 0 0 1 0 1  Línea 2 Desplazamiento 1 0 1 1 0  Línea 3 Desplazamiento 0 0 1 1 1  Línea 3 Desplazamiento 1 1 0 0 0  Línea 0 Desplazamiento 0 1 0 0 1  Línea 0 Desplazamiento 1 1 0 1 0  Línea 1 Desplazamiento 0 1 0 1 1  Línea 1 Desplazamiento 1 1 1 0 0  Línea 2 Desplazamiento 0 1 1 0 1  Línea 2 Desplazamiento 1 1 1 1 0  Línea 3 Desplazamiento 0 1 1 1 1  Línea 3 Desplazamiento 1 14 Arquitectura de Computadores Memoria

0 0 0 0  Línea 0 Desplazamiento 0 0 0 0 1  Línea 0 Desplazamiento 1 Memoria Caché 0 0 0 0  Línea 0 Desplazamiento 0 0 0 0 1  Línea 0 Desplazamiento 1 0 0 1 0  Línea 1 Desplazamiento 0 0 0 1 1  Línea 1 Desplazamiento 1 0 1 0 0  Línea 2 Desplazamiento 0 0 1 0 1  Línea 2 Desplazamiento 1 0 1 1 0  Línea 3 Desplazamiento 0 0 1 1 1  Línea 3 Desplazamiento 1 1 0 0 0  Línea 0 Desplazamiento 0 1 0 0 1  Línea 0 Desplazamiento 1 1 0 1 0  Línea 1 Desplazamiento 0 1 0 1 1  Línea 1 Desplazamiento 1 1 1 0 0  Línea 2 Desplazamiento 0 1 1 0 1  Línea 2 Desplazamiento 1 1 1 1 0  Línea 3 Desplazamiento 0 1 1 1 1  Línea 3 Desplazamiento 1 15 Arquitectura de Computadores Memoria

0 0 0 0  Línea 0 Desplazamiento 0 0 0 0 1  Línea 0 Desplazamiento 1 Memoria Caché 0 0 0 0  Línea 0 Desplazamiento 0 0 0 0 1  Línea 0 Desplazamiento 1 0 0 1 0  Línea 1 Desplazamiento 0 0 0 1 1  Línea 1 Desplazamiento 1 0 1 0 0  Línea 2 Desplazamiento 0 0 1 0 1  Línea 2 Desplazamiento 1 0 1 1 0  Línea 3 Desplazamiento 0 0 1 1 1  Línea 3 Desplazamiento 1 1 0 0 0  Línea 0 Desplazamiento 0 1 0 0 1  Línea 0 Desplazamiento 1 1 0 1 0  Línea 1 Desplazamiento 0 1 0 1 1  Línea 1 Desplazamiento 1 1 1 0 0  Línea 2 Desplazamiento 0 1 1 0 1  Línea 2 Desplazamiento 1 1 1 1 0  Línea 3 Desplazamiento 0 1 1 1 1  Línea 3 Desplazamiento 1 ¡ Etiqueta ! Arquitectura de Computadores Memoria 16

Formato de una dirección en correspondencia directa: Memoria Caché Formato de una dirección en correspondencia directa: Etiqueta Línea Desp. 1 2 En el ejemplo 17 Arquitectura de Computadores Memoria

El bloque puede ubicarse en cualquier línea de la caché Memoria Caché Políticas de Ubicación Correspondencia Asociativa El bloque puede ubicarse en cualquier línea de la caché Dir. de memoria Bloque Despl.  etiq Línea 0  Comp. Acierto Fallo etiq  Línea 1  Comp. Acierto Fallo etiq  Línea 2  Comp. Acierto Fallo Caché Memoria 18

Num_Conjunto = Num_bloque módulo Num_Conjuntos Memoria Caché Num_Conjunto = Num_bloque módulo Num_Conjuntos Políticas de Ubicación Correspondencia Asociativa de Conjuntos b+d Bloque Despl. Dir. de memoria d pal. 0 pal. 1 pal. 2 pal. 3 . . . Etiq B0 C0 b-c c etiq. conjunto . . . b + pal. 4j pal. 4j+1 pal. 4j+2 pal. 4j+3 . . . . . . . C1 Comparador + d BJ Acierto Caché Mem. principal Falta de caché Memoria 19

Políticas de Sustitución Memoria Caché Políticas de Sustitución Caché llena Directa Quitar el Bloque Antiguo Asociativa Sustituir alguna línea Asociativa Conj. Sustituir línea del conjunto Política de Sustitución Memoria 20

Memoria Caché Políticas de Sustitución LRU De Tipo Estadístico LFU Least Recently Used De Tipo Estadístico  Bueno en general  Falla con algunas matrices LFU Least Frequently Used Políticas de Sustitución FIFO First In First Out  Buena tasa de aciertos  No falla con las matrices Fácil y económico De Tipo NO Estadístico Random Nº aleatorio entre 0 y Nº Líneas-1 Memoria 21

Coherencia de la información entre las distintas memorias Memoria Caché Políticas de Actualización Propiedad de la caché Coherencia de la información entre las distintas memorias Actualizar MP Acierto Escritura Inmediata (Write Through) Retrasar la actualización Escritura en caché Traer bloque a caché Escritura Diferida (Write Back) Fallo Escribir dato en MP 2 accesos a MP Memoria 22

solapa con la ejecución Memoria Caché Políticas de Actualización Escritura Inmediata  No hay incoherencia  Mucho tráfico: cada escritura en caché una actualización en MP Escritura Diferida  Menos tráfico: muchas escrituras en caché una sola actualización en MP Incoherencia Multiprocesadores DMA Al reemplazar un bloque “sucio” se penaliza el acceso actual con la escritura del bloque Buffer de escritura Su actualización se solapa con la ejecución de las instrucciones Memoria 23

Memoria Caché Tamaño de la Caché Memoria SPEC CPU 2000 Benchmarks (2003) Tasa de Fallos Tamaño de la caché Barata Rápida Muchas faltas Pocas faltas Cara No tan Rápida Poca mejora Memoria 24

AMD Athlon Thunderbird Memoria Caché Tamaño de la Caché CPU TAMAÑO CACHÉ L1 80486DX and DX2 8 KB L1 80486DX4 16 KB L1 Pentium Pentium Pro Pentium MMX 32 KB L1 AMD K6 and K6-2 64 KB L1 Pentium II and III Celeron Pentium III Cumine AMD K6-3 AMD K7 Athlon 128 KB L1 AMD Duron AMD Athlon Thunderbird PowerPC G4 64 KB L1 (32 + 32) PowerPC G5 96KB L1 (64+32) Pentium IV 104 KB (96 + 8) A partir de aquí todos tienen más niveles de caché Memoria 25

Memoria Caché Tamaño del Bloque ↑ Localidad ↓ Localidad Memoria espacial ↓ Localidad Temporal Memoria 26

Tasa de Fallo = Nº Fallos / Nº Accesos Memoria Caché Tipos de fallo de caché Por Carga inicial (Compulsory) Carga inicial de la caché. Estos fallos se producen aun con una caché de tamaño infinito De Capacidad (Capacity) Cuándo la caché no puede almacenar todos los bloques de un programa en ejecución Por Conflicto (Conflict) Aun habiendo líneas libres no se puede cargar un bloque Suele suceder en cachés con un grado bajo de asociatividad (correspondencia directa o asociativa por conjuntos de pocas vías) Tasa de Fallo = Nº Fallos / Nº Accesos Memoria 27

Memoria Caché Tipos de fallo de caché Memoria 28

Memoria Caché Optimización Memoria 29 optimización Reducción del tiempo de acceso Reducción de la penalización por fallo Reducción de la tasa de fallos Incremento del paralelismo Incremento del ancho de banda Memoria 29

Correspondencia Directa y Memoria Caché Optimización Reducción del tiempo de acceso: Caches Pequeñas Consume tiempo: Búsqueda del bloque Etiquetas grandes Nº Comparadores Tiempo acceso (ns) Correspondencia Directa y Cachés multinivel Tamaño Caché Configuración: bloque 64 bytes y un banco Memoria 30

Memoria Caché Optimización Acceso a Memoria L1: L2: Caches Multinivel Reducción del tiempo de acceso: Caches Pequeñas C a c h é L 1 Memoria Principal CPU Caché L2 Acceso a Memoria Fallo Acierto L1: TL1 * PAL1 (1-PAL1) TMP TL1 PAL1 TL2 PAL2 Acierto Fallo L2: PAL2 * (1-PAL1)* TL2 (1-PAL1)* (1-PAL2 )* TMP TMEDIO = TL1 * PAL1 + PAL2 * (1-PAL1)* TL2 + (1-PAL1)* (1-PAL2 )* TMP Memoria 31

Memoria Caché Optimización Reducción del tiempo de acceso: Predicción Se parte de una caché con correspondencia asociativa de conjuntos (menos conflictos de colisiones que la correspondencia directa) Se intenta obtener el tiempo de acceso de una memoria de correspondencia directa Se predice que línea del conjunto va a ser accedida Mediante la predicción se consigue que la comparación de etiquetas y la lectura de bloque se realice en paralelo La predicción tiene un acierto elevado (85%) Cuando la predicción falla se busca el bloque en el resto de líneas del conjunto (penalización) Cada línea tiene asociados unos bits para realizar la predicción Pentium 4 y MIPS R10000 utilizan este esquema Memoria 32

Memoria Caché Optimización Similar a una caché de instrucciones Reducción del tiempo de acceso: Caché de Trazas Similar a una caché de instrucciones En lugar de almacenar bloques de código (localidad espacial) almacena las secuencias de instrucciones que van a ejecutarse (localidad temporal) Los saltos pueden provocar que se almacenen en la caché dos secuencias de código de acuerdo al sentido del salto Mayor dificultad en los mecanismos de gestión de direcciones (ubicación) Bloques de mayor tamaño Cara y poco utilizada Pentium 4 la utiliza para almacenar micro-ops (instrucciones ya decodificadas) Memoria 33

Caché L1 Unificada Caché L1 Caché L1 Memoria Caché Optimización Incremento del ancho de banda: Caches de nivel 1 separadas Caché L1 Unificada Instrucciones y Datos Caché L1 Instrucciones Caché L1 Datos Arquitectura Harvard Equilibrio automático de instrucciones y datos  Más simple de diseñar e implementar En procesadores segmentados evita riesgos estructurales Todos los procesadores modernos la utilizan Memoria 34

Memoria Caché Optimización Segmentar los accesos a la caché Incremento del ancho de banda: Caches segmentadas Segmentar los accesos a la caché Consiguiendo que se lleven a cabo varios accesos a memoria No se reduce el tiempo de acceso La duración de la etapa está en función de la duración total y del nº de etapas Load 1 1 ciclo Mayor frecuencia de Reloj Load 1 1 ciclo 1 ciclo 1 ciclo Load 2 Load 2 Load 3 Load 3 Memoria 35

Memoria Caché Optimización Incremento del ancho de banda: Caches No Bloqueantes Un fallo de caché provoca que no se atiendan más accesos Comportamiento pernicioso en procesadores superescalares Una falta de caché en escritura provoca que otras instrucciones no puedan terminar aunque su acceso sea un acierto Las caches no bloqueantes siguen atendiendo peticiones en presencia de un fallo Cuantos más accesos se solapen mayor reducción de la penalización por fallo de caché en los programas Memoria 36

Memoria Caché Optimización Banco = Bloque MOD 4 Dir. de memoria Incremento del ancho de banda: Caches Multibanco Línea 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Caché Monolítica Banco 0 Banco 1 Banco 2 Banco 3 Línea 0 Línea 0 Línea 0 1 2 3 Bloque 3 Línea 0 Bloque 0 1 1 Bloque 1 1 2 2 2 3 3 3 Bloque 2 Bloque 4 Dir. de memoria Funciona bien cuando los accesos están repartidos L2 AMD Opteron 2 bancos L2 SUN Niagara 4 bancos Bloque Despl. Banco = Bloque MOD 4 Memoria 37

expulsados de la caché L1 Caché L1 Correspondencia Memoria Caché Optimización Reducción de la penalización por fallo: Caché de victimas Línea 0 1 2 Memoria muy pequeña Fallo L1 Comprobar victimas LRU cuando está llena Admite algún esquema predictivo 3 Caché Nivel 2 4 Línea 0 5 1 6 2 3 7 8 Caché Asociativa 9 Últimos bloques expulsados de la caché L1 10 11 12 13 Caché L1 Correspondencia Directa Memoria 38

Memoria Caché Optimización Memoria CPU Principal Memoria Reducción de la penalización por fallo: Buffer de Escritura Cache L1 Memoria Principal CPU store Buffer Escritura Para caches de escritura directa (Write Through), aunque también se emplea con escritura diferida El procesador escribe en la caché y en el Buffer continuando con la ejecución de instrucciones El controlador de memoria vuelca el Buffer a memoria (L2 o principal) El Buffer suele tener 4 entradas y política FIFO Funciona bien cuando la frecuencia de las escrituras es menor que 1 / Tacceso memoria Cuando el Buffer está lleno el procesador espera por una entrada libre Memoria 39

Memoria Caché Optimización Sin Write Merging Con Write Merging Reducción de la penalización por fallo: Buffer de Escritura y Write Merging En el Buffer se van introduciendo las palabras (store) generadas por el procesador una en cada entrada Una optimización del Buffer consiste en comprobar si cada nueva palabra puede combinarse con las ya existentes para formar bloques completos Escrituras Escrituras 100 100 100 100 108 116 124 1 108 1 108 108 LLENO LIBRES 116 116 116 2 2 124 3 3 124 124 Posiciones Consecutivas 32 octetos 32 octetos Sin Write Merging Con Write Merging Memoria 40

Memoria Caché Optimización CPU) CPU) Rearranque Rápido Reducción de la penalización por fallo: Palabra crítica primero y rearranque rápido El procesador en un acceso a memoria sólo necesita una palabra no el bloque completo Por lo tanto no es necesario que espere por todo el bloque Palabra Crítica primero Rearranque Rápido CPU) CPU CPU) CPU 1. load 4. Word (M) 1. load CACHE CACHE 3. Word 4. Update 2. Get Block 3. Update (0,..,M,..N-1) 2. Get Block MEMORIA PRINCIPAL MEMORIA PRINCIPAL Memoria 41

Memoria Caché Optimización Memoria Reducción de tasa de fallos: Optimizaciones del compilador No modifica la estructura de la caché Reordenación de código para explotar la localidad tanto espacial como temporal Se optimiza la disposición del código y el acceso a los datos int x[10][50]; for (j=0; j<50; j++) for (i=0; i<10; i++) x[i][j] = 2*x[i][j]; int x[10][50]; for (i=0; i<10; i++) for (j=0; j<50; j++) x[i][j] = 2*x[i][j]; Se accede por filas $80 $84 $88 0,0 0,1 0,2 9,47 9,48 9,49 Disposición en memoria de x (almacenamiento por filas) Memoria 42

Memoria Caché Optimización Memoria Reducción de tasa de fallos y penalización: HW prefetch Cargar los bloques en caché antes de ser usados sin interferir en el funcionamiento normal 2. Get Block (N) 1. Fetch Cache L1 Instrucciones 3. Block (N) Memoria Principal CPU 4. Block (N+1) 4. Instr. Stream Buffer if Fallo_Cache then if Block (X) in Stream Buffer Update_Cache (Block (X)) GetBlock_MP (X+1) else // No está en Stream Buffer GOTO “Paso 2” // GetBlock(N) endif Memoria 43

Memoria Caché Optimización Memoria Reducción de tasa de fallos y penalización: SW prefetch La carga anticipada de bloques en la caché la realiza el compilador insertando instrucciones especiales de pre-carga de bloques Al igual que la técnica anterior la memoria debe tener el suficiente ancho de banda para soportar este mecanismo int x[10][50]; for (i=0; i<10; i++) for (j=0; j<50; j++) x[i][j] = 2*x[i][j]; compilador int x[10][50]; for (i=0; i<10; i++) { PRE_FECTH (x[i+1][0]); for (j=0; j<50; j++) { PRE_FETCH (x[i][j+5]); x[i][j] = 2*x[i][j]; } Elementos de x de tamaño 64 bits Almacenamiento por filas Bloques de caché de 128 bits 50 % tasa de fallo (1 de cada 2 accesos) Memoria 44

MEMORIA Memoria principal 45 45

Memoria Principal El problema … Performance (log) Memoria 46

Parámetros rendimiento de la memoria Memoria Principal Parámetros rendimiento de la memoria Latencia Tiempos de acceso: Tiempo entre solicitar y recibir un dato Ciclo: Tiempo entre dos accesos Ancho de Banda Transferencia de grandes cantidades de información (bloques, páginas, etc.) Tipos de memoria DRAM Memoria Principal SRAM Memoria Caché Memoria 47

Memoria Principal DRAM Memoria Dynamic Random Access Memory Primera DRAM Intel 1103 – 1 Kbit en un único Chip Hoy en día más de 4 GB por chip Un transistor y un condensador por bit Necesitan refresco (cada 8 ms, <5% del tiempo) No permite accesos Tras una lectura es necesario volver a refrescar la información Ciclo de memoria mayor que el tiempo de acceso Organizada en una matriz de N Filas x N columnas de M bits Reducir el nº de pines al multiplexar Filas y Columnas Cada acceso un ciclo de RAS/CAS RAS: Row Access Strobe CAS: Column Access Strobe Encapsulada en pequeñas tarjetas DIMM (Dual Inline Memory Modules) De 4 a 16 DRAM Memoria 48

Memoria Principal DRAM DRAM CPU Memoria Estructura Frontside Bus NORTH BRIDGE Backside Bus CACHÉ L2 DRAM Controller CACHÉ L1 DRAM Bus PCI SOUTH BRIDGE USB DRAM APM Otros Dispositivos Memoria 49

Memoria Principal DRAM 64 x1bit Memoria Estructura Bit Line Decodificador de 3 a 8 (Row) Buffer de Direcciones Word Line Decodificador de 3 a 8 (Column) Celda de memoria Memoria 50

Memoria Principal DRAM x8 DRAM x2 DRAM x4 DRAM 8M bit 2M bit 4M bit Estructura: Organización Física x8 DRAM Column x2 DRAM Column x4 DRAM Column Array de Celdas Row Array de Celdas (1024x1024bits) Row Array de Celdas (1024x1024bits) Row Array de Celdas (1024x1024bits) 8M bit 2M bit 4M bit Memoria 51

Memoria Principal DRAM Año Tamaño T. Acceso(ns) Ciclo (ns) Memoria Prestaciones Año Tamaño T. Acceso(ns) Ciclo (ns) 1980 64K bit 150-180 250 1983 256K bit 120-150 220 1986 1M bit 100-120 190 1989 4M bit 80-100 165 1992 16M bit 60-80 120 1996 64M bit 50-70 110 1998 128M bit 100 2000 256M bit 45-65 90 2002 512M bit 40-60 80 2004 1G bit 35-55 70 2006 2G bit 30-50 60 Tamaño x4 cada tres años T. Acceso x25% cada tres años Ciclo x15% cada tres años Memoria 52

Latencia DRAM = A + B + C + D + E + F Memoria Principal DRAM Latencia DRAM B D Controlador de Memoria CPU A C E F Encolado de la petición de acceso a memoria (posible espera) Petición de acceso enviada al Controlador de Memoria Conversión de la petición de acceso a órdenes para la DRAM (posible espera) Envío de órdenes a la DRAM Fijar Fila (RAS) y Columna (CAS) en la matriz de celdas Resultado del acceso Latencia DRAM = A + B + C + D + E + F Memoria 53

Memoria Principal DRAM Memoria Ciclo de Lectura: Modo Normal RAS CAS Dirección FILA COL FILA COL Datos DATO DATO Memoria 54

Memoria Principal DRAM Memoria Ciclo de Lectura: Modo Fast Page Explota la localidad de los datos Página = FILA El tiempo de acceso al primer dato idéntico al de la DRAM convencional RAS CAS Dirección FILA COL COL COL Datos DATO DATO DATO Memoria 55

Memoria Principal DRAM Memoria Ciclo de Lectura: Modo Extended Data Out (EDO) Reduce el tiempo de acceso a posiciones consecutivas de memoria Solapa datos con direcciones CAS cambia antes de que la memoria haya entregado el dato anterior RAS CAS Dirección FILA COL COL COL COL Datos DATO DATO DATO DATO Memoria 56

Memoria Principal DRAM Memoria Ciclo de Lectura: Modo Ráfaga (Burst) Utiliza un mecanismo de autoincremento para calcular la siguiente columna Los accesos aleatorios no son más rápidos Muy útil para ciertas aplicaciones (streaming) Tiempos de acceso 6-1-1-1 (primeros 64 bits y sucesivos) RAS CAS Dirección FILA COL Datos DATO DATO DATO DATO Memoria 57

Memoria Principal SDRAM DRAM FPM y DRAM EDO son asíncronas Synchronous DRAM DRAM FPM y DRAM EDO son asíncronas Controlador de memoria y DRAM utilizan un protocolo mediante señales para realizar/sincronizar los accesos a memoria El protocolo de acceso introduce varios ciclos de latencia Se sustituye el protocolo de acceso por uno nuevo basado en la señal de reloj de la placa base Los eventos suceden de acuerdo a esta nueva señal (CLK) Se simplifica el controlador de memoria Suelen disponer de Varios bancos de memoria (entrelazada). De 2 a 4 bancos Mayor ancho de banda Bus de Datos de 64 bits Memoria 58

Memoria Principal SDRAM Memoria Ciclo de lectura CLK RAS CAS Activar Banco Comandos ACT READ Direcciones FILA COL Datos DATO DATO DATO DATO Memoria 59

Memoria NO entrelazada Memoria Principal SDRAM Bancos de memoria (entrelazada) Banco 0 Banco 1 Banco 0 Banco 1 N 1 1 N+1 2 3 2 N+2 4 5 N-2 2N-2 2N-4 2N-3 N-1 2N-1 2N-2 2N-1 BUFFER BUFFER BUFFER BUS BUS Memoria NO entrelazada Memoria Entrelazada Memoria 60

Accesos No Entrelazada Memoria Principal SDRAM Bancos de memoria (entrelazada) Banco 0 Banco 1 Banco 2 …… Banco N CLK Oct. 1 Oct. 2 Accesos No Entrelazada CLK Oct. 1 Oct. 2 Palabra Banco Oct. 3 Oct. 4 m bits k bits Accesos Entrelazada Dirección Memoria 61

Memoria Principal DDR-SDRAM Aparece en los procesadores AMD Athlon Double Data Rate SDRAM Aparece en los procesadores AMD Athlon Transfieren más información por cada ciclo Utilizan ambos flancos de la señal de reloj Prefetching para aumentar el nº de bits transferidos entre la matriz de celdas de memoria y el buffer de memoria Señalización más rápida DDR SDRAM 64 bits Matriz de Memoria Buffer Bus de memoria Bus de Datos DDR1 DDR2 DDR3 Bits por ciclo x2 x4 x8 Memoria 62

Memoria Principal DDR-SDRAM Memoria Double Data Rate SDRAM 100 Mhz PREGUNTA 3 Memoria Principal DDR-SDRAM Double Data Rate SDRAM 100 Mhz x 2 Datos por ciclo x 8 Octetos Tipo Nombre Nombre del módulo Bus de memoria Ancho de banda máx. 100 Mhz 133 Mhz 166 Mhz 200 Mhz 100 Mhz 133 Mhz 166 Mhz 200 Mhz 100 Mhz 133 Mhz 166 Mhz 200 Mhz Memoria 63

Mover pocos datos muy rápidamente Memoria Principal RDRAM Rambus DRAM Mover pocos datos muy rápidamente Aparece en los procesadores Intel Pentium III y IV Mayor frecuencia de reloj que las memorias DDR Bus de datos de 16 bits Peticiones de acceso simultáneas Ancho de banda (pico) de 2.4 GB/s Hasta 32 memorias en un único canal Mayor precio que DDR Memoria 64

Módulos de Memoria DIMM Memoria Principal Módulos de Memoria DIMM Dual In-line Memory Module Bus de datos de 64 bits Cada DIMM contiene de 8 a 16 chips DRAM (más uno de paridad) 8 chips DRAM si son de 8 bits (x8) 16 chips DRAM si son de 4 bits (x4) Configuraciones disponibles: Una cara, un bloque (una única señal de selección CS*) Doble cara, un bloque (una única señal de selección) Doble cara, doble bloque (dos señales de selección) Doble cara, cuatro bloques (cuatro señales de selección) Número de contactos: SDRAM 168 pines DDR1 184 pines DDR2 y DDR3 240 pines Memoria 65

Módulos de Memoria DIMM Memoria Principal Módulos de Memoria DIMM Dual In-line Memory Module Chip DRAM de 8 bits Memoria 66

Resumen Caché SRAM Static DRAM – Fast Page Memoria DRAM – EDO Random Access Memory DRAM – Fast Page Memoria DRAM – EDO Asíncrona DRAM – Burst Principal DRAM Dynamic Random Access Memory DDR1 SDRAM DDR2 Síncrona DDR3 Rambus Memoria 67

MEMORIA Memoria virtual 68 68

Utilizando la memoria secundaria como si fuera memoria principal Memoria Virtual Desde hace tiempo ... Los sistemas informáticos son capaces de tener más de un programa en memoria (multiprogramación) Las necesidades de memoria de todos los programas de un sistema son superiores a la memoria física disponible ¿Cómo lo hacen? Utilizando la memoria secundaria como si fuera memoria principal Memoria 69

Memoria Virtual Concepto Separar espacio de direcciones de posición de memoria Direcciones lógicas Direcciones físicas INDIRECCIÓN Mantener en memoria principal las instrucciones y los datos que con mayor frecuencia se utilizan. Examinando los programas se observa que ... Existe código que raramente se utiliza Y variables sobredimensionadas Dejar en el disco la parte del programa que no se necesite Antes de que la CPU pueda extraer una instrucción o acceder a un dato es necesario que estén en memoria principal Memoria 70

La Paginación es una forma de implementar la Memoria Virtual Dir. Virtuales CPU Bus del sistema Memoria Principal LD R1,4(R10) Forman el espacio de Direccionamiento Virtual En los microprocesadores actuales entre 232 y 264 direcciones Dir. Virtual $100 MMU Dir. Física La Paginación es una forma de implementar la Memoria Virtual Los procesos generan Direcciones Virtuales (lógicas) Permite que los procesos estén parcialmente cargados y en posiciones no contiguas de memoria Memoria 71

Memoria Principal (Dir. Físicas) Espacio Dir. Virtual Memoria Virtual Memoria Principal (Dir. Físicas) Dividido en páginas Cuyo tamaño sea múltiplo del bloque de disco Pág 0 Pág 1 Pág 2 Pág 3 Pág 4 ... Pág N Dividido en Marcos Marco N Marco 1 Marco 0 ¿Cómo conocer dónde están las páginas? Espacio Dir. Virtual Memoria 72 Tema 4 Gestión de

El tamaño de la entrada es múltiplo de la palabra del procesador Memoria Virtual Tabla de Páginas Formada por una entrada por cada página virtual Indexada por el número de página Nº Pág. P E R PR Marco 1 ... El tamaño de la entrada es múltiplo de la palabra del procesador N Bits de Protección R W X Bit de Ensuciado Tabla de páginas Bit de Referencia Marco de memoria principal Bit de Presencia Memoria 73

Traducción de Direcciones Memoria Virtual Traducción de Direcciones M.P. Marcos 1 ... N Dir. Física Dir. Virtual CPU Pág. Desplazamiento + Disco Pág 0 Pág 1 Pág 2 ... Pág N Reg. Base TP Marco 1 1 ... N Tabla de páginas Memoria 74

Memoria Virtual Falta de página ........................ ld R1, 10(R2) 4 ........................ ld R1, 10(R2) Continuar S.O. FaltaPág 3 3 $2312 1 P Actualizar Tab. Pág 2 Página: 2 Despl.: 312 1 N 1 3 Pág 1 X 2 Pág 2 Pág 2 3 Pág 2 Pág 2 1 Cargar Pág.2 4 ... ... 5 Pág N ... N Pág 0 Tabla de páginas Memoria Principal Disco Memoria 75

MMU Memoria Virtual Traducción de direcciones: TLB TLB Translation Lookaside Buffer Utilizando una caché con la traducción de las direcciones más frecuentes MMU Dir. Virtual Pág. Despl. TLB Dir. Física Acierto + Marco Etiqueta Marco Etiq. -- Marco Actualizar Tabla de Páginas Fallo Reg. Base TP Memoria 76

¿Qué ocurre cuando hay un cambio de contexto? Memoria Virtual TLB Estructura Suelen tener un número reducido de entradas (de 128 a 256) Correspondencia directa o asociativa Los procesadores disponen de instrucciones especiales para manipularla (insertar e invalidar entradas) Entrada de la TLB Id. de Proceso Bit de Validez Nº de Página ETIQUETA Bit de Ensuciado ¿Qué ocurre cuando hay un cambio de contexto? Marco de M.P. Bits de Protección Memoria 77

Esquema general de Traducción Memoria Virtual Esquema general de Traducción Dir. Virtual Acceder TLB Fallo Acierto Acceso No Permitido Buscar en Tab. Pág. Traducir Dirección Acceso Permitido Excepción Excepción Pág. No encontrada Actualizar TLB Pág. encontrada Dir. Física Memoria 78

Memoria Virtual Memoria Dir. Virtual <64> Dir. Real <40> L1 cache tag <27> L1 data<64B> Dir. Real <40> Mem. Vir. Tamaño Pág: 8KB TLB 256 entradas Corresp. Directa Caché L1 Tamaño 8 KB Corr. Directa Caché L2 Tamaño 4 MB Corr. Directa Bloque 64 octetos L2 tag <18> L2 línea <16> L2 Des <6> L2 cache tag <18> L2 data <64B> Memoria 79