MEMORIA CENTRAL. Memoria central. 1

Memoria central. 1 Tema 6 MEMORIA CENTRAL En este tema se pretende ver con más detalle, los aspectos concernientes a la organización de una memoria...
99 downloads 0 Views 218KB Size
Memoria central. 1

Tema 6

MEMORIA CENTRAL

En este tema se pretende ver con más detalle, los aspectos concernientes a la organización de una memoria central, tanto a nivel lógico, como de hardware (conexiones). La función de la memoria central es la de almacenar las instrucciones y/o datos a los que accede el microprocesador o CPU del ordenador. Dicho de otra manera, para que una información sea accesible a la CPU del ordenador, debe ser previamente almacenada en su memoria central. Las características de este tipo de memorias, y que ya vimos en el tema anterior, son: -

Construida con semiconductores.

-

Tiempos de acceso y de ciclo pequeños.

-

Acceso aleatorio.

-

Activas (permiten su lectura y escritura).

-

Capacidad de tipo medio (entre 256 MBytes y unos pocos GBytes).

-

Volátiles.

-

La mínima información accesible es la palabra.

6.1 ORGANIZACIÓN GENERAL DE UNA MEMORIA. Dígito de la palabra de memoria m-1 m-2 m-3 · · · 1 0 Posición n-1 Posición n-2 Posición n-3 · · ·

· · · · · ·

Posición 1 Posición 0

Departamento de Informática.

Memoria central. 2 La memoria principal o central está organizada como muestra la figura. Se encuentra dividida en n palabras y a cada palabra se la asigna una dirección o posición de memoria. Todas las palabras tienen el mismo número de bits que llamamos longitud de palabra (m en este caso). Las direcciones o posiciones de memoria son números naturales, codificados en binario natural, y asignados de manera consecutiva desde la dirección 0, hasta la última dirección, la n-1. Aunque los elementos necesarios para operar con la memoria central, depende de cada ordenador, en general, el diagrama de bloques de una memoria es el siguiente:

El registro de dirección de memoria (MAR) es el encargado de almacenar la dirección a la que se quiere acceder. Su tamaño queda determinado por la máxima capacidad de la memoria utilizable. Si ésta es 2n-1, el tamaño de este registro será n. Este registro siempre lleva la información hacia la memoria, y nunca hacia el exterior. El registro intermedio de memoria (MBR) es el encargado de almacenar el dato a ser escrito en la memoria, o el dato que ha sido leído de ésta. Su longitud es igual a la de palabra de memoria. Los pasos a seguir para realizar cada una de las operaciones sobre la memoria son:

Departamento de Informática.

Memoria central. 3 -

LECTURA 1. dirección→ MAR. El computador coloca la dirección de la posición de la que se va a leer el dato en el registro MAR 2. Activamos la entrada de control de lectura. 3. dato→ MBR. Transcurrido el tiempo de acceso dispondremos en el registro intermedio de memoria el dato pedido.

-

ESCRITURA 1. dirección→ MAR (el computador coloca la dirección de la posición de la que se va a leer el dato en el registro MAR) y dato→ MBR (el computador coloca el dato a escribir en el registro intermedio de memoria). 2. Activamos la entrada de control de escritura. Transcurrido el tiempo necesario el dato del MBR se habrá grabado en la memoria en la posición indicada por el MAR.

Vemos que el computador se comunica con la memoria por medio del registro de dirección de memoria, del registro intermedio de memoria y de las entradas de control escribir y leer. Las memorias son generalmente empacadas en módulos o paquetes separados. Estos módulos suelen tener una capacidad potencia de dos. Podemos conseguir módulos de capacidades distintas a las que aparecen en el mercado mediante la interconexión apropiada de estos módulos más pequeños. La célula básica de memoria o punto de memoria de la memoria central lo vamos a representar de la siguiente manera

selección datos Escritura/ Lectura

I/O R/W

u

Donde el significado de cada entrada/salida es el siguiente:

Departamento de Informática.

Memoria central. 4 • Línea de selección. Selecciona la célula de memoria que va a actuar ya sea en una operación de lectura o en una operación de escritura. Esta entrada actúa sobre el cerrojo que conecta la línea de datos con el exterior. -

Si Selección=0 la célula está aislada del exterior, es decir, el cerrojo está “abierto”.

-

Si Selección=1 la célula está habilitada, es decir, conectada con el exterior, se opera según se indique en el resto de entradas.

• Línea de Escritura/Lectura. Esta línea indica la operación a realizar. • Línea de datos. Es la línea por la que entra la información a ser grabada en la célula en la operación de escritura, o se muestra al exterior el valor binario almacenado en la célula en la operación de lectura. A continuación vamos a ver las formas más normales de organizar células de este tipo, de tal manera que obtengamos bloques de memoria, con la capacidad y longitud de palabra deseados. Este tipo de organizaciones van a ser similares a las que usaremos para construir, a partir de bloques básicos, unidades de memoria con las características requeridas.

6.2 ORGANIZACIÓN LINEAL O 2D Se denomina así porque existen tantos terminales de unión entre el decodificador y las posiciones de memoria como número de éstas posee la memoria. En la figura 1 se representa un esquema de organización 2D en una memoria de 2n posiciones de m bits cada una. Disponemos de un conjunto de posiciones de memoria, cada una de ellas está compuesta por m puntos de memoria (celdas básicas) para almacenar una palabra de m bits. Un único decodificador recibe la dirección de memoria formada por n dígitos binarios, y activa una de sus 2n salidas, la correspondiente a la posición de memoria especificada. Los terminales de datos de todas las posiciones se conectan entre sí al igual que las entradas de control de lectura y escritura de la memoria, como se ve en la figura. Al aparecer en las entradas de las variables de dirección una determinada combinación binaria se activa una sola salida del decodificador y las células de la posición conectada a ella son leídas o escritas según el estado de la señal de control de lectura/escritura. Así si en las líneas de dirección de memoria aparece la posición 2 (en binario: 00···010), el decodificador da la señal 1 en la salida O2 que es la tercera fila de celdas básicas, con lo que quedan seleccionadas, y será en ellas sobre las que se realice la operación de lectura o escritura.

Departamento de Informática.

Memoria central. 5

Palabra 0 0 1

Palabra 1

Dirección n bits

Deco.

2n-1

Palabra 2n-1

Datos Lectura /Escritura

Ejemplo. En la figura 2 se muestra un ejemplo de conexión de células básicas mediante organización 2D, para construir una memoria de 4 palabras con 4 dígitos por palabra. R/W Bus de dirección A1 A0

S

S O

W

W

S

Oo

W

O2 I1

W

S O

W

S O

O W

S O

W

O W

S O

W

S

S O

W

S O

O1 Io

S O

S O

W

O W

O3 S

S O

W

S O

W

S O

W

O W

d0 Bus d1 de d2 datos d3

Figura 2

Departamento de Informática.

Memoria central. 6 El número de conexiones al usar este tipo de organización para una memoria con 2n posiciones y una longitud de palabra de m dígitos binarios es: Nc = 2n + m + 1 Que para el caso del ejemplo sería 4 + 4 + 1 = 9 conexiones (4 de selección, 4 de datos y una de control). Ejemplo. Para poder comparar con la siguiente organización supongamos que tenemos una memoria de 4 Kpalabras, de 8 dígitos binarios cada palabra. El número de conexiones necesarias para esta memoria usando organización 2D será: Nc = 212 +8 + 1 = 4105 conexiones

6.3 ORGANIZACIÓN POR COINCIDENCIA O 3D. Esta organización reduce el número de conexiones entre las posiciones de memoria y el exterior, dividiendo las variables del registro de direcciones en dos grupos que se decodifican por separado y seleccionando las posiciones mediante dos entradas, una de cada uno de los decodificadores. Demostraremos que el número mínimo de conexiones se obtiene cuando ambos decodificadores son iguales, es decir, cuando cada uno decodifica la mitad de las variables de dirección. Esta organización reduce enormemente el número de conexiones entre las células de memoria y el exterior, con respecto a la 2D cuando el número de conexiones es elevado y por ello es la más utilizada por los fabricantes. Ahora la célula básica será de la siguiente forma:

selección x selección y Escritura/ Lectura

Sx datos Sy

I/O

R/W

u

Observemos que recibe dos hilos de selección. Ahora para que se seleccione la celda básica, es necesario que las dos líneas de selección estén a 1. Veamos un ejemplo de una memoria de 16 palabras de un bit en organización 3D:

Departamento de Informática.

Memoria central. 7

Escritura/Lectur

La palabra de dirección de memoria se divide en dos campos: uno irá a uno de los decodificadores, que selecciona la línea y el otro campo irá al decodificador que seleccione la columna. El punto de memoria donde ambas señales coincidan, tendrá sus dos líneas de selección a 1 y será, pues, sobre el que actuemos leyendo o escribiendo. Este esquema representa palabras de un bit. Para lograr memorias de longitud de palabra mayores, lo que se hace es superponer otras capas como la mostrada, pero sin los decodificadores, ya que la misma salida de cada uno de estos servirá para activar la misma fila o columna de todas las capas. Por esta característica se la llama organización 3D. Ejemplo. Si quisiéramos construir la memoria del ejemplo final del apartado anterior (4 Kpalabras, de 8 dígitos binarios cada palabra), pero usando organización 3D, el número de conexiones sería: Nc = 26 + 26 + 8 + 1 = 137 conexiones Demostración de que el número mínimo de conexiones se obtiene cuando cada uno de los decodificadores recibe la mitad de las variables de dirección. Llamemos X a las salidas del primer decodificador e Y a las salidas del segundo decodificador. Si n es el número de variables de dirección, podemos decodificar 2_ combinaciones diferentes, por tanto: X Y = 2n. El número de conexiones es: Nc = X + Y + m + 1 siendo m el número de bits por palabra.

Departamento de Informática.

Memoria central. 8 Ahora bien, Y = 2n / X, luego: Nc = X + 2n / X + m + 1 Diferenciando e igualando a cero encontramos el posible valor extremal: d( N c ) (-1) = 1 + 2n _ 2 = 0 dX X

con lo que :

n

2 n X = 2 , luego X = Y = 2 2

6.4 APÉNDICE. 6.4.1 Mapa de memoria de un computador. Para referenciar los datos e instrucciones, el computador genera y manipula direcciones de memoria principal. Por la propia construcción del computador, estas direcciones están limitadas a un cierto tamaño correspondiente al número de bits que es capaz de manejar ese computador en las operaciones de direccionamiento. Se llama mapa de memoria a todo el espacio direccionable por un computador. Este espacio viene determinado por el tamaño de las direcciones. Por ejemplo, si este tamaño es de n dígitos binarios, el tamaño del mapa de memoria del ordenador será de 2n palabras. 6.4.2 Ampliación del mapa de memoria. Generalmente, el computador no se equipa con toda la memoria necesaria para llenar su mapa de memoria. Para poder completar éste se comercializan unidades de memoria que se pueden unir, de la forma adecuada, a la que ya tenemos y se las llama ampliaciones del mapa de memoria.

BIBLIOGRAFÍA. Herbert Taub. "Circuitos digitales y microprocesadores". McGraw-Hill. 1983. Thomas C. Bartee. "Fundamentos de computadores digitales". McGraw-Hill. 1981. J. - P. Meinadier. "Estructura y funcionamiento de los computadores digitales". A. C. 1986.

Departamento de Informática.

Memoria central. 9

EJERCICIOS PROPUESTOS. 1. Se quiere construir una memoria de 8Kbit de capacidad, con una longitud de palabra de 8 bit, con circuitos integrados de 128 bit, 1 bit/palabra. a. Indicar el número de circuitos integrados que se necesitan. b. ¿Cuántas conexiones con el exterior tendrá el bus?.

2. Dado un circuito de memoria que tiene los terminales mostrados en la figura, con una capacidad de 2K palabras de 8 bit/palabra:

╔════════════╗ ─────>╢Selec. ║ ║ Datos╟ ─────>╢Escr/lec ║ ╚══════╤═════╝ ↑ dirección

a. Calcular cuántas líneas de dirección tiene este circuito. b. Construir a partir de él un circuito elemental de 2K palabras con dos líneas de selección S1 y S2. (En este caso, para que el circuito integrado quede seleccionado, han de estar a 1 simultáneamente S1 y S2). c. Con el circuito elemental del apartado b, construir una memoria de 32K palabras de 8 bit/palabra utilizando una configuración 2D y 3D. (examen mayo 1989). 3. Sea un circuito básico de memoria como el mostrado en el problema ¡Error! No se encuentra el origen de la referencia., con capacidad de 512 palabras de una longitud de 3 bit/palabra. Representar esquemáticamente la organización que tendría una memoria de 2K palabras con selección lineal 2D utilizando estos circuitos básicos elementales. 4. Consideremos un circuito integrado con una capacidad de 256 palabras de 4 bit. La línea de selección es SEL, las líneas de dirección DIR, DAT las líneas de datos, y WRT la línea de habilitación para escritura. a. ¿Cuántas líneas de dirección y de datos tendrá este circuito?. b. Utilizando tantos circuitos de este tipo como sean precisos, construir una memoria de 1K palabras de 16 bit/palabra con selección lineal. Dibujar el bus de datos y direcciones del circuito diseñado.

Departamento de Informática.

Memoria central. 10 c. Indicar de qué circuitos integrados se obtendrían las palabras de memoria situadas en las direcciones 160, 255 y 1023 (supuesto que los bits de selección menos significativos sean los que afectan al circuito integrado básico de partida. 5. Partiendo de una unidad básica de memoria constituida por una pastilla que permite almacenar 32 palabras de 4 bits, representar un esquema con todos los componentes necesarios para construir una memoria de 512 palabras de 24 bits/palabra. 6. Una memoria semiconductora puede construir según una estructura 4D dividiendo el registro de dirección de memoria en tres partes y teniendo tres decodificadores. Sin embargo, la célula de memoria ha de se más compleja. a. Diseña una célula de memoria para este tipo de organización. b. Haz un esquema de la organización de la memoria para un tamaño de 64 palabras de un bit. 7. Analice la función del siguiente circuito digital: ╔═══════╗ ╔══════════╗ ║ C ╟──O0───────────────────────╢A0 M ║ ║ O ╟──01───────────────────────╢A1 E ╟───D0── ║ N ╟──O2───────────────────────╢A2 M ╟───D1── ║ T ╟──O3───────────────────────╢A3 O ╟───D2── ║ A ║ . ║ R ╟───D3── ║ D ║ . ║ I ╟───D4── ║ O ║ . ║ A ╟───D5── ║ R ║ ║ ╟───D6── ║ ╟──On-2─────────────────────╢An-2 ╟───D7── ║ ╟──On-1─────────────────────╢An-1 ║ ╚═╤═══╤═╝ ╚═╤═══════╤╝ │ │ LINEA DE SELEC.│ │r/w RELOJ │ │ │ └─────RESET 1 0

8. Una memoria en su operación de lectura se comporta igual que una función lógica de variables lógicas. Las variables de entrada son reemplazadas por las variables de dirección, y las variables de salida por las líneas de datos. Siguiendo esta idea básica, implemente mediante una unidad de memoria operando en modo lectura un sumador completo.

Departamento de Informática.

Memoria central. 11 9. Se dispone de chips de 512 kbit (512 k x 1 bit) cuyo esquema es el siguiente: S Selección ┌───────────┴───────────┐ │ │ Bus de 19 hilos┤ 512 K bit ├───Dato A0 - A18 └───────────────────────┘

A partir de circuitos de este tipo diseñar una memoria de 1Mbyte. Considerando lo anterior como un único bloque de memoria, que desde el punto de vista externo es: S Selección ┌───────────┴───────────┐ │ │ Bus de 20 hilos┤ 1 M Byte ├───8 Hilos de datos A0 - A19 └───────────────────────┘

Añadirlo a un computador que ya posee un memoria de 512 k bytes, cuyo esquema es similar al anterior sólo que con 19 hilos en el bus de dirección, conectado a un bus de 21 hilos. (junio 90) 10. Disponemos de circuitos básicos de memoria con una capacidad de almacenamiento de 512 k x 1bit. Construir a partir de ellos uno de 512 k x 1byte. Tomando como bloques elementales los circuitos anteriores de 512 k x 1byte, obtener a partir de cierto número de ellos una memoria de 3 Mbytes. (febrero 91). 11. Se desea construir una memoria de 64 KB (k bytes) con bloques de 8 KB, más un cierto mecanismo de protección de lectura/escritura. Para ello, se dispone de un registro de 8 bits, cada uno de los cuales controla si es posible "escribir" en un determinado bloque de 8kB. Si está a cero el bit correspondiente no se puede escribir, si lo esta a uno, se puede escribir. En el caso de intentar escribir en un bloque sin permiso de escritura se dará una salida 1 por un terminal de error. Primeramente diseñe la memoria de 64 kB. A continuación haga las pertinentes modificaciones sobre el primero para incorporar el mecanismo de protección. (septiembre 91). 12. Una máquina posee un registro de dirección de memoria de 16 dígitos binarios. Construir la memoria de ese ordenador mediante circuitos básicos de 16 Kpalabras con longitud de palabra de 8 dígitos binarios, teniendo en cuenta que las últimas 8 Kposiciones del mapa de memoria se reservan para programas del sistema operativo, por lo que su contenido no puede

Departamento de Informática.

Memoria central. 12 ser modificado. Si se intenta escribir sobre estas posiciones, habrá que impedirlo y además generar una señal de error (ERR) que se activará en este caso. NOTA: Cuando la entrada de Escritura/Lectura vale 0 se lee de la memoria, y cuando valga 1 se escribe en ésta. 13. Un ordenador posee un mapa de memoria de 16 Mpalabras, con una longitud de palabra de 1 Byte. De este mapa de memoria se reserva una zona de 2 Mpalabras a partir de la dirección 800000H (inclusive) para usos especiales, no existiendo, por lo tanto, memoria física en esas direcciones. Tampoco existe memoria física en las últimas 4 Mposiciones. Realizar el diseño de esta memoria, para lo que se dispone de un número ilimitado de circuitos básicos de memoria de 2 y 4 Mpalabras de 8 dígitos binarios por palabra, atendiendo a un criterio de economía de medios: mínimo número de circuitos y conexiones, y sin que existan posiciones de memoria física inutilizadas. 14. Una máquina posee un registro de dirección de memoria (MAR) de 16 dígitos binarios, y un registro intermedio de memoria (MBR) de 12 dígitos binarios. La memoria central de este ordenador tiene las siguientes características: •

Entre las direcciones 6000H y 7FFFH no existe memoria física. Son direcciones reservadas para uso especial.



Las últimas 8Kposiciones del mapa de memoria se reservan para programas del sistema operativo por lo que no pueden ser modificadas, es decir, si se intenta acceder a ellas para escribir su contenido deberá ser impedido.

Construir la memoria central de este ordenador, para la que se dispone de circuitos de memoria de 8K y 16 Kpalabras de longitud de palabra 12 dígitos binarios, atendiendo a un criterio de economía de medios: mínimo número de circuitos y conexiones, y sin que existan posiciones de memoria física inutilizadas. NOTA: Cuando la entrada de Escritura/Lectura vale 0 se lee de la memoria, y cuando valga 1 se escribe en ésta.

Departamento de Informática.