Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
problemas impares
Tema 5. Memorias
Estructura de
Computadores
Curso 2008-2009
Tema 5 Hoja: 2 / 36
Memorias
Base terica
La memoria es el lugar en el que se almacenan las instrucciones y los
datos para que se puedan ejecutar los programas. Sin embargo, el sistema
de memoria del computador est formado por varios tipos de memorias
con diferentes capacidades y tiempos de acceso. La idea es que parezca
que las referencias a memoria se sirven a velocidades cercanas a las de
los registros del procesador, y que adems se tiene un espacio de
memoria casi ilimitado para los programas y los datos. La memoria cach
es la responsable de la rapidez de los accesos y la memoria virtual la de la
gran capacidad del sistema de memoria.
Capacidad CP
Tiempo de U
Precio
acceso por bit
nivel 1 CACHE
Memoria principal
m bits 0
Memoria Mapa
Direccin Disponible usado
m-1 0 2k-1 Mapa
total
2m-1
Para calcular cuantos mdulos hacen falta, en este caso es muy sencillo y
se ve a simple vista, se realiza la operacin siguiente:
16k 8
x = 2 x1 = 2 mdulos de 8kx8
8k 8
Ahora se tiene que ver cuando se accede a un mdulo o al otro. Ya que los
dos mdulos son de 8K, se necesitarn 13 bits del bus de direcciones para
poder direccionar en cada mdulo esos 8K (=213). De esa forma, nos
queda nicamente un bit para determinar cuando se accede al mdulo
cero o al mdulo uno.
16k 16
x = 1x 2 = 2 mdulos de 16kx8
16k 8
En este caso, se deber acceder a los dos mdulos a la vez, dado que en
un mdulo se almacenarn los 8 bits superiores y en el otro los 8 bits de
menor peso. El esquema quedara de la forma:
1.
2.
3.
4.
64 K x 8 128 K x 1
128 K x 1 256 K x 8
128 K x 8
64 K x 8 128 K x 1
128 K x 1 256 K x 8
128 K x 8
64 K x 8 128 K x 1
128 K x 1 256 K x 8
128 K x 16 256 K x 16
A19-A0
CPU
D15-D0
64 k x 8 128 k x 1
128 k x 1 256 k x 8
128 k x 16 256 k x 16
64 k x 1 32 k x 1
128 k x 8 64 k x 1
512 k x 8 128 k x 8
2 Kpalabras x 16 16 Kpalabras x 8
32 Kpalabras x 32 16 Kpalabras x 16
64 Kpalabras x 16 64 Kpalabras x 1
Se pide:
0
Mapa de memoria RAM
80K-1
80K
Mapa de memoria ROM
128K-1
10. Realizar el mismo ejercicio que en el caso anterior suponiendo que los
mdulos que se disponen son los siguientes:
4 Kpalabras x 16 8 Kpalabras x 32
32 Kpalabras x 16 64 Kpalabras x 8
8 Kpalabras x 16 4 Kpalabras x 1
El cliente puede pedir que el fichero de sonido sea en formato MP3 192
K con lo que el programa ocupar un mximo de 320 K. Dado que no
existirn diferentes tarjetas de felicitacin se deber cambiar el
contenido de la memoria.
128 K x 8 128 K x 8
128 K x 8
256 K x 8 256 K x 8 256 K x 8
Solucin ejercicio 1
1. Comprobar que existe solucin
Para poder comprobarlo, debemos fijarnos en el nmero de bits que
tenemos en el bus de direcciones, y ver que con ese nmero de bits,
podemos direccionar todo el mapa de memoria.
Por otro lado, tenemos que comprobar que el bus de datos soporte el
ancho de una palabra de memoria (16 bits). Por tanto, vamos a suponer
que el bus de datos cuenta con 16 lneas, desde la D15 hasta la D0.
128 K x 1
512 K 16 bits
x = 4 x 16 = 64 pastillas de 128 K x 1
128 K 1 bit
Con esta posibilidad se necesitaran 4 filas de mdulos de 128 K
posiciones de memoria (para poder direccionar las 512 K posiciones de
memoria) y 16 mdulos por cada una de las filas para almacenar los 16
bits que componen una palabra.
256 K x 8
512 K 16 bits
x = 2 x 2 = 4 pastillas de 256 K x 8
256 K 8 bits
128 K x 1
256 K 16 bits
x = 2 x 16 = 32 pastillas de 128 K x 1
128 K 1 bit
64 K x 8
256 K 16 bits
x = 4 x 2 = 8 pastillas de 64 K x 8
64 K 8 bit
128 K x 8
256 K 16 bits
x = 2 x 2 = 4 pastillas de 128 K x 8
128 K 8 bits
La solucin ms sencilla es utilizar:
FFFFF h 1024 K 1
Libre
C0000 h 768 K
BFFFF h 768 K 1
ROM
80000 h 512 K
7FFFF h 512 K 1
RAM
00000 h 0
Para poder direccionar las 256 Kpalabras (= 218 Kpalabras) de cada una de
las pastillas de memoria RAM necesitaremos 18 bits, que se corresponden
con las lneas A17..A0 del bus de direcciones. Mientras que para poder
acceder a las 128 Kpalabras (= 217 Kpalabras) de cada una de las pastillas
de memoria ROM necesitaremos 17 bits, son las lneas A16..A0 del bus de
direcciones.
Las lneas A19 y A18 del bus de direcciones, nos permitirn seleccionar la
fila de pastillas sobre la que se realizar la lectura o escritura de los datos.
Por otro lado, la primera pastilla de cada fila del mapa de memoria
almacenar la parte alta de una palabra y la segunda la parte alta.
Las filas de memoria ROM se seleccionan con las salidas del decodificador
101 y 100.
Bus
Busde
dedirecciones
direccionesAA1919..A
..A00
A19..A17
110
110 ROM
ROM128Kx8
128Kx8 ROM
ROM128Kx8
128Kx8
101
101
Decodific.
Decodific.100 DD15..D DD7..D
100 15..D88 7..D00
011
011
010
010
001
001
000
000 CS
CS AA16..A CS AA16..A
16..A
00 CS 16..A
00
ROM
ROM128Kx8
128Kx8 ROM
ROM128Kx8
128Kx8
00
..D
DD15..D DD7..D
datosDD1515..D
15..D88 7..D00
de datos
CS
CS AA17..A CS AA17..A
A17..A0 17..A0 CS 17..A0
0 0
Busde
RAM
RAM256Kx8
256Kx8 RAM
RAM256Kx8
256Kx8
Bus
DD15..D DD7..D
15..D8 7..D0
8 0
CS
CS AA17..A CS AA17..A
17..A0 CS 17..A0
0 0
RAM
RAM256Kx8
256Kx8 RAM
RAM256Kx8
256Kx8
DD15..D DD7..D
15..D8 7..D0
8 0
Solucin ejercicio 3
Por otro lado, una dato de memoria puede transmitirse por el bus de dato
puesto que cuenta con 16 lneas, desde la D15 hasta la D0.
128 K x 1
512 K 16 bits
x = 4 x 16 = 64 pastillas de 128 K x 1
128 K 1 bit
256 K x 8
512 K 16 bits
x = 2 x 2 = 4 pastillas de 256 K x 8
256 K 8 bits
256 K x 16
512 K 16 bits
x = 2 x 1 = 2 pastillas de 256 K x 16
256 K 16 bits
128 K x 1
256 K 16 bits
x = 2 x 16 = 32 pastillas de 128 K x 1
128 K 1 bit
64 K x 8
256 K 16 bits
x = 4 x 2 = 8 pastillas de 64 K x 8
64 K 8 bits
128 K x 16
256 K 16 bits
x = 2 x 1 = 2 pastillas de 128 K x 16
128 K 16 bits
FFFFF h 1024 K 1
ROM
C0000 h 768 K
BFFFF h 768 K 1
Libre
80000 h 512 K
7FFFF h 512 K 1
RAM
00000 h 0
2 fila
FFFFF h 1 1 1024 K 1
1 1 1 pastillas
E0000 h 0 0 896 K
ROM
1 fila
DFFFF h 1 1 896 K 1
1 1 0 pastillas
C0000 h 0 0 768 K
ROM
BFFFF h 1 1 1 768 K 1
1 0 Libre
80000 h 0 0 0 512 K
2 fila
7FFFF h 1 1 1 512 K 1
0 1 pastillas
40000 h 0 0 0 256 K
RAM
1 fila
3FFFF h 1 1 1 256 K 1
0 0 pastillas
00000 h 0 0 0 0
RAM
Para poder direccionar las 256 Kpalabras (= 218 Kpalabras) de cada una de
las pastillas de memoria RAM necesitaremos 18 bits, que se corresponden
con las lneas A17..A0 del bus de direcciones. Mientras que para poder
acceder a las 128 Kpalabras (= 217 Kpalabras) de cada una de las pastillas
de memoria ROM necesitaremos 17 bits, son las lneas A16..A0 del bus de
direcciones.
Las lneas A19 y A18 del bus de direcciones, nos permitirn seleccionar la
fila de pastillas sobre la que se realizar la lectura o escritura de los datos.
Bus
Busde
dedirecciones
direccionesAA1919..A
..A00
A19 , A18
CS
CS AA16..A
11 16..A
00
11
ROM
ROM128Kx16
128Kx16
10
10 A17
Decodificador DD15..D
Decodificador 15..D00
01
01 A16..A0
00
00
CS
CS AA16..A
16..A
00
ROM
ROM128Kx16
128Kx16
00
..D
DD15..D
datosDD1515..D
15..D00
de datos
CS
CS AA17..A
A17..A0 17..A
00
Busde
RAM
RAM256Kx16
256Kx16
Bus
DD15..D
15..D0
0
CS
CS AA17..A
17..A
00
RAM
RAM256Kx16
256Kx16
DD15..D
15..D00
Solucin ejercicio 5
1. Comprobar que existe solucin
Por lo tanto, vemos que con los 20 bits del bus de direcciones s es
posible.
128 K x 1
640 K 16 bits
x = 5 x 16 = 80 pastillas de 128 K x 1
128 K 1 bit
256 K x 8
640 K 16 bits
x = 3 x 2 = 6 pastillas de 256 K x 8
256 K 8 bits
256 K x 16
640 K 16 bits
x = 3 x 1 = 3 pastillas de 256 K x 16
256 K 16 bits
128 K x 1
128 K 16 bits
x = 1 x 16 = 16 pastillas de 128 K x 1
128 K 1 bit
64 K x 8
128 K 16 bits
x = 2 x 2 = 4 pastillas de 64 K x 8
64 K 8 bits
128 K x 16
128 K 16 bits
x = 1 x 1 = 1 pastilla de 128 K x 16
128 K 16 bits
FFFFF h 1024 K 1
ROM
E0000 h 896 K
DFFFF h 896 K 1
Libre
A0000 h 640 K
9FFFF h 640 K 1
RAM
00000 h 0
Fila
FFFFF h 1 1 1024 K 1
1 1 1 pastillas
E0000 h 0 0 896 K
ROM
DFFFF h 1 1 896 K 1
1 1 0
C0000 h 0 0 768 K Libre
BFFFF h 768 K 1
Zona de RAM no direccionable
A0000 h 640 K
3 fila
9FFFF h 0 1 1 640 K 1
1 0 pastillas
80000 h 0 0 0 512 K
RAM
2 fila
7FFFF h 1 1 1 512 K 1
0 1 pastillas
40000 h 0 0 0 256 K
RAM
1 fila
3FFFF h 1 1 1 256 K 1
0 0 pastillas
00000 h 0 0 0 0
RAM
Para poder direccionar las 256 Kpalabras (= 218 Kpalabras) de cada una de
las pastillas de memoria RAM necesitaremos 18 bits, que se corresponden
con las lneas A17..A0 del bus de direcciones. Mientras que para poder
acceder a las 128 Kpalabras (= 217 Kpalabras) de cada una de las pastillas
de memoria ROM necesitaremos 17 bits, son las lneas A16..A0 del bus de
direcciones.
Las lneas A19 y A18 del bus de direcciones, nos permitirn seleccionar la
fila de pastillas sobre la que se realizar la lectura o escritura de los datos.
Bus
Busde
dedirecciones
direccionesAA1919..A
..A00
A16..A0
A19 , A18
CS
CS AA16..A
11
11 16..A
00
ROM
ROM128Kx16
128Kx16
10
10 A17
Decodificador DD15..D
Decodificador 15..D00
01
01
00
00
CS
CS AA17..A
17..A0
0
RAM
RAM256Kx16
256Kx16 00
..D
DD15..D
datosDD1515..D
15..D0
0
de datos
CS
CS AA17..A
A17..A0 17..A
00
Busde
RAM
RAM256Kx16
256Kx16
Bus
DD15..D
15..D00
CS
CS AA17..A
17..A
00
RAM
RAM256Kx16
256Kx16
DD15..D
15..D00
Solucin ejercicio 7
1. Comprobar que existe solucin
64 K x 1
384 K 16 bits
x = 6 x 16 = 96 pastillas de 64 K x 1
64 K 1 bit
512 K x 8
384 K 16 bits
x = 1 x 2 = 2 pastillas de 512 K x 8
512 K 8 bits
128 K x 8
384 K 16 bits
x = 3 x 2 = 6 pastillas de 128 K x 8
128 K 8 bits
32 K x 1
640 K 16 bits
x = 20 x 16 = 320 pastillas de 32 K x 1
32 K 1 bit
64 K x 1
640 K 16 bits
x = 10 x 16 = 160 pastillas de 64 K x 1
64 K 1 bit
128 K x 8
640 K 16 bits
x = 5 x 2 = 10 pastillas de 128 K x 8
128 K 8 bits
FFFFF h 1024 K 1
ROM
60000 h 384 K
5FFFF h 384 K 1
RAM
00000 h 0
5 fila
FFFFF h 1 1 1024 K 1
1 1 1 pastillas
E0000 h 0 0 896 K
ROM
4 fila
DFFFF h 1 1 896 K 1
1 1 0 pastillas
C0000 h 0 0 768 K
ROM
3 fila
BFFFF h 1 1 768 K 1
1 0 1 pastillas
A0000 h 0 0 640 K
ROM
2 fila
9FFFF h 1 1 640 K 1
1 0 0 pastillas
80000 h 0 0 512 K
ROM
1 fila
7FFFF h 1 1 512 K 1
0 1 1 pastillas
60000 h 0 0 384 K
ROM
Para poder direccionar las 512 Kpalabras (= 219 Kpalabras) de cada una de
las pastillas de memoria RAM necesitaremos 19 bits, que se corresponden
con las lneas A18..A0 del bus de direcciones. Mientras que para poder
acceder a las 128 Kpalabras (= 217 Kpalabras) de cada una de las pastillas
de memoria ROM necesitaremos 17 bits, son las lneas A16..A0 del bus de
direcciones.
Las lneas A19 y A18 del bus de direcciones, nos permitirn seleccionar la
fila de pastillas sobre la que se realizar la lectura o escritura de los datos.
Por otro lado, la primera pastilla de cada fila del mapa de memoria
almacenar la parte alta de una palabra y la segunda la parte alta.
Bus
Busde
dedirecciones
direccionesAA1919..A
..A00
A19..A17
ROM
ROM128Kx8
128Kx8 ROM
ROM128Kx8
128Kx8
DD15..D DD7..D
15..D88 7..D00
CS
CS AA16..A CS AA16..A
16..A00 CS 16..A00
ROM
ROM128Kx8
128Kx8 ROM
ROM128Kx8
128Kx8
DD15..D DD7..D
00
15..D88 7..D00
..D
datosDD1515..D
de datos
CS
CS AA16..A CS AA16..A
16..A00 CS 16..A00
Busde
ROM
ROM128Kx8
128Kx8 ROM
ROM128Kx8
128Kx8
Bus
CS
CS AA16..A CS AA16..A
16..A00 CS 16..A00
ROM
ROM128Kx8
128Kx8 ROM
ROM128Kx8
128Kx8
DD15..D DD7..D
15..D88 7..D00
CS
CS AA18..A CS AA18..A
18..A00 CS 18..A00
RAM
RAM512Kx8
512Kx8 RAM
RAM512Kx8
512Kx8
DD15..D DD7..D
15..D8 7..D0
8 0
Solucin ejercicio 9
Apartado a)
El bus de direcciones tiene 32 lneas, lo cual permite direccionar hasta 232
= 4Gpalabras de memoria. En el caso propuesto se trata de realizar una
memoria de 128Kpalabras, para lo cual slo son necesarias 17 lneas, ya
que 217 = 128 Kpalabras.
Por otro lado, tambin hay que comprobar que el bus de datos proporciona
el ancho de palabra suficiente. El bus de datos tiene 64 bits de ancho de
palabra y la palabra de memoria es de 64 bits.
Apartado b)
2 Kpalabras x 16
32 Kpalabras x 32
64 Kpalabras x 16
80 Kpalabras 64
x = 40 x 4 = 160 mdulos de memoria
2 Kpalabras 16
80 Kpalabras 64
x = 2,5 x 2 = 3 x 2 = 6 mdulos de memoria
32 Kpalabras 32
80 Kpalabras 64
x = 1,25 x 4 = 2 x 4 = 8 mdulos de memoria
64 Kpalabras 16
16 Kpalabras x 8
16 Kpalabras x 16
64 Kpalabras x 1
48 Kpalabras 64
x = 3 x 8 = 24 mdulos de memoria
16 Kpalabras 8
48 Kpalabras 64
x = 3 x 4 = 12 mdulos de memoria
16 Kpalabras 16
48 Kpalabras 64
x = 0,75 x 64 = 1 x 64 = 64 mdulos de memoria
64 Kpalabras 1
Apartado c)
Para disear el mapa de memoria, es preciso averiguar el nmero de
lneas que se necesitan para direccionar cada pastilla de memoria:
Mnima
0K
0 0 ... 0 direccin
0 ... 0 0 0
1 fila RAM
1 1 ... 1 Mxima
32 K-1
direccin
Mnima
32 K
0 0 ... 0 direccin
0 ... 0 0 1
2 fila de RAM
1 1 ... 1 Mxima
64 K-1
direccin
Mnima 64 K
0 0 ... 0 direccin
0 ... 0 1 0 3 fila de RAM
0 1 ... 1 Mxima
direccin 80 K-1
80K
Zona no direccionable de mdulos RAM
96 K-1
Mnima
80 K
0 ... 0 direccin
0 ... 0 1 0 1
1 fila de ROM
1 ... 1 Mxima
96 K-1
direccin
Mnima
96 K
0 ... 0 direccin
0 ... 0 1 1 0
2 fila de ROM
1 ... 1 Mxima
112 K-1
direccin
Mnima
112 K
0 ... 0 direccin
0 ... 0 1 1 1
3 fila de ROM
1 ... 1 Mxima
128 K-1
direccin
Apartado d)
32 bits
Bus de direcciones: A31..A0
A14..A0 (15 bits)
A16..A14 (3 bits)
cs
cs AA14..A cs
14..A00 cs
AA14..A
14..A00
000
000 RAM
D RAM 32Kx32
32Kx32 RAM
RAM 32Kx32
32Kx32
e 001
001 D ..D D ..D
c D31
31..D00 D31
31..D00
o 010
010 D63..D32 D31..D0
d
i 011
011 A14..A0 (15 bits)
f
i 100
100
c cs AA14..A cs AA14..A
a 101
101 cs 14..A00 cs 14..A00
d RAM
RAM 32Kx32 RAM
RAM 32Kx32
64 bits
110
110 32Kx32 32Kx32
o D ..D D ..D
r 111 D31
31..D00 D31
31..D00
111
D63..D32 D31..D0
A14..A0 (15 bits)
cs
cs AA14..A cs
14..A00 cs
AA14..A
14..A00
RAM
RAM 32Kx32
32Kx32 RAM
RAM 32Kx32
32Kx32
DD31..D
31..D00
DD31..D
31..D00
D63..D32 D31..D0
Bus de datos: D63 ..D0
cs
cs AA13..A cs
13..A00 cs
AA13..A cs
13..A00 cs
AA13..A cs
13..A00 cs
AA13..A
13..A00
ROM
ROM 16Kx16
16Kx16 ROM ROM 16Kx16
16Kx16 ROM ROM 16Kx16
16Kx16 ROM ROM 16Kx16
16Kx16
DD15..D
15..D00
DD15..D
15..D00
DD15..D
15..D00
DD15..D
15..D00
D63..D48 D47..D32 D31..D16 D15..D0
cs
cs AA13..A cs
13..A00 cs
AA13..A cs
13..A00 cs
AA13..A cs
13..A00 cs
AA13..A
13..A00
ROM
ROM 16Kx16
16Kx16 ROM ROM 16Kx16
16Kx16 ROM ROM 16Kx16
16Kx16 ROM ROM 16Kx16
16Kx16
DD15..D
15..D00
DD15..D
15..D00
DD15..D
15..D00
DD15..D
15..D00
D63..D48 D47..D32 D31..D16 D15..D0
cs
cs AA13..A cs
13..A00 cs
AA13..A cs
13..A00 cs
AA13..A cs
13..A00 cs
AA13..A
13..A00
ROM
ROM 16Kx16
16Kx16 ROM ROM 16Kx16
16Kx16 ROM ROM 16Kx16
16Kx16 ROM ROM 16Kx16
16Kx16
DD15..D
15..D00
DD15..D
15..D00
DD15..D
15..D00
DD15..D
15..D00
D63..D48 D47..D32 D31..D16 D15..D0
Solucin ejercicio 11
Apartado a)
Apartado b)
En los dos casos, las especificaciones de memoria, nos dan una necesidad
de 512K.
Apartado c)
El mapa de memoria es el que se requiere para poder direccionar una
pastilla de 512Kx8 de EEPROM. Es decir, tendr una fila formada por dos
pastillas de memoria que se direccionarn a la vez, una contendr los 8
bits superiores y otra los 8 bits inferiores de cada direccin.
A19 A18 A0
FFFFF h 0 1 1024 K 1
1 Libre
80000 h 1 0 512 K
Fila de
7FFFF h 0 1 512 K 1
0 pastillas
00000 h 1 0 0K
EEPROM
A18-A0 A18-A0
A19
512K x 8 512K x 8
CS EEPROM D7-D0 CS EEPROM D7-D0
D7-D0
D15-D8