La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

MEMORIA 1.

Presentaciones similares


Presentación del tema: "MEMORIA 1."— Transcripción de la presentación:

1 MEMORIA 1

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

3 Estructura Jerárquica de la Memoria
3 3

4 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

5 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

6 MEMORIA Memoria Caché 6 6

7 ¿ ? 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

8 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

9 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

10 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

11 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

12 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

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

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

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

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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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 ( ) 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

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

27 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

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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 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

39 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

40 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

41 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

42 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

43 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

44 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

45 MEMORIA Memoria principal 45 45

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

47 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

48 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

49 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

50 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

51 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

52 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 250 1983 256K bit 220 1986 1M bit 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

53 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

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

55 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

56 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

57 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 (primeros 64 bits y sucesivos) RAS CAS Dirección FILA COL Datos DATO DATO DATO DATO Memoria 57

58 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

59 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

60 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

61 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

62 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

63 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

64 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

65 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

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

67 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

68 MEMORIA Memoria virtual 68 68

69 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

70 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

71 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

72 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

73 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

74 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

75 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

76 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

77 ¿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

78 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

79 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


Descargar ppt "MEMORIA 1."

Presentaciones similares


Anuncios Google