Está en la página 1de 178

Pontificia Universidad Católica de Chile

Escuela de Ingeniería
Departamento de Ciencia de la Computación

[ Arquitectura de Computadores ]

SISTEMAS DE MEMORIA

IIC 2342
Semestre 2005-2

Domingo Mery

Präsentat
ion

D.Mery 1 Arquitectura de Computadores


[ Índice ]

44.1 Sistemas de almacenamiento (tecnología)


44.2 Codificación, compresión e integridad
44.3 Jerarquía de memoria
44.4 Organización de la memoria principal
44.5 Latencia, tiempo de ciclo, ancho de banda
44.6 Memorias caché
44.7 Memoria virtual
44.8 Manejo de errores y fiabilidad

D.Mery 2 Arquitectura de Computadores


Präsentat
ion
[ Índice ]

44.1 Sistemas de almacenamiento (tecnología)


44.2 Codificación, compresión e integridad
44.3 Jerarquía de memoria
44.4 Organización de la memoria principal
44.5 Latencia, tiempo de ciclo, ancho de banda
44.6 Memorias caché
44.7 Memoria virtual
44.8 Manejo de errores y fiabilidad

D.Mery 3 Arquitectura de Computadores


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

Localización
• CPU
• Interna
• Externa

D.Mery 5 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

Capacidad
• Tamaño de la palabra
– La unidad <<natural>> de organización de
la memoria
• Número de palabras o bytes

D.Mery 6 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

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
D.Mery 7 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

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
D.Mery 8 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

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é

D.Mery 9 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

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

D.Mery 10 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
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
D.Mery 11 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
Tipos Físicos
• Semiconductores
– RAM, ROM
• Magnético
– Disco y cinta
• Óptico
– CD y DVD

D.Mery 12 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

Organización
• Arreglo físico de los bits en palabras
• No siempre es obvio
– Ejemplo. Intercalado

D.Mery 13 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

Consideraciones
• ¿Qué tanto?
– Capacidad

• ¿Qué tan rápido?


– El tiempo es dinero

• ¿Qué tan caro ?


– ¿Cuánto estamos dispuestos a pagar?
D.Mery 14 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

Consideraciones

• ¿Es necesario que absolutamente toda


la memoria sea de acceso rápido?

D.Mery 15 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
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.

D.Mery 16 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

Lista de Jerarquía
• Registros
• Caché de nivel 1 (L1)
• Caché de nivel 2 (L2)
• Memoria Principal
• Caché de disco
• Disco
• Óptico
• Cinta

D.Mery 17 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

D.Mery 18 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

D.Mery 19 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
Bits / US$

US$ /

0.01 US$

US$ / Gbyte

D.Mery 20 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

¿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

D.Mery 21 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

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

D.Mery 22 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
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é

D.Mery 23 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
RAM Estática

Flip – flop D (latch)

D.Mery 24 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
RAM Estática

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

RAM 4 x 3

D.Mery 26 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
RAM Estática

D.Mery 27 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
RAM Estática

Una celda SRAM de un bit necesita 6 transistores

D.Mery 28 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
Señales de control SRAM

D.Mery 29 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

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
D.Mery 30 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

RAM Dinámica

Una celda DRAM de un bit necesita 1 transistore y 1


condensador (ó 3 transistores)
D.Mery 31 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
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

D.Mery 32 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

SRAM DRAM

D.Mery 33 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

Señales de control DRAM

D.Mery 34 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
DRAM típica de 16Mb (4M x 4 )

D.Mery 35 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
RAM

D.Mery 36 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
RAM

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

Notebook

D.Mery 38 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
RAM

D.Mery 39 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
RAM

64 MB DIMM (Dual Inline Memory Module)

D.Mery 40 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

Read Only Memory (ROM)


• Almacenamiento Permanente
• Microprogramación
• Subrutinas de librerías
• Programas del Sistema (BIOS)

D.Mery 41 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
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
D.Mery 42 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Sistemas de almacenamiento
Encapsulado

D.Mery 43 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Sistemas de almacenamiento

Memorias de semiconductor

D.Mery 44 Arquitectura de Computadores


Präsentat
ion
[ Índice ]

44.1 Sistemas de almacenamiento (tecnología)


44.2 Codificación, compresión e integridad
44.3 Jerarquía de memoria
44.4 Organización de la memoria principal
44.5 Latencia, tiempo de ciclo, ancho de banda
44.6 Memorias caché
44.7 Memoria virtual
44.8 Manejo de errores y fiabilidad

D.Mery 45 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación

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

D.Mery 46 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
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 2n
combinaciones diferentes.

0 0000 0000
1 0000 0001
2 0000 0010
:
255 1111 1111

D.Mery 47 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
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).

10 0001 0000
52 0101 0010
99 1001 1001

D.Mery 48 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
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: 45 45
+2 47
+3 50
+0 50
-1 49

D.Mery 49 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
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< 10n
abc,de = ax102+bx101 +cx100+dx10-1+ex10-2

D.Mery 50 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
Códigos numéricos

b) Binario (base 2), 2 dígitos, 0 y 1


margen de representación: 0 ≤ x< 2n
abc,de = ax22+bx21 +cx20+dx2-1+ex2-2

c) Octal (base 8), 8 dígitos, del 0 al 7


margen de representación: 0 ≤ x< 8n
abc,de = ax82+bx81 +cx80+dx8-1+ex8-2

d) Hexadecimal (base 16), 16 dígitos, del 0 al 9, A,B,C,D,E, y F


abc,de = ax162+bx161 +cx160+dx16-1+ex16-2

D.Mery 51 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
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

D.Mery 52 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
Representación de números negativos
Existen varias formas de representar números negativos. Todas
ellas utilizan el 1er 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 2n-1 -1

Margen de representación -(2n-1 -1) ≤ x ≤ 2n-1 -1

Las operaciones de suma y resta son complicadas. Se ha de


tratar el signo y el módulo independientemente.

D.Mery 53 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
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.

D.Mery 54 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
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.

D.Mery 55 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
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 2e.
Se trata de un sistema de codificación por campos, el MSB de la
mantisa contiene el signo.

D.Mery 56 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación
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)

D.Mery 57 Arquitectura de Computadores


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

D.Mery 58 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación

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.!!

D.Mery 59 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación

ASCII extendido
(8 bits)
256 combinaciones
se usa en los PC’s y
minicomputadores

Si existe á,é,í, ñ, etc.!!

D.Mery 60 Arquitectura de Computadores


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

Caráct. ASCII EBCDIC Caráct. ASCII EBCDIC Caráct. ASCII EBCDIC

Blanco 20 40 3 33 F3 9 39 F9

“ 22 7F 4 34 F4 A 41 C1

& 26 50 5 35 F5 B 42 C2

0 30 F0 6 36 F6 C 43 C3

1 31 F1 7 37 F7 D 44 C4

2 32 F2 8 38 F8 a 61 81

D.Mery 61 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Codificación

UNICODE: código de 16 bits

D.Mery 62 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Compresión

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.

D.Mery 63 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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.

D.Mery 64 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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

D.Mery 65 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Compresión
1. Codificación diferencial

Se usa para almacenar secuencias de datos cuando la


diferencia entre datos consecutivos es pequeña.
d0, d1, d2, d3,..... dn se guarda como
d0, d1- d0 , d2 -d1..... dn- dn-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?
D.Mery 66 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] 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.

D.Mery 67 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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écnicas 1. Codificación run-length (RLE)
2. Algoritmo LZW

D.Mery 68 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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)

D.Mery 69 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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

D.Mery 70 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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?

D.Mery 71 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Compresión
Ejemplo de fotografías:

Original 512 x 512


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

jpeg 512 x 512


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

jpeg 512 x 512


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

jpeg 512 x 512


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

jpeg 512 x 512


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

jpeg 512 x 512


(16 KB)
D.Mery 77 Arquitectura de Computadores
Präsentat
ion
[ Índice ]

44.1 Sistemas de almacenamiento (tecnología)


44.2 Codificación, compresión e integridad
44.3 Jerarquía de memoria
44.4 Organización de la memoria principal
44.5 Latencia, tiempo de ciclo, ancho de banda
44.6 Memorias caché
44.7 Memoria virtual
44.8 Manejo de errores y fiabilidad

D.Mery 78 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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

D.Mery 79 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Jerarquía de memoria

Lista de Jerarquía
• Registros
• Caché de nivel 1 (L1)
• Caché de nivel 2 (L2)
• Memoria Principal
• Caché de disco
• Disco
• Óptico
• Cinta

D.Mery 80 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Jerarquía de memoria

D.Mery 81 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Jerarquía de memoria

D.Mery 82 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Jerarquía de memoria
Bits / US$

US$ /

0.01 US$

US$ / Gbyte

D.Mery 83 Arquitectura de Computadores


Präsentat
ion
[ Índice ]

44.1 Sistemas de almacenamiento (tecnología)


44.2 Codificación, compresión e integridad
44.3 Jerarquía de memoria
44.4 Organización de la memoria principal
44.5 Latencia, tiempo de ciclo, ancho de banda
44.6 Memorias caché
44.7 Memoria virtual
44.8 Manejo de errores y fiabilidad

D.Mery 84 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Manejo de errores

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.

D.Mery 85 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Manejo de errores

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).

D.Mery 86 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Manejo de errores

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.).

D.Mery 87 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Manejo de errores

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

D.Mery 88 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Manejo de errores
Detección vs. Corrección
• 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.

D.Mery 89 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Manejo de errores
• La detección (y corrección) de errores se basa en
añadir información redundante:

M K

información paridad

N
Se adhieren con
el objeto de detectar
o corregir errores
D.Mery 90 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] 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?

D.Mery 91 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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

D.Mery 92 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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

D.Mery 93 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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 0 0
1
1 1

D.Mery 94 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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 0 0
1
1 1

D.Mery 95 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Manejo de errores
Ejemplo: Código de Hamming para la palabra de 4 bits: 0111

¿Qué pasa si se lee 0101 001?

0 0 0
1
1 0

D.Mery 96 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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 0 0
1
1 0

¿Qué círculo no es “par”?

D.Mery 97 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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?

Círculo “impar”

0 0 0
1
1 0

1
Círculo “impar”

D.Mery 98 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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?

Círculo “impar”

0 0 0
1 Culpable, hay
1 0
que modificarlo.
1
Círculo “impar”

D.Mery 99 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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?

Círculo “impar”

0 0 0
1 Bit modificado.
1 1

1
Círculo “impar”

D.Mery 100 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] 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?

Círculo “impar”

0 0 0
1 Bit modificado.
1 1
El dato es 0111.
1
Círculo “impar”

D.Mery 101 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Manejo de errores
• La detección (y corrección) de errores se basa en
añadir información redundante:

M K

información paridad

N
Se adhieren con
el objeto de detectar
o corregir errores
D.Mery 102 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Manejo de errores

Estrategia para la corrección de errores.

D.Mery 103 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Manejo de errores
Estrategia para la corrección de errores.

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.
D.Mery 104 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Manejo de errores
Posiciones de los bits de datos y de comprobación.
12 1100 M8
11 1011 M7
10 1010 M6
09 1001 M5
08 1000 C8
07 0111 M4
06 0110 M3
05 0101 M2
04 0100 C4
03 0011 M1
02 0010 C2
01 0001 C1
00 0000 NO HAY ERROR
D.Mery 105 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Manejo de errores
Cómo se calcula C1, C2, C4, y C8.

C1 = M1 + M2 + M4 + M5 + M7

C2 = M1 + M3 + M4 + M6 + M7

C4 = M2 + M3 + M4 + M8

C8 = M5 + M6 + M7 + M8

1. Calcular C1, C2, C4, C8 para 001111001


2. Calcular C1, C2, C4, C8 para 001111101

¿Qué sucede?
D.Mery 106 Arquitectura de Computadores
Präsentat
ion
[ Índice ]

44.1 Sistemas de almacenamiento (tecnología)


44.2 Codificación, compresión e integridad
44.3 Jerarquía de memoria
44.4 Organización de la memoria principal
44.5 Latencia, tiempo de ciclo, ancho de banda
44.6 Memorias caché
44.7 Memoria virtual
44.8 Manejo de errores y fiabilidad

D.Mery 107 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Organización

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.

D.Mery 108 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Organización

Tres formas de organizar una


memoria de 96 bits

D.Mery 109 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Organización

Memoria big endian Memoria little endian

D.Mery 110 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Organización

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)
D.Mery 111 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Organización

Organización 2D:

D.Mery 112 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Organización

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

Organización 3D:

D.Mery 114 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Organización

Organización 3D:

D.Mery 115 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Organización

D.Mery 116 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Organización

D.Mery 117 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Organización

En la organización también se decide en qué direcciones se


debe colocar la RAM y la ROM, y como se decodifican:

8000-8FFF RAM-8
:
:
3000-3FFF RAM-3
2000-2FFF RAM-2
1000-1FFF RAM-1
0000-0FFF ROM

D.Mery 118 Arquitectura de Computadores


Präsentat
ion
[ Índice ]

44.1 Sistemas de almacenamiento (tecnología)


44.2 Codificación, compresión e integridad
44.3 Jerarquía de memoria
44.4 Organización de la memoria principal
44.5 Latencia, tiempo de ciclo, ancho de banda
44.6 Memorias caché
44.7 Memoria virtual
44.8 Manejo de errores y fiabilidad

D.Mery 119 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Latencia

Latencia:

Lo que tarda una memoria en


proporcionar un operando.

D.Mery 120 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Tiempo de ciclo

Tiempo de ciclo:

Tiempo mínimo entre dos requerimientos


de memoria.

D.Mery 121 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Ancho de banda

Ancho de banda:

La cantidad de datos que se proporciona


por unidad de tiempo.

D.Mery 122 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Ancho de banda

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.

D.Mery 123 Arquitectura de Computadores


Präsentat
ion
[ Índice ]

44.1 Sistemas de almacenamiento (tecnología)


44.2 Codificación, compresión e integridad
44.3 Jerarquía de memoria
44.4 Organización de la memoria principal
44.5 Latencia, tiempo de ciclo, ancho de banda
44.6 Memorias caché
44.7 Memoria virtual
44.8 Manejo de errores y fiabilidad

D.Mery 124 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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.

D.Mery 125 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

D.Mery 126 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
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.]

D.Mery 127 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

1KB 256 KB 1 GB 80 GB

1ns 5 ns 100 ns 5 ms

D.Mery 128 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

D.Mery 129 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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)

D.Mery 130 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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.

D.Mery 131 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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

D.Mery 132 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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

D.Mery 133 Arquitectura de Computadores


Präsentat
ion
[ Índice ]

44.1 Sistemas de almacenamiento (tecnología)


44.2 Codificación, compresión e integridad
44.3 Jerarquía de memoria
44.4 Organización de la memoria principal
44.5 Latencia, tiempo de ciclo, ancho de banda
44.6 Memorias caché
44.7 Memoria virtual
44.8 Manejo de errores y fiabilidad

D.Mery 134 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
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
D.Mery 135 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Caché
Caché: Memoria principal:

K palabras
Nº Etiqueta Bloque Dir Datos

Bloque:
0 0
1 1
2 2
3 3
: :

C×K<<2n
C-1

2n-1
K palabras
D.Mery 136 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Caché
Caché: Memoria principal:

K palabras
Nº Etiqueta Bloque Dir Datos

Bloque:
0 Como hay menos líneas de caché que 0 bloques
1 de memoria principal, se necesita un1 algoritmo
2 2
que haga corresponder bloques de memoria
3
3 principal a líneas de caché.
: :

Además, se necesita determinar a qué bloque


de memoria principal corresponde una línea
dada de caché.

C×K<<2n
C-1

2n-1
K palabras
D.Mery 137 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Caché

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.

D.Mery 138 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

Correspondencia directa:

Consiste en hacer corresponder cada bloque de memoria


principal a sólo una línea posible de caché.

D.Mery 139 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
Correspondencia directa:

D.Mery 140 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
Correspondencia directa:

D.Mery 141 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

Correspondencia directa:

Línea caché Bloques asignados


0 0, m, 2m, 3m…2s-m
1 1,m+1, 2m+1…2s-m+1

m-1 m-1, 2m-1,3m-1…2s-1

D.Mery 142 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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.

D.Mery 143 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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.

D.Mery 144 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
Correspondencia asociativa:

D.Mery 145 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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é.

D.Mery 146 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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.

D.Mery 147 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
Correspondencia asociativa por conjuntos:

D.Mery 148 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
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

D.Mery 149 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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.
D.Mery 150 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Caché

FIFO (first input first output):

Se hace una lista de la secuencia de la entrada de los


bloque 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.

D.Mery 151 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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.

D.Mery 152 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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.

D.Mery 153 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
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.

D.Mery 154 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
Problemas de diseño:

1KB 256 KB 1 GB 80 GB

1ns 5 ns 100 ns 5 ms

Que pasa cuando se escribe en la caché y no se actualiza


la memoria? Que lee el dispositivo I/O de la memoria?
D.Mery 155 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Caché
3. Políticas de escritura
Cuándo escribir (de la caché a la memoria principal):

Hay dos técnicas principales

1. Inmediatamente

2. Post-escritura

D.Mery 156 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché

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%.

D.Mery 157 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
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é.
D.Mery 158 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Caché
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.

D.Mery 159 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
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.
D.Mery 160 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Caché
4. Número de caches

D.Mery 161 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
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.

D.Mery 162 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Caché
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.

D.Mery 163 Arquitectura de Computadores


Präsentat
ion
[ Índice ]

44.1 Sistemas de almacenamiento (tecnología)


44.2 Codificación, compresión e integridad
44.3 Jerarquía de memoria
44.4 Organización de la memoria principal
44.5 Latencia, tiempo de ciclo, ancho de banda
44.6 Memorias caché
44.7 Memoria virtual
44.8 Manejo de errores y fiabilidad

D.Mery 164 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Memoria virtual

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.

D.Mery 165 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Memoria virtual

D.Mery 166 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Memoria virtual
Memoria Virtual (16K)
14-16K 1
Memoria física (8K)
12-14K 0
3 6-8K
10-12K X
2 4-6K
8-10K X
1 2-4K
6-8K X
0 0-2K
4-6K X
2-4K 3
0-2K 2

D.Mery 167 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Memoria virtual
Memoria Virtual (16K)
14-16K 1
12-14K 0 Memoria física (8K)

10-12K X 3 6-8K
8-10K X 2 4-6K
6-8K X 1 2-4K
4-6K X 0 0-2K
2-4K 3 Ejemplo: se desea leer el
0-2K 2 contenido de la memoria 0

D.Mery 168 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Memoria virtual
Memoria Virtual (16K)
14-16K 1
12-14K 0 Memoria física (8K)

10-12K X 3 6-8K
8-10K X 2 4-6K
6-8K X 1 2-4K
4-6K X 0 0-2K
2-4K 3 Ejemplo: se desea leer el
0-2K 2 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.
D.Mery 169 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Memoria virtual
Memoria Virtual (16K)
14-16K 1
12-14K 0 Memoria física (8K)

10-12K X 3 6-8K
8-10K X 2 4-6K
6-8K X 1 2-4K
4-6K X 0 0-2K
2-4K 3 Ejemplo: se desea leer el contenido
0-2K 2 de la memoria 2050

D.Mery 170 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Memoria virtual
Memoria Virtual (16K)
14-16K 1
12-14K 0 Memoria física (8K)

10-12K X 3 6-8K
8-10K X 2 4-6K
6-8K X 1 2-4K
4-6K X 0 0-2K
2-4K 3 Ejemplo: se desea leer el contenido
0-2K 2 de la memoria 2050

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.
D.Mery 171 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Memoria virtual
Memoria Virtual (16K)
14-16K 1
12-14K 0 Memoria física (8K)

10-12K X 3 6-8K
8-10K X 2 4-6K
6-8K X 1 2-4K
4-6K X 0 0-2K
2-4K 3 Ejemplo: se desea leer el contenido
0-2K 2 de la memoria 4100

D.Mery 172 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Memoria virtual
Memoria Virtual (16K)
14-16K 1
12-14K 0 Memoria física (8K)

10-12K X 3 6-8K
8-10K X 2 4-6K
6-8K X 1 2-4K
4-6K X 0 0-2K
2-4K 3 Ejemplo: se desea leer el contenido
0-2K 2 de la memoria 4100

Esta memoria no se encuentra en la memoria física → ocurre


un ‘fallo de página’.
D.Mery 173 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Memoria virtual
Memoria Virtual (16K)
14-16K X
12-14K 0 Memoria física (8K)

10-12K X 3 6-8K
8-10K X 2 4-6K
6-8K X 1 2-4K
4-6K 1 0 0-2K
2-4K 3 Ejemplo: se desea leer el contenido
0-2K 2 de la memoria 4100

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
D.Mery 174 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Memoria virtual

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

Memoria Virtual
Memoria física
D.Mery 175 Arquitectura de Computadores
Präsentat
ion
[ Memoria ] Memoria virtual
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.

D.Mery 176 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Memoria virtual
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 Dirección MMU Dirección


virtual se establece el virtual física
número de la página
física.

3. Se debe leer la dirección


correspondiente en la
memoria física.

D.Mery 177 Arquitectura de Computadores


Präsentat
ion
[ Memoria ] Memoria virtual
Tabla de página

D.Mery 178 Arquitectura de Computadores


Präsentat
ion

También podría gustarte