La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

7.MEMORIA 1. 2 1.Estructura Jerárquica de la Memoria 2.Memoria Caché 3.Memoria Principal 4.Memoria Virtual MEMORIA.

Presentaciones similares


Presentación del tema: "7.MEMORIA 1. 2 1.Estructura Jerárquica de la Memoria 2.Memoria Caché 3.Memoria Principal 4.Memoria Virtual MEMORIA."— Transcripción de la presentación:

1 7.MEMORIA 1

2 2 1.Estructura Jerárquica de la Memoria 2.Memoria Caché 3.Memoria Principal 4.Memoria Virtual MEMORIA

3 1.Estructura Jerárquica de la Memoria 3 MEMORIA

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

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

6 2.Memoria Caché 6 MEMORIA

7 Memoria Caché Memoria 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. Por qué es tan útil una memoria tan pequeña ¿? Fundamento 7

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

9 Memoria Memoria Caché CPU (bytes) Caché (KB-MB) Memoria Principal (GB-TB) Bloque Palabra 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 Buscar en la caché Acierto Fallo Entregar Dato Asignar Línea Traer Bloque Funcionamiento 9

10 Memoria Memoria Caché Cuestiones de Diseño 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ñosNº Caches 10

11 Memoria Memoria Caché Políticas de Ubicación Correspondencia Directa BloqueDespl. L0L0 Comp.... etiq. datos Caché LJLJ Dir. de memoria b+d pal. 0 pal. 1 pal. 2 pal B0B0 Memoria principal pal. 4j pal. 4j+1 pal. 4j+2 pal. 4j+3... BJBJ b d Falta de caché Acierto + ldb-l etiq.línea pal. 4j+2 11

12 Arquitectura de Computadores 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 Ejemplo: Memoria Caché Memoria 12

13 Línea 0 Desplazamiento Línea 0 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea Línea 1 Desplazamiento Línea 1 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea Línea 2 Desplazamiento Línea 2 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea Línea 3 Desplazamiento Línea 3 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea Línea 0 Desplazamiento Línea 0 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea Línea 1 Desplazamiento Línea 1 Desplazamiento 1 Línea 0 Línea 1 Línea 2 Línea Línea 2 Desplazamiento 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 Línea 3 Desplazamiento Línea 3 Desplazamiento 1 Memoria Caché Memoria 13

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

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

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

17 Arquitectura de Computadores Etiqueta Formato de una dirección en correspondencia directa: LíneaDesp. 121 En el ejemplo Memoria Caché Memoria 17

18 Memoria Memoria Caché Políticas de Ubicación Correspondencia Asociativa Caché BloqueDespl. Comp. etiq Acierto Fallo Comp. Acierto Fallo Línea 0 Línea 1 Línea 2 Dir. de memoria 18

19 Memoria Memoria Caché Políticas de Ubicación Correspondencia Asociativa de Conjuntos Comparador Falta de caché Acierto b+d Bloque Despl. Dir. de memoria d C0C0... Caché C1C1... b d + + Mem. principal pal. 0 pal. 1 pal. 2 pal B0B0 BJBJ pal. 4j pal. 4j+1 pal. 4j+2 pal. 4j b-cc etiq. conjunto Etiq 19

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

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

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

23 Memoria Memoria Caché Políticas de Actualización Escritura Inmediata Escritura Diferida No hay incoherencia Mucho tráfico: cada escritura en caché una actualización en MP 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 Su actualización se solapa con la ejecución de las instrucciones Buffer de escritura 23

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

25 Memoria Memoria Caché Tamaño de la Caché CPUTAMAÑO CACHÉ L DX and DX28 KB L DX416 KB L1 Pentium16 KB L1 Pentium Pro16 KB L1 Pentium MMX32 KB L1 AMD K6 and K6-264 KB L1 Pentium II and III32 KB L1 Celeron32 KB L1 Pentium III Cumine32 KB L1 AMD K6-364 KB L1 AMD K7 Athlon128 KB L1 AMD Duron128 KB L1 AMD Athlon Thunderbird128 KB L1 PowerPC G464 KB L1 ( ) PowerPC G596KB L1 (64+32) Pentium IV104 KB (96 + 8) A partir de aquí todos tienen más niveles de caché 25

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

27 Memoria 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 27

28 Memoria Memoria Caché Tipos de fallo de caché 28

29 Memoria Memoria Caché Optimización 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 29

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

31 Memoria Memoria Caché Optimización Reducción del tiempo de acceso: Caches Pequeñas C a c h é L 1 Memoria Principal CPU Caché L2 Acceso a Memoria T L1 PA L1 T L2 PA L2 T MP Acierto Fallo T L1 * PA L1 (1-PA L1 ) L1: Acierto Fallo PA L2 * (1-PA L1 )* T L2 (1-PA L1 )* (1-PA L2 )* T MP L2: T MEDIO = T L1 * PA L1 + PA L2 * (1-PA L1 )* T L2 + (1-PA L1 )* (1-PA L2 )* T MP Caches Multinivel 31

32 Memoria 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 32

33 Memoria Memoria Caché Optimización 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) 33

34 Memoria 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 Equilibrio automático de instrucciones y datos Más simple de diseñar e implementar Arquitectura Harvard En procesadores segmentados evita riesgos estructurales Todos los procesadores modernos la utilizan 34

35 Memoria Memoria Caché Optimización 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 Load 2 1 ciclo Load 3 1 ciclo Load 1 1 ciclo Load 2 Load 3 Mayor frecuencia de Reloj 35

36 Memoria 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 36

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

38 Memoria Memoria Caché Optimización Reducción de la penalización por fallo: Caché de victimas Línea Caché L1 Correspondencia Directa Línea 0 Caché Asociativa Caché Nivel 2 Últimos bloques expulsados de la caché L1 Memoria muy pequeña Fallo L1 Comprobar victimas LRU cuando está llena Admite algún esquema predictivo 38

39 Memoria Memoria Caché Optimización Reducción de la penalización por fallo: Buffer de Escritura CPU Cache L1 Buffer Escritura Memoria Principal 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 store 39

40 Memoria Memoria Caché Optimización 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 octetos Sin Write Merging Escrituras octetos Con Write Merging LLENO LIBRES Posiciones Consecutivas 40

41 Memoria Memoria Caché Optimización 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 CPU) CACHE MEMORIA PRINCIPAL CPU 1. load 2. Get Block 3. Word 4. Update Palabra Crítica primero CPU) CACHE MEMORIA PRINCIPAL CPU 1. load 2. Get Block 4. Word (M) 3. Update (0,..,M,..N-1) Rearranque Rápido 41

42 Memoria Memoria Caché Optimización 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]; 0,0 0,1 0,2 9,47 9,48 9,49 Disposición en memoria de x ( almacenamiento por filas ) 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 42

43 Memoria Memoria Caché Optimización 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 CPU Cache L1 Instrucciones Stream Buffer Memoria Principal 1. Fetch 2. Get Block (N) 3. Block (N) 4. Block (N+1) 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 4. Instr. 43

44 Memoria Memoria Caché Optimización 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]; 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) 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]; } 44

45 3.Memoria principal 45 MEMORIA

46 Memoria Memoria Principal Performance (log) El problema … 46

47 Memoria Memoria Principal 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.) Parámetros rendimiento de la memoria Tipos de memoria DRAM Memoria Principal SRAM Memoria Caché 47

48 Memoria Memoria Principal DRAM 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 48

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

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

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

52 Memoria Memoria Principal AñoTamañoT. Acceso(ns)Ciclo (ns) K bit K bit M bit M bit M bit M bit M bit M bit M bit G bit G bit DRAM Prestaciones Tamaño x4 cada tres años T. Acceso x25% cada tres años Ciclo x15% cada tres años 52

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

54 Memoria Memoria Principal FILACOLFILACOL RASCAS Dirección Datos DRAM Ciclo de Lectura: Modo Normal 54 DATO

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

56 Memoria Memoria Principal DRAM Ciclo de Lectura: Modo Extended Data Out (EDO) FILACOL RASCAS Dirección Datos COL 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 56 DATO

57 Memoria Memoria Principal DRAM Ciclo de Lectura: Modo Ráfaga (Burst) FILACOL RASCAS Dirección Datos 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 (primeros 64 bits y sucesivos) 57 DATO

58 Memoria Memoria Principal SDRAM 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 58

59 Memoria Memoria Principal SDRAM Ciclo de lectura RAS CLK CAS ACTREAD FILACOL Comandos Direcciones DATO Datos DATO Activar Banco 59

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

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

62 Memoria Memoria Principal DDR-SDRAM 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 Matriz de Memoria Buffer Bus de memoria Bus de Datos DDR1DDR2DDR3 Bits por ciclox2x4x8 64 bits 62

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

64 Memoria Memoria Principal RDRAM Rambus DRAM 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 Mover pocos datos muy rápidamente 64

65 Memoria 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 65

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

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

68 4.Memoria virtual 68 MEMORIA

69 Memoria Memoria Virtual Desde hace tiempo... ¿Cómo lo hacen? 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 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 Utilizando la memoria secundaria como si fuera memoria principal 69

70 Memoria Memoria Virtual Mantener en memoria principal las instrucciones y los datos que con mayor frecuencia se utilizan. Examinando los programas se observa que... 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 Separar espacio de direcciones de posición de memoria INDIRECCIÓN Existe código que raramente se utiliza Y variables sobredimensionadas Direcciones lógicas Direcciones físicas Concepto 70

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

72 Memoria Virtual Tema 4 Gestión de Memoria 72 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

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

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

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

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

77 Memoria Memoria Virtual 77 Marco de M.P. Id. de Proceso 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) Bit de Validez Nº de Página ETIQUETA Bit de Ensuciado Bits de Protección Entrada de la TLB ¿Qué ocurre cuando hay un cambio de contexto? TLB Estructura

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

79 Memoria Memoria Virtual 79 Dir. Virtual 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 Dir. Real L1 cache tag L1 data L2 tag L2 cache tag L2 data L2 línea L2 Des


Descargar ppt "7.MEMORIA 1. 2 1.Estructura Jerárquica de la Memoria 2.Memoria Caché 3.Memoria Principal 4.Memoria Virtual MEMORIA."

Presentaciones similares


Anuncios Google