[ Arquitectura de Computadores ] SISTEMAS DE MEMORIA Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.

1 [ Arquitectura de Computadores ] SISTEMAS DE MEMORIA Pr...
Author: Ana María Núñez Reyes
0 downloads 0 Views

1 [ Arquitectura de Computadores ] SISTEMAS DE MEMORIA Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC 2342 Semestre 2006-2 Domingo Mery D.Mery 1 Arquitectura de Computadores

2 Präsentat ion D.Mery 2 Arquitectura de Computadores [ Índice ]  4.1 Sistemas de almacenamiento  4.2 Codificación, compresión e integridad  4.3 Jerarquía de memoria  4.4 Manejo de errores y fiabilidad  4.5 Organización de la memoria principal  4.6 Memorias caché  4.7 Memoria virtual

3 Präsentat ion D.Mery 3 Arquitectura de Computadores [ Índice ]  4.1 Sistemas de almacenamiento  4.2 Codificación, compresión e integridad  4.3 Jerarquía de memoria  4.4 Manejo de errores y fiabilidad  4.5 Organización de la memoria principal  4.6 Memorias caché  4.7 Memoria virtual

4 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 4 Arquitectura de Computadores Características Localización Capacidad Unidad de transferencia Método de Acceso Rendimiento Tipo Físico Características Físicas Organización

5 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 5 Arquitectura de Computadores Localización CPU Interna Externa

6 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 6 Arquitectura de Computadores Capacidad Tamaño de la palabra –La unidad > de organización de la memoria Número de palabras o bytes

7 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 7 Arquitectura de Computadores Unidad de Transferencia Interna - Normalmente gobernada por un bus ancho de datos. Externa –Los datos se transfieren normalmente en bloques, que son unidades mucho más grandes que las palabras. Unidad Direccionable –La unidad más pequeña que puede ser accesada –Palabras o en algunos casos Bytes –Bloques en discos

8 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 8 Arquitectura de Computadores Métodos de Acceso Secuencial –Iniciar al prinicipio y leer en orden –El tiempo de acceso depende de la localización de los datos y de dónde se localizaban previamente. Ejemplo: Cinta Directo –Bloques individuales, tienen direcciones únicas –El acceso se hace mediante un acceso directo a una vecinidad dada –El tiempo de acceso es variable

9 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 9 Arquitectura de Computadores Métodos de Acceso (2) Random –Direcciones individuales identifican posiciones exactas. –El tiempo de acceso es independiente de la posición o acceso previo. –Ejemplo: RAM Asociativa –Los datos se localizan por una comparación con los contenidos de una porción del almacenamiento –El tiempo de acceso es independiente de la posición o acceso previo. Ejemplo: Memoria caché

10 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 10 Arquitectura de Computadores Jerarquía de Memoria Registros –Dentro del CPU Memoria interna o principal –Puede incluir uno o más niveles de caché. –“RAM” Memoria Externa –Almacenamiento de respaldo

11 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 11 Arquitectura de Computadores Rendimiento Tiempo de Acceso –El tiempo transcurrido entre presentar la dirección y obtener el dato Tiempo del ciclo de memoria –El tiempo puede ser requerido por la memoria para “recuperar” antes del siguiente acceso –El tiempo del ciclo es acceso + recuperación Tasa de transferencia –Velocidad a la cual los datos pueden ser movidos

12 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 12 Arquitectura de Computadores Tipos Físicos Semiconductores –RAM, ROM Magnético –Disco y cinta Óptico –CD y DVD

13 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 13 Arquitectura de Computadores Organización Arreglo físico de los bits en palabras No siempre es obvio –Ejemplo. Intercalado

14 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 14 Arquitectura de Computadores Consideraciones ¿Qué tanto? –Capacidad ¿Qué tan rápido? –El tiempo es dinero ¿Qué tan caro ? –¿Cuánto estamos dispuestos a pagar?

15 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 15 Arquitectura de Computadores Consideraciones ¿Es necesario que absolutamente toda la memoria sea de acceso rápido?

16 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 16 Arquitectura de Computadores Cercanía de referencias Durante el curso de ejecución de un programa, las referencias a memoria tienden a agruparse –Ejemplo. Ciclos –Estudios señalan que un programa está el 90% de su tiempo de ejecución en sólo 10% del código.

17 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 17 Arquitectura de Computadores Lista de Jerarquía Registros Caché de nivel 1 (L1) Caché de nivel 2 (L2) Memoria Principal Caché de disco Disco Óptico Cinta

18 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 18 Arquitectura de Computadores

19 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 19 Arquitectura de Computadores

20 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 20 Arquitectura de Computadores US$ / Gbyte US$ / 0.01 US$ Bits / US$

21 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 21 Arquitectura de Computadores ¿Queremos velocidad? Es posible construir una computadora que use sólo RAM estática Sería muy rápida No necesitaría caché –¿Para qué? Pero, siempre hay peros, sería costosísima

22 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 22 Arquitectura de Computadores Memoria semiconductora RAM (Memoria de acceso aleatorio) –En realidad todas las memorias son de acceso aleatorio –Lectura/Escritura –Volátil –Almacenamiento Temporal –Estática o dinámica

23 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 23 Arquitectura de Computadores RAM Estática (SRAM) Los bits se almacenan como interruptores encendidos o apagados Construcciones más complejas Más grandes por bit Más cara No necesita circuitos de refrescado Más rápida Usualmente es la caché

24 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 24 Arquitectura de Computadores RAM Estática Flip – flop D (latch)

25 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 25 Arquitectura de Computadores RAM Estática Registro de 8 bits

26 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 26 Arquitectura de Computadores RAM 4 x 3

27 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 27 Arquitectura de Computadores RAM Estática

28 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 28 Arquitectura de Computadores RAM Estática Una celda SRAM de un bit necesita 6 transistores

29 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 29 Arquitectura de Computadores Señales de control SRAM

30 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 30 Arquitectura de Computadores RAM Dinámica (DRAM) Los bits se almacenan como carga en capacitores Los condensadores tienden a descargarse Requieren refrescos periódicos para mantener almacenados los datos Construcción sencilla Más pequeña por bit Más econónica Necesita circuitos de refrescado Más lenta Usualmente es la memoria principal

31 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 31 Arquitectura de Computadores RAM Dinámica Una celda DRAM de un bit necesita 1 transistore y 1 condensador (ó 3 transistores)

32 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 32 Arquitectura de Computadores Refrescado Circuito de refrescado incluído en un chip Una técnica –Deshabilitar el chip DRAM mientras se refrescan todas las celdas –Recorre todos los valores de la fila –Lee y escribe de nuevo Lleva tiempo Aparentemente baja el rendimiento

33 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 33 Arquitectura de Computadores SRAM DRAM

34 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 34 Arquitectura de Computadores Señales de control DRAM

35 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 35 Arquitectura de Computadores DRAM típica de 16Mb (4M x 4 )

36 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 36 Arquitectura de Computadores RAM

37 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 37 Arquitectura de Computadores RAM 4K

38 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 38 Arquitectura de Computadores RAM Notebook

39 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 39 Arquitectura de Computadores RAM

40 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 40 Arquitectura de Computadores RAM 64 MB DIMM (Dual Inline Memory Module)

41 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 41 Arquitectura de Computadores Read Only Memory (ROM) Almacenamiento Permanente Microprogramación Subrutinas de librerías Programas del Sistema (BIOS)

42 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 42 Arquitectura de Computadores Tipos de ROM Grabadas durante su fabricación –Muy cara para correr pequeñas rutinas Programable (una vez) –PROM –Requieren equipo especial para programar Programable borrable (EPROM) –Borrable mediante luz ultravioleta Borrable eléctricamente (EEPROM) –Lleva mucho más tiempo escribirla que leerla Memoria Flash –Borra toda la memoria con electricidad

43 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 43 Arquitectura de Computadores Encapsulado

44 [ Memoria ] Präsentat ion Sistemas de almacenamiento D.Mery 44 Arquitectura de Computadores Memorias de semiconductor

45 [ Memoria ] Präsentat ion D.Mery 45 Arquitectura de Computadores Latencia: Lo que tarda una memoria en proporcionar un operando. Sistemas de almacenamiento

46 [ Memoria ] Präsentat ion D.Mery 46 Arquitectura de Computadores Tiempo de ciclo: Tiempo mínimo entre dos requerimientos de memoria. Sistemas de almacenamiento

47 [ Memoria ] Präsentat ion D.Mery 47 Arquitectura de Computadores Ancho de banda: La cantidad de datos que se proporciona por unidad de tiempo. Sistemas de almacenamiento

48 [ Memoria ] Präsentat ion D.Mery 48 Arquitectura de Computadores Lamentablemente, latencia y ancho de banda son en gran medida opuestos. Muchas técnicas para aumentar el ancho de banda lo logran únicamente disminuyendo la latencia. Sistemas de almacenamiento

49 Präsentat ion D.Mery 49 Arquitectura de Computadores [ Índice ]  4.1 Sistemas de almacenamiento  4.2 Codificación, compresión e integridad  4.3 Jerarquía de memoria  4.4 Manejo de errores y fiabilidad  4.5 Organización de la memoria principal  4.6 Memorias caché  4.7 Memoria virtual

50 [ Memoria ] Präsentat ion Codificación D.Mery 50 Arquitectura de Computadores La tecnología electrónica empleada en las memorias permite representar datos mediante elementos que sólo admiten dos estados (biestables). Información binaria, se representa mediante la combinación de elementos que sólo admiten dos estados (0 y 1). Cada elemento de información recibe el nombre de bit (binary digit). Cualquier dato en un computador digital estará representado por un código formado por una secuencia de ceros y unos. Codificar es establecer reglas que definan una correspondencia entre el elemento de información y la secuencia de bits de su código. Los datos pueden ser numéricos o alfabéticos

51 [ Memoria ] Präsentat ion Codificación D.Mery 51 Arquitectura de Computadores Sistemas de codificación A) Directa  existe una correspondencia biunívoca entre un conjunto de símbolos y un conjunto de códigos mediante una tabla. En el código binario con n elementos podemos construir 2 n combinaciones diferentes. 00000 0000 10000 0001 20000 0010 : 2551111 1111

52 [ Memoria ] Präsentat ion Codificación D.Mery 52 Arquitectura de Computadores Sistemas de codificación B) Por campos  el código se divide en varios campos, cada uno de los cuales da una información diferente (ej: BCD con campos de 4 bits c/u). 100001 0000 520101 0010 991001 1001

53 [ Memoria ] Präsentat ion Codificación D.Mery 53 Arquitectura de Computadores Sistemas de codificación C) Por secuencia de códigos  varios códigos consecutivos, el primero indica que se trata de un código especial y de que hay que tener en cuenta lo que viene después (ej: codificación diferencial). Base:4545 +247 +350 +050 - 149

54 [ Memoria ] Präsentat ion Codificación D.Mery 54 Arquitectura de Computadores Códigos numéricos Utilizando n bits para la representación tenemos los siguientes sistemas: a) Decimal (base 10), 10 dígitos diferentes, del 0 al 9, margen de representación: 0  x< 10 n abc,de = ax10 2 +bx10 1 +cx10 0 +dx10 -1 +ex10 -2

55 [ Memoria ] Präsentat ion Codificación D.Mery 55 Arquitectura de Computadores Códigos numéricos b) Binario (base 2), 2 dígitos, 0 y 1 margen de representación: 0  x< 2 n abc,de = ax2 2 +bx2 1 +cx2 0 +dx2 -1 +ex2 -2 c) Octal (base 8), 8 dígitos, del 0 al 7 margen de representación: 0  x< 8 n abc,de = ax8 2 +bx8 1 +cx8 0 +dx8 -1 +ex8 -2 d) Hexadecimal (base 16), 16 dígitos, del 0 al 9, A,B,C,D,E, y F abc,de = ax16 2 +bx16 1 +cx16 0 +dx16 -1 +ex16 -2

56 [ Memoria ] Präsentat ion Codificación D.Mery 56 Arquitectura de Computadores Códigos numéricos Sistema binario-decimal (BCD) Es una codificación por campos, cada campo contiene el código en binario de una cifra decimal (con 4 bits) Ej:53..........0101 0011 Exceso a 3 Cada número se representa con un exceso de 3 unidades Ej: 5 se representa como (5+3).............1000 9 se representa como (9+3).............1100

57 [ Memoria ] Präsentat ion Codificación D.Mery 57 Arquitectura de Computadores Representación de números negativos Existen varias formas de representar números negativos. Todas ellas utilizan el 1 er bit como bit de signo y el resto para el módulo. Es una codificación por campos. El primer bit nos indica que el número es positivo (negativo) si su valor es 0 (1). A) Signo-módulo (SM). El módulo se representa en binario puro. Con n bits se puede representar desde el 0 hasta el 2 n-1 -1 Margen de representación -(2 n-1 -1)  x  2 n-1 -1 Las operaciones de suma y resta son complicadas. Se ha de tratar el signo y el módulo independientemente.

58 [ Memoria ] Präsentat ion Codificación D.Mery 58 Arquitectura de Computadores Representación de números negativos B) Complemento a 1 (C’1). El negativo de un número se obtiene complementando todos sus dígitos, incluyendo el de signo. Las operaciones de suma y resta son más sencillas. Se hacen directamente. Sólo hay que corregir el resultado de la suma de 2 números si existe acarreo. En ese caso se se suma al LSB.

59 [ Memoria ] Präsentat ion Codificación D.Mery 59 Arquitectura de Computadores Representación de números negativos C) Complemento a 2 (C’2). Se hace el complemento a 1 del número positivo y se le suma 1. Las operaciones de suma y resta se hacen directamente. El acarreo, si existe, se pierde.

60 [ Memoria ] Präsentat ion Codificación D.Mery 60 Arquitectura de Computadores Representación de números reales Incluyen los números negativos y fraccionarios. Coma fija  la posición de la coma es fija, lo que implica un número fijo de dígitos para la parte entera y otro número fijo para la parte fraccionaria. El MSB es el de signo. Coma flotante  basada en la notación científica, vale tanto para cantidades muy grandes como para cantidades muy pequeñas. El número se expresa formado por dos partes: mantisa y exponente. La posición de la coma depende del valor del exponente: n =m 2 e. Se trata de un sistema de codificación por campos, el MSB de la mantisa contiene el signo.

61 [ Memoria ] Präsentat ion Codificación D.Mery 61 Arquitectura de Computadores Representación de datos alfanuméricos Características de los códigos alfanuméricos: 1. Juego de caracteres Letras del alfabeto Dígitos numéricos Signos de puntuación Operaciones aritméticas Caracteres de control 2. Longitud entre 6 y 16 bits 3. Sistema de codificación directo Ejemplos de códigos: FIELDATA (6 bits), ASCII (7 bits), EBCIC, ASCII extendido (8 bits), UNICODE (16 bits)

62 [ Memoria ] Präsentat ion Codificación D.Mery 62 Arquitectura de Computadores Representación de datos alfanuméricos Fieldata: 6 bits, 64 caracteres (26 letras mayúsculas, 10 cifras numéricas, 28 caracteres especiales)

63 [ Memoria ] Präsentat ion Codificación D.Mery 63 Arquitectura de Computadores ASCII (7 bits) 128 combinaciones: 64 para mayúsculas y cifras 32 códigos de control 32 para minúsculas y signos especiales No existe á,é,í, ñ, etc.!!

64 [ Memoria ] Präsentat ion Codificación D.Mery 64 Arquitectura de Computadores ASCII extendido (8 bits) 256 combinaciones se usa en los PC’s y minicomputadores Si existe á,é,í, ñ, etc.!!

65 [ Memoria ] Präsentat ion Codificación D.Mery 65 Arquitectura de Computadores 8 bits, 256 combinaciones. Se usa en los computadores grandes y arquitecturas IBM EBCDIC Extended Binary Coded Decimal Interchange Code

66 [ Memoria ] Präsentat ion Codificación D.Mery 66 Arquitectura de Computadores UNICODE: código de 16 bits

67 [ Memoria ] Präsentat ion D.Mery 67 Arquitectura de Computadores Compresión El almacenamiento de grandes cantidades de datos en soporte magnético u óptico tiene un coste elevado. La transferencia de información entre computadores tiene un coste proporcional a la cantidad de información transmitida. Compresión: reducción del tamaño de los datos para que ocupen menos espacio. Compresión

68 [ Memoria ] Präsentat ion D.Mery 68 Arquitectura de Computadores Compresión Tipos de compresión Sin pérdida: se puede recuperar al completo toda la información. Con pérdida: se reduce el espacio ocupado pero la información descartada es irrecuperable.

69 [ Memoria ] Präsentat ion D.Mery 69 Arquitectura de Computadores Compresión Técnicas de compresión sin pérdida 1. Codificación diferencial 2. Codificación estadística (según frecuencia de uso) 3. Método basado en diccionarios

70 [ Memoria ] Präsentat ion D.Mery 70 Arquitectura de Computadores Compresión 1.Codificación diferencial Se usa para almacenar secuencias de datos cuando la diferencia entre datos consecutivos es pequeña. d 0, d 1, d 2, d 3,..... d n se guarda como d 0, d 1 - d 0, d 2 -d 1..... d n- d n-1 Cada dato se guarda con p bits cada diferencia se guarda con q bits (con q < p) La secuencia de datos ocupa menos que la original Para conocer el valor del dato i-ésimo hay que hacer i sumas Si se produce un error, éste se propaga ¿Ventajas y desventajas?

71 [ Memoria ] Präsentat ion D.Mery 71 Arquitectura de Computadores Compresión 2. Codificación estadística Se usa cuando se conocen las frecuencias de los datos almacenados. Se asignan códigos cortos a los datos que aparecen más frecuentemente y códigos largos a los que apenas aparecen.

72 [ Memoria ] Präsentat ion D.Mery 72 Arquitectura de Computadores Compresión 3. Codificación basada en diccionarios Los códigos tienen una longitud fija y cada código representa una secuencia concreta de datos presentes en la información original Técnicas1. Codificación run-length (RLE) 2. Algoritmo LZW

73 [ Memoria ] Präsentat ion D.Mery 73 Arquitectura de Computadores Compresión 1. RLE(run length) Se emplea cuando en la información hay secuencias de datos todos iguales (imágenes, gráficos...) Una secuencia de n bytes con el mismo contenido se codifica mediante dos valores: longitud de la cadena (n) y contenido de un dato (v)

74 [ Memoria ] Präsentat ion D.Mery 74 Arquitectura de Computadores Compresión 2. LZW Se usan códigos extendidos de mayor longitud que los originales. i) Se reserva un código por cada dato individual original ii) Se usan códigos adicionales para codificar secuencias de datos frecuentes. La primera vez que aparece una secuencia de datos, se almacena la secuencia junto con el código asignado. Las siguientes veces que aparece la secuencia se escribe sólo su código

75 [ Memoria ] Präsentat ion D.Mery 75 Arquitectura de Computadores Compresión Ejemplo de compresión con pérdida: jpeg, mpeg, mp3. Ejemplo de compresión sin pérdida: zip, rar, arj, gz. ¿Cuándo se puede codificar con/sin pérdida?

76 [ Memoria ] Präsentat ion D.Mery 76 Arquitectura de Computadores Compresión Ejemplo de fotografías: Original 512 x 512 (256 KB)

77 [ Memoria ] Präsentat ion D.Mery 77 Arquitectura de Computadores Compresión Ejemplo de fotografías: jpeg 512 x 512 (101 KB)

78 [ Memoria ] Präsentat ion D.Mery 78 Arquitectura de Computadores Compresión Ejemplo de fotografías: jpeg 512 x 512 (57 KB)

79 [ Memoria ] Präsentat ion D.Mery 79 Arquitectura de Computadores Compresión Ejemplo de fotografías: jpeg 512 x 512 (37 KB)

80 [ Memoria ] Präsentat ion D.Mery 80 Arquitectura de Computadores Compresión Ejemplo de fotografías: jpeg 512 x 512 (25 KB)

81 [ Memoria ] Präsentat ion D.Mery 81 Arquitectura de Computadores Compresión Ejemplo de fotografías: jpeg 512 x 512 (16 KB)

82 Präsentat ion D.Mery 82 Arquitectura de Computadores [ Índice ]  4.1 Sistemas de almacenamiento  4.2 Codificación, compresión e integridad  4.3 Jerarquía de memoria  4.4 Manejo de errores y fiabilidad  4.5 Organización de la memoria principal  4.6 Memorias caché  4.7 Memoria virtual

83 [ Memoria ] Präsentat ion Jerarquía de memoria D.Mery 83 Arquitectura de Computadores Registros –Dentro del CPU Memoria interna o principal –Puede incluir uno o más niveles de caché. –“RAM” Memoria Externa –Almacenamiento de respaldo

84 [ Memoria ] Präsentat ion D.Mery 84 Arquitectura de Computadores Lista de Jerarquía Registros Caché de nivel 1 (L1) Caché de nivel 2 (L2) Memoria Principal Caché de disco Disco Óptico Cinta Jerarquía de memoria

85 [ Memoria ] Präsentat ion D.Mery 85 Arquitectura de Computadores Jerarquía de memoria

86 [ Memoria ] Präsentat ion D.Mery 86 Arquitectura de Computadores Jerarquía de memoria

87 [ Memoria ] Präsentat ion D.Mery 87 Arquitectura de Computadores US$ / Gbyte US$ / 0.01 US$ Bits / US$ Jerarquía de memoria

88 Präsentat ion D.Mery 88 Arquitectura de Computadores [ Índice ]  4.1 Sistemas de almacenamiento  4.2 Codificación, compresión e integridad  4.3 Jerarquía de memoria  4.4 Manejo de errores y fiabilidad  4.5 Organización de la memoria principal  4.6 Memorias caché  4.7 Memoria virtual

89 [ Memoria ] Präsentat ion D.Mery 89 Arquitectura de Computadores La probabilidad de error en una memoria es alta. Las consecuencias de esto son serias: error en los datos y/o error en los programas. Manejo de errores

90 [ Memoria ] Präsentat ion D.Mery 90 Arquitectura de Computadores Existen dos tipos de errores: Error permanente: defecto físico de tal forma que la(s) celda(s) de memoria afectadas no pueden almacenar datos de manera segura (se queda en 0 ó en 1, o su valor no es estable y oscila entre 0 y 1). Manejo de errores

91 [ Memoria ] Präsentat ion D.Mery 91 Arquitectura de Computadores Existen dos tipos de errores (cont.): Error transitorio: evento aleatorio no destructivo que altera el contenido de una o más celdas de almacenamiento sin dañar a la memoria (problemas con la fuente de alimentación, partículas alfa, etc.). Manejo de errores

92 [ Memoria ] Präsentat ion D.Mery 92 Arquitectura de Computadores Es necesario entonces contar con alguna forma de detectar y corregir errores en la memoria. Por esta razón se desarrollaron los EDAC: Error detection and correction codes Manejo de errores

93 [ Memoria ] Präsentat ion D.Mery 93 Arquitectura de Computadores Detección de errores. Se puede determinar que uno o más bits de una dato han sido alterados… pero no se sabe cuáles. Corrección de errores. Se sabe cuáles son los bits erróneos, i.e., se pueden cambiar y así corregir el error. Manejo de errores Detección vs. Corrección

94 [ Memoria ] Präsentat ion D.Mery 94 Arquitectura de Computadores Manejo de errores La detección (y corrección) de errores se basa en añadir información redundante: informaciónparidad M N K Se adhieren con el objeto de detectar o corregir errores

95 [ Memoria ] Präsentat ion D.Mery 95 Arquitectura de Computadores Manejo de errores La detección de errores se basa en añadir información redundante: Ejemplo: –Bit de paridad: En el sistema de paridad par/impar se añade un bit a la información, de forma que el número de 1’s totales ha de ser par/impar. Dato: 0010 0011 Bit de paridad (par): 1 Se almacena entonces: 0010 0011 1 Cuando se lee el dato (primeros 8 bits) se calcula el bit de paridad y se compara con el bit de paridad ya almacenado. Si son iguales se asume que no hay error, si no son iguales se detecta un error. ¿Es 100% seguro este método?

96 [ Memoria ] Präsentat ion D.Mery 96 Arquitectura de Computadores Manejo de errores Para detectar fallos dobles y corregir fallos simples, se usa habitualmente la técnica de Hamming (1950) Ejemplo: Código de Hamming para la palabra de 4 bits: 0111

97 [ Memoria ] Präsentat ion D.Mery 97 Arquitectura de Computadores Manejo de errores Ejemplo: Código de Hamming para la palabra de 4 bits: 0111 1. Se usa el diagrama de Venn y se coloca en cada intersección un bit. 0 1 1 1

98 [ Memoria ] Präsentat ion D.Mery 98 Arquitectura de Computadores Manejo de errores Ejemplo: Código de Hamming para la palabra de 4 bits: 0111 2. Las partes vacías se rellenan forzando que cada círculo tenga un número par de unos. 0 1 1 1 00 1

99 [ Memoria ] Präsentat ion D.Mery 99 Arquitectura de Computadores Manejo de errores Ejemplo: Código de Hamming para la palabra de 4 bits: 0111 3. El código de Hamming es entonces 001, se guarda: 0111 001 0 1 1 1 00 1

100 [ Memoria ] Präsentat ion D.Mery 100 Arquitectura de Computadores Manejo de errores Ejemplo: Código de Hamming para la palabra de 4 bits: 0111 ¿Qué pasa si se lee 0101 001? 0 1 1 0 00 1

101 [ Memoria ] Präsentat ion D.Mery 101 Arquitectura de Computadores Manejo de errores Ejemplo: Código de Hamming para la palabra de 4 bits: 0111 ¿Qué pasa si se lee 0101 001? ¿Está bien? 0 1 1 0 00 1 ¿Qué círculo no es “par”?

102 [ Memoria ] Präsentat ion D.Mery 102 Arquitectura de Computadores Manejo de errores Ejemplo: Código de Hamming para la palabra de 4 bits: 0111 ¿Qué pasa si se lee 0101 001? ¿Cómo se corrige el dato? 0 1 1 0 00 1 Círculo “impar”

103 [ Memoria ] Präsentat ion D.Mery 103 Arquitectura de Computadores Manejo de errores Ejemplo: Código de Hamming para la palabra de 4 bits: 0111 ¿Qué pasa si se lee 0101 001? ¿Cómo se corrige el dato? 0 1 1 0 00 1 Círculo “impar” Culpable, hay que modificarlo.

104 [ Memoria ] Präsentat ion D.Mery 104 Arquitectura de Computadores Manejo de errores Ejemplo: Código de Hamming para la palabra de 4 bits: 0111 ¿Qué pasa si se lee 0101 001? ¿Cómo se corrige el dato? 0 1 1 1 00 1 Círculo “impar” Bit modificado.

105 [ Memoria ] Präsentat ion D.Mery 105 Arquitectura de Computadores Manejo de errores Ejemplo: Código de Hamming para la palabra de 4 bits: 0111 ¿Qué pasa si se lee 0101 001? ¿Cómo se corrige el dato? 0 1 1 1 00 1 Círculo “impar” Bit modificado. El dato es 0111.

106 [ Memoria ] Präsentat ion D.Mery 106 Arquitectura de Computadores Manejo de errores La detección (y corrección) de errores se basa en añadir información redundante: informaciónparidad M N K Se adhieren con el objeto de detectar o corregir errores

107 [ Memoria ] Präsentat ion D.Mery 107 Arquitectura de Computadores Estrategia para la corrección de errores. Manejo de errores

108 [ Memoria ] Präsentat ion D.Mery 108 Arquitectura de Computadores Al almacenar un dato D de M bits se utiliza una función f(D) que calcula un código de K bits. Se almacena una palabra de M+K bits. Al leer la palabra, se extrae D’, los M primeros bits, y se calcula el código f(D’). Se compara el código calculado con el almacenado. Se produce uno de tres resultados: 1.Son iguales, i.e., no hay error. 2.Se detecta un error y a partir del código se puede corregir. 3.No es posible corregir el error, se emite una señal de error. Manejo de errores Estrategia para la corrección de errores.

109 [ Memoria ] Präsentat ion D.Mery 109 Arquitectura de Computadores 121100M8 111011M7 101010M6 091001M5 081000C8 070111M4 060110M3 050101M2 040100C4 030011M1 020010C2 010001C1 000000NO HAY ERROR Manejo de errores Posiciones de los bits de datos y de comprobación.

110 [ Memoria ] Präsentat ion D.Mery 110 Arquitectura de Computadores C1 = M1 + M2 + M4 + M5 + M7 C2 = M1 + M3 + M4 + M6 + M7 C4 = M2 + M3 + M4 + M8 C8 = M5 + M6 + M7 + M8 Manejo de errores Cómo se calcula C1, C2, C4, y C8. 1.Calcular C1, C2, C4, C8 para 0011 1001 2.Calcular C1, C2, C4, C8 para 0011 1101 ¿Qué sucede?

111 Präsentat ion D.Mery 111 Arquitectura de Computadores [ Índice ]  4.1 Sistemas de almacenamiento  4.2 Codificación, compresión e integridad  4.3 Jerarquía de memoria  4.4 Manejo de errores y fiabilidad  4.5 Organización de la memoria principal  4.6 Memorias caché  4.7 Memoria virtual

112 [ Memoria ] Präsentat ion Organización D.Mery 112 Arquitectura de Computadores Las memorias consisten en varias celdas, cada una de las cuales puede almacenar un elemento de información. Cada celda tiene una dirección asociada, con los cuales los programas pueden referirse a ella. Todas las celdas de una memoria contienen el mismo número de bits. Históricamente ha aumentado el número de bits/celda: 1, 8, 12, 16, 18, 24, 27, 32, 36, 48, 60, 64 bits / celda.

113 [ Memoria ] Präsentat ion Organización D.Mery 113 Arquitectura de Computadores Tres formas de organizar una memoria de 96 bits

114 [ Memoria ] Präsentat ion Organización D.Mery 114 Arquitectura de Computadores Memoria big endian Memoria little endian

115 [ Memoria ] Präsentat ion Organización D.Mery 115 Arquitectura de Computadores Ejemplo: a) Registro en big endian, b) registro en little endian, c) resultado de transferir el registro de un big a un little endian, d) intercambio de los bits de c)

116 [ Memoria ] Präsentat ion Organización D.Mery 116 Arquitectura de Computadores Organización 2D:

117 [ Memoria ] Präsentat ion Organización D.Mery 117 Arquitectura de Computadores Organización 2D:

118 [ Memoria ] Präsentat ion Organización D.Mery 118 Arquitectura de Computadores Organización 3D:

119 [ Memoria ] Präsentat ion Organización D.Mery 119 Arquitectura de Computadores Organización 3D:

120 [ Memoria ] Präsentat ion Organización D.Mery 120 Arquitectura de Computadores

121 [ Memoria ] Präsentat ion Organización D.Mery 121 Arquitectura de Computadores

122 [ Memoria ] Präsentat ion Organización D.Mery 122 Arquitectura de Computadores En la organización también se decide en qué direcciones se debe colocar la RAM y la ROM, y como se decodifican: 8000-8FFFRAM-8 : : 3000-3FFFRAM-3 2000-2FFFRAM-2 1000-1FFFRAM-1 0000-0FFFROM

123 Präsentat ion D.Mery 123 Arquitectura de Computadores [ Índice ]  4.1 Sistemas de almacenamiento  4.2 Codificación, compresión e integridad  4.3 Jerarquía de memoria  4.4 Manejo de errores y fiabilidad  4.5 Organización de la memoria principal  4.6 Memorias caché  4.7 Memoria virtual

124 [ Memoria ] Präsentat ion Caché D.Mery 124 Arquitectura de Computadores A medida que aumenta la velocidad de las CPU es más difícil crear un sistema de memoria capaz de proporcionar datos en uno o dos ciclos de reloj.

125 [ Memoria ] Präsentat ion Caché D.Mery 125 Arquitectura de Computadores

126 [ Memoria ] Präsentat ion Caché D.Mery 126 Arquitectura de Computadores Para mejorar el desempeño, se desarrolló la memoria caché. Una memoria caché es una memoria pequeña y rápida ubicada cerca de la CPU, en ella se almacena el código y los datos direccionados frecuentemente. Su desarrollo se basa en el principio de referencias localizadas, es decir, se usa más frecuentemente sólo una porción de la memoria. [Caché: del francés cacher, que significa guardar o esconder.]

127 [ Memoria ] Präsentat ion Caché D.Mery 127 Arquitectura de Computadores 1ns 5 ns 100 ns 5 ms 1KB 256 KB 1 GB 80 GB

128 [ Memoria ] Präsentat ion Caché D.Mery 128 Arquitectura de Computadores

129 [ Memoria ] Präsentat ion Caché D.Mery 129 Arquitectura de Computadores Caché: – Mantiene las palabras (datos o instrucciones) de memoria de mayor uso – Reduce tiempo de acceso promedio. Controlador “adivina” aplicando localidad Características: Alta velocidad Capacidad pequeña Físicamente: SRAM (varias veces más rápidas que DRAM)

130 [ Memoria ] Präsentat ion Caché D.Mery 130 Arquitectura de Computadores Idea de una memoria Caché: 1.Cuando la CPU lee una posición de memoria, primero verifica si esta memoria se encuentra en la memoria caché. 2.Si se encuentra en la caché la CPU la lee directamente de ella. 3.Si no está en la memoria caché la CPU la busca en la memoria principal, y la copia en la caché para futuras lecturas.

131 [ Memoria ] Präsentat ion Caché D.Mery 131 Arquitectura de Computadores Consideraciones de una memoria Caché: 1.¿Qué hacer cuando se escribe una posición de memoria que está en la caché? ¿Se debe escribir instantáneamente en la memoria principal? 2.¿Qué pasa si la caché está llena y es necesario traer un nuevo dato de la memoria principal? ¿se debe borrar algún dato de la caché? ¿cuál? ¿por qué?

132 [ Memoria ] Präsentat ion Caché D.Mery 132 Arquitectura de Computadores Elementos de diseño: – Tamaño – Función de correspondencia – Algoritmo de sustitución – Política de escritura – Tamaño de línea – Número de cachés

133 [ Memoria ] Präsentat ion Caché D.Mery 133 Arquitectura de Computadores 1. Tamaño: Solución de compromiso: – Tamaño pequeño  rapidez,  costo,  direccionamiento – Tamaño grande  accesos a main memory  tiempo de acceso medio Otros factores – Superficie disponible en el chip o tarjeta – Algunos estudios: 1K-512K

134 [ Memoria ] Präsentat ion Caché D.Mery 134 Arquitectura de Computadores NºEtiquetaBloque 0 1 2 3 : C-1 K palabras DirDatos 0 1 2 3 : 2 n -1 Bloque: K palabras Caché: Memoria principal: C  K

135 [ Memoria ] Präsentat ion Caché D.Mery 135 Arquitectura de Computadores NºEtiquetaBloque 0 1 2 3 : C-1 K palabras DirDatos 0 1 2 3 : 2 n -1 Bloque: K palabras Caché: Memoria principal: C  K

136 [ Memoria ] Präsentat ion Caché D.Mery 136 Arquitectura de Computadores 2. Función de correspondencia: Algoritmo que hace corresponder bloques de memoria con líneas de caché. Existen tres formas de establecer esta correspondencia: directa, asociativa y asociativa por conjuntos.

137 [ Memoria ] Präsentat ion Caché D.Mery 137 Arquitectura de Computadores Correspondencia directa: Consiste en hacer corresponder cada bloque de memoria principal a sólo una línea posible de caché.

138 [ Memoria ] Präsentat ion Caché D.Mery 138 Arquitectura de Computadores Correspondencia directa:

139 [ Memoria ] Präsentat ion Caché D.Mery 139 Arquitectura de Computadores Correspondencia directa:

140 [ Memoria ] Präsentat ion Caché D.Mery 140 Arquitectura de Computadores Correspondencia directa: Línea cachéBloques asignados 00, m, 2m, 3m…2 s -m 11,m+1, 2m+1…2 s -m+1 m-1m-1, 2m-1,3m-1…2 s -1

141 [ Memoria ] Präsentat ion Caché D.Mery 141 Arquitectura de Computadores Correspondencia directa: Consiste en hacer corresponder cada bloque de memoria principal a sólo una línea posible de caché. Es fácil de implementar, sin embargo, hay una posición concreta de caché para cada bloque dado! Si un programa hace referencias repetidas veces a palabras de dos bloques diferentes asignados en la misma línea se estarían intercambiando continuamente en la caché, y la tasa de aciertos sería baja.

142 [ Memoria ] Präsentat ion Caché D.Mery 142 Arquitectura de Computadores Correspondencia asociativa: Permite que cada bloque de memoria principal pueda cargarse en cualquier línea de la caché. La etiqueta identifica unívocamente un bloque de la memoria principal. Para determinar si un bloque está en la caché se debe examinar todas las etiquetas de las líneas para buscar coincidencia. Esta búsqueda se hace en paralelo por hardware.

143 [ Memoria ] Präsentat ion Caché D.Mery 143 Arquitectura de Computadores Correspondencia asociativa:

144 [ Memoria ] Präsentat ion Caché D.Mery 144 Arquitectura de Computadores Correspondencia asociativa: La principal desventaja es la compleja circuitería necesaria para examinar en paralelo las etiquetas de todas las líneas de la caché.

145 [ Memoria ] Präsentat ion Caché D.Mery 145 Arquitectura de Computadores Correspondencia asociativa por conjuntos: Es una solución que agrupa las ventajas de los métodos anteriores. La caché se divide en v conjuntos de k líneas.

146 [ Memoria ] Präsentat ion Caché D.Mery 146 Arquitectura de Computadores Correspondencia asociativa por conjuntos:

147 [ Memoria ] Präsentat ion Caché D.Mery 147 Arquitectura de Computadores 3. Algoritmos de reemplazo: Para el esquema directo no hay elección ya que cada bloque de memoria sólo puede estar en un sitio. Para los otros esquemas: 1.LRU (least recently used) 2.FIFO (first in first out) 3.LFU (least frequently used) 4.Random

148 [ Memoria ] Präsentat ion Caché D.Mery 148 Arquitectura de Computadores LRU (least recently used: menos recientemente usada): Probablemente los bloques más usados seguirán usándose en el futuro cercano. Probablemente los bloques no muy usados no se usarán mucho en el futuro cercano. Con esta política se desaloja de la caché el bloque que tiene más tiempo sin usarse. Implementación por hardware: cada vez que se usa un bloque se debe almacenar alguna referencia al tiempo. Se sustituye aquel bloque que tenga la referencia más antigua.

149 [ Memoria ] Präsentat ion Caché D.Mery 149 Arquitectura de Computadores FIFO (first input first output): Se hace una lista de la secuencia de la entrada de los bloques a la memoria caché. Se desaloja la más antigua. Warning: no se desaloja aquella cuyo uso sea el más antiguo (eso es LRU), se desaloja aquella que su ingreso a la caché es el más antiguo. Es decir se sustituye aquel bloque que ha estado más tiempo en la caché. Implementación: se usa una lista circular con una manecilla que indica el más antiguo.

150 [ Memoria ] Präsentat ion Caché D.Mery 150 Arquitectura de Computadores LFU (least frecuently used: utilizado menos frecuentemente): Se sustituye aquel bloque que ha experimentado menos referencias. Implementación: cada bloque posee un contador, el que se incrementa cada vez que el bloque ha sido referenciado. Se sustituye aquel que tenga su contador más bajo.

151 [ Memoria ] Präsentat ion Caché D.Mery 151 Arquitectura de Computadores Random (aleatorio): Se sustituye un bloque cualquiera según una función aleatoria. Estudios realizados mediante simulación han mostrado que la sustitución aleatoria proporciona un desempeño ligeramente menor a un algoritmo de reemplazo como los anteriores basados en el grado de utilización.

152 [ Memoria ] Präsentat ion Caché D.Mery 152 Arquitectura de Computadores 3. Políticas de escritura Antes de que pueda ser reemplazado un bloque de la caché es necesario comprobar si ha sido alterado en la caché y no en la memoria principal. Si la memoria principal se encuentra actualizada, el bloque puede ser sobre- escrito. En caso contrario habrá que actualizar la memoria principal antes de sobre-escribir el bloque.

153 [ Memoria ] Präsentat ion Caché D.Mery 153 Arquitectura de Computadores Problemas de diseño: Que pasa cuando se escribe en la caché y no se actualiza la memoria? Que lee el dispositivo I/O de la memoria? 1ns 5 ns 100 ns 5 ms 1KB 256 KB 1 GB 80 GB

154 [ Memoria ] Präsentat ion Caché D.Mery 154 Arquitectura de Computadores Cuándo escribir (de la caché a la memoria principal): Hay dos técnicas principales 1.Inmediatamente 2.Post-escritura 3. Políticas de escritura

155 [ Memoria ] Präsentat ion Caché D.Mery 155 Arquitectura de Computadores Escritura inmediata: Todas las operaciones de escritura se hacen tanto en la caché como en la memoria principal inmediatamente. Así se asegura que el contenido de la memoria principal sea siempre válido. Desventaja: se genera un tráfico de sustancial a la memoria principal que puede disminuir el desempeño. Estudios señalan que el porcentaje de referencias a memoria para escritura es del orden del 15%.

156 [ Memoria ] Präsentat ion Caché D.Mery 156 Arquitectura de Computadores Post-escritura: Cada bloque de la caché posee un bit de actualización que se inicializa en ‘0’ cuando se carga un bloque nuevo en la caché. Cada vez que se escriba en el bloque el bit de actualización se pone en ‘1’. Cuando se desee reemplazar el bloque, el bloque se copia a la memoria principal sólo si el bit de actualización es ‘1’. Desventaja: muchas veces hay porciones de la memoria principal que no son válidos. Los módulos de I/O deben acceder a ella a través de la caché.

157 [ Memoria ] Präsentat ion Caché D.Mery 157 Arquitectura de Computadores 4. Número de caches Incialmente, se usaba sólo una caché externa (off-chip) a la CPU. Luego se desarrollaron caches on-chip. Se hicieron estudios de performance para determinar si una sola cache es suficiente. El resultado de estas investigaciones indican que el desempeño aumenta si se emplean distintos niveles de caché. Actualmente se tienen sistemas de con caches on-chip y off-chip.

158 [ Memoria ] Präsentat ion Caché D.Mery 158 Arquitectura de Computadores 4. Número de caches Además, existe una clasificación de cachés unificadas y otras partidas: Las unificadas tienen instrucciones y datos. Las partidas tienen una caché dedicada a instrucciones y otra dedicada a datos. Las cachés ‘partidas’ tiene la ventaja de la paralelización ya que mientras se lee una instrucción se puede estar leyendo un dato.

159 [ Memoria ] Präsentat ion Caché D.Mery 159 Arquitectura de Computadores 4. Número de caches

160 [ Memoria ] Präsentat ion Caché D.Mery 160 Arquitectura de Computadores CPU Instruction Cache Data Cache L2 Cache L3 Cache Main Memory L1 CACHE

161 [ Memoria ] Präsentat ion Caché D.Mery 161 Arquitectura de Computadores 5. Tamaño del bloque Cuando se carga una palabra en la caché, se carga también palabras contiguas con la idea de que posteriormente van a ser también referenciadas.

162 [ Memoria ] Präsentat ion Caché D.Mery 162 Arquitectura de Computadores 5. Tamaño del bloque ¿Qué tan grande debe ser el bloque? ¿cuántas palabras contiguas deben cargarse también en la caché? Ni pocas, ni muchas!! La tasa de aciertos aumenta a medida que aumenta el tamaño del bloque, pero empieza a disminiuir si aumenta demasiado… esto porque las palabras ya dejan de estar tan contiguas y nunca o casi nunca son referenciadas. Estudios señalan que lo mejor está entre 4 y 8 palabras.

163 [ Memoria ] Präsentat ion Caché D.Mery 163 Arquitectura de Computadores L2 Cache is ultra-fast memory that buffers information being transferred between the processor and the slower RAM in an attempt to speed these types of transfers. L3 Cache is ultra-fast memory that buffers information being transferred between the processor and the slower RAM in an attempt to speed these types of transfers. Integrated Level 3 cache provides a faster path to large data sets stored in cache on the processor. This results in reduced average memory latency and increased throughput for larger High-end Desktop workloads.

164 [ Memoria ] Präsentat ion Caché D.Mery 164 Arquitectura de Computadores Trace caches are essentially caches that store instructions either after they have been decoded, or as they are retired. This allows the instruction fetch unit of a processor to fetch several basic blocks, without having to worry about branches in the execution flow. Trace lines are stored in the trace cache based on the program counter of the first instruction in the trace and a set of branch predictions. This allows for storing different trace paths that start on the same address. In the instruction fetch stage of a pipeline, the current program counter along with a set of branch predictions is checked in the trace cache for a hit. If there is a hit, a trace line is supplied to fetch which does not have to go to a regular cache or to memory for these instructions. The trace cache continues to feed the fetch unit until the trace line ends or until there is a misprediction in the pipeline. If there is a miss, a new trace starts to be build. Because traces also contain different branch paths, a good multiple branch predictor is essential to the success rate of trace caches.

165 [ Memoria ] Präsentat ion Caché D.Mery 165 Arquitectura de Computadores

166 [ Memoria ] Präsentat ion Caché D.Mery 166 Arquitectura de Computadores

167 [ Memoria ] Präsentat ion Caché D.Mery 167 Arquitectura de Computadores

168 [ Memoria ] Präsentat ion Caché D.Mery 168 Arquitectura de Computadores

169 [ Memoria ] Präsentat ion Caché D.Mery 169 Arquitectura de Computadores

170 [ Memoria ] Präsentat ion Caché D.Mery 170 Arquitectura de Computadores

171 Präsentat ion D.Mery 171 Arquitectura de Computadores [ Índice ]  4.1 Sistemas de almacenamiento  4.2 Codificación, compresión e integridad  4.3 Jerarquía de memoria  4.4 Manejo de errores y fiabilidad  4.5 Organización de la memoria principal  4.6 Memorias caché  4.7 Memoria virtual

172 [ Memoria ] Präsentat ion Memoria virtual D.Mery 172 Arquitectura de Computadores El sistema operativo mantiene en la memoria principal las partes del programa que se están usando en ese momento y el resto lo deja en el disco.  Para un solo programa o para varios.

173 [ Memoria ] Präsentat ion Memoria virtual D.Mery 173 Arquitectura de Computadores

174 [ Memoria ] Präsentat ion Memoria virtual D.Mery 174 Arquitectura de Computadores 14-16K1 12-14K0 10-12KX 8-10KX 6-8KX 4-6KX 2-4K3 0-2K2 36-8K 24-6K 12-4K 00-2K Memoria física (8K) Memoria Virtual (16K)

175 [ Memoria ] Präsentat ion Memoria virtual D.Mery 175 Arquitectura de Computadores 14-16K1 12-14K0 10-12KX 8-10KX 6-8KX 4-6KX 2-4K3 0-2K2 Ejemplo: se desea leer el contenido de la memoria 0 36-8K 24-6K 12-4K 00-2K Memoria física (8K) Memoria Virtual (16K)

176 [ Memoria ] Präsentat ion Memoria virtual D.Mery 176 Arquitectura de Computadores 14-16K1 12-14K0 10-12KX 8-10KX 6-8KX 4-6KX 2-4K3 0-2K2 Ejemplo: se desea leer el contenido de la memoria 0 La MMU recibe 0 y se da cuenta de que debe leer del marco de página 2, o sea posiciones 4 a 6K, así es que pone la dirección 4096 en el bus de direcciones. 36-8K 24-6K 12-4K 00-2K Memoria física (8K) Memoria Virtual (16K)

177 [ Memoria ] Präsentat ion Memoria virtual D.Mery 177 Arquitectura de Computadores 14-16K1 12-14K0 10-12KX 8-10KX 6-8KX 4-6KX 2-4K3 0-2K2 Ejemplo: se desea leer el contenido de la memoria 2050 36-8K 24-6K 12-4K 00-2K Memoria Virtual (16K) Memoria física (8K)

178 [ Memoria ] Präsentat ion Memoria virtual D.Mery 178 Arquitectura de Computadores 14-16K1 12-14K0 10-12KX 8-10KX 6-8KX 4-6KX 2-4K3 0-2K2 2050 está en la porción 2-4K, es decir en el marco de página 3 de la memoria física (6-8K). La MMU pone en el bus de direcciones la dirección 6146. 36-8K 24-6K 12-4K 00-2K Memoria física (8K) Ejemplo: se desea leer el contenido de la memoria 2050 Memoria Virtual (16K)

179 [ Memoria ] Präsentat ion Memoria virtual D.Mery 179 Arquitectura de Computadores 14-16K1 12-14K0 10-12KX 8-10KX 6-8KX 4-6KX 2-4K3 0-2K2 Ejemplo: se desea leer el contenido de la memoria 4100 36-8K 24-6K 12-4K 00-2K Memoria Virtual (16K) Memoria física (8K)

180 [ Memoria ] Präsentat ion Memoria virtual D.Mery 180 Arquitectura de Computadores 14-16K1 12-14K0 10-12KX 8-10KX 6-8KX 4-6KX 2-4K3 0-2K2 Esta memoria no se encuentra en la memoria física  ocurre un ‘fallo de página’. 36-8K 24-6K 12-4K 00-2K Memoria física (8K) Memoria Virtual (16K) Ejemplo: se desea leer el contenido de la memoria 4100

181 [ Memoria ] Präsentat ion Memoria virtual D.Mery 181 Arquitectura de Computadores 14-16KX 12-14K0 10-12KX 8-10KX 6-8KX 4-6K1 2-4K3 0-2K2 Es necesario reemplazar algún marco y poner el marco requerido en la memoria principal. Por ejemplo se reemplaza el marco 14-16K por el 4-6K. Ahora se lee la memoria 2052 36-8K 24-6K 12-4K 00-2K Memoria física (8K) Memoria Virtual (16K) Ejemplo: se desea leer el contenido de la memoria 4100

182 [ Memoria ] Präsentat ion Memoria virtual D.Mery 182 Arquitectura de Computadores Memoria Virtual Memoria física Ejemplo: Memoria Virtual: 16 páginas de 4K Dirección de 16 bits Memoria física:8 páginas de 4K Dirección de 15 bits

183 [ Memoria ] Präsentat ion Memoria virtual D.Mery 183 Arquitectura de Computadores Cómo se hace? 1.De la página virtual se establece el número de la página virtual. 2.Del número de página virtual se establece el número de la página física. 3.Se debe leer la dirección correspondiente en la memoria física.

184 [ Memoria ] Präsentat ion Memoria virtual D.Mery 184 Arquitectura de Computadores Cómo se hace? 1.De la página virtual se establece el número de la página virtual. 2.Del número de página virtual se establece el número de la página física. 3.Se debe leer la dirección correspondiente en la memoria física. MMU Dirección virtual Dirección física

185 [ Memoria ] Präsentat ion Memoria virtual D.Mery 185 Arquitectura de Computadores Tabla de página