memorias - OCW Usal

Anuncio
3
MEMORIAS
3.1.
Concepto de memoria
La memoria es el componente del ordenador que almacena la información que éste posee,
es decir, sus datos y programas. Es como un bloc de notas que mantiene la información mientras estamos trabajando con ella.
La memoria del ordenador está organizada en unidades de bytes, cada uno compuesto por
8 bits. No importa que tipo de información estemos almacenando; estará codificada en una
estructura particular de bits, que será interpretada de la forma adecuada al tipo de datos en
cuestión. Los mismos bytes de memoria se emplean para almacenar códigos de instrucciones,
datos numéricos, datos alfabéticos, sonidos, vídeo, etc.
Para ser capaces de trabajar con la memoria, cada unidad de bytes tiene una dirección, un
número que sólo identifica a esa unidad. Las direcciones de memoria están numeradas una a
una, empezando por cero.
Las operaciones básicas que permite una memoria son dos: escritura o almacenamiento y
lectura.
En la escritura, o almacenamiento, la memoria necesita que le suministren una información y una dirección. La operación consiste en grabar la información en la dirección especificada.
En la lectura, la memoria debe recibir una dirección. La operación consiste en recuperar
información previamente escrita en esa dirección.
36
TEMA 3 – Memorias
Por tanto, podemos ver las memorias como cajas negras, a las que hay que suministrar una
dirección y unas señales de control, que especifican la operación que se desea realizar, además de enviar o recibir el dato, o bloque de datos, correspondiente.
Los disquetes, discos duros, etc. también son dispositivos que permiten almacenar información, pero no están conectados directamente al procesador, cada byte no tiene una dirección para poderlo leer como en el caso comentado anteriormente. Por ello estos dispositivos
de memoria, llamados memoria masiva o auxiliar, serán estudiados en el tema correspondiente a los periféricos.
3.2. Características de las memorias.
En el ordenador hay dos tipos básicos de memorias, las memorias de sólo lectura, o ROM
(Read Only Memory), y las memorias de lectura/escritura, o RAM (Random Access Memory). Para poder estudiarlas vamos a introducir en este apartado una serie de conceptos que
permiten caracterizar los diversos tipos de memoria.
3.2.1 Duración de la información.
En relación a la permanencia de la información grabada en las memorias, hay 4 posibilidades:
a) Memorias permanentes: Son memorias que contienen siempre la misma información y
no pueden borrarse. Como ejemplo de este tipo de memorias se pueden citar las memorias de semiconductores tipo ROM, de las que hablaremos posteriormente.
b) Memorias Volátiles: Precisan estar continuamente alimentadas de energía. Si se corta
dicho suministro se borra la información que poseen. En contraposición están las no
volátiles, en las que la información permanece aunque se elimine la alimentación.
c) Memorias de lectura destructiva: Su lectura implica el borrado de la información, por
lo que después de leer en ellas, hay que volver a grabarlas. Un ejemplo de este tipo son
las memorias de ferrita. Memorias de lectura no destructiva son, por ejemplo, los discos y banda ma gnética.
d) Memorias con refresco: La información sólo dura un cierto tiempo. Para que no desaparezca, hay que regrabar la información de forma periódica (señal de refresco).
3.2.2 Modo de acceso.
Según el método utilizado para localizar la información tenemos:
a) Acceso aleatorio: En las memorias de acceso aleatorio se accede directamente al byte
o posición deseada, en un tiempo independiente de la dirección a la que se quiere acceder, por ejemplo las memorias RAM son de acceso aleatorio.
37
Apuntes de Informática
b) Acceso secuencial: En las memorias de acceso secuencial se llega a la posición deseada a través de una secuencia de posiciones, que depende de donde esté la información
en el momento en el que se quiere acceder a ella, por ejemplo para acceder a una información en una cinta magnética es necesario recorrer la cinta hasta encontrar la información deseada.
3.2.3 Tiempo de acceso.
Se denomina tiempo de acceso al que transcurre entre el instante en que se envía una operación de acceso a memoria y el instante en que se dispone de la primera información buscada. Según el tiempo de acceso se puede hablar de memorias rápidas o lentas, pero como eso
no es demasiado preciso, es mejor citar el tiempo de acceso, que se mide normalmente en
nanosegundos.
3.2.4. Capacidad.
Es la cantidad de información que puede almacenar una memoria.
Dado que la información se almacena en el sistema binario, la capacidad se mide en bytes.
Se utiliza el byte porque es el menor tamaño de información, a la que se puede acceder en una
operación de acceso a memoria, ya que cada posición de memoria almacena un byte. Aunque
a la hora de hablar de la capacidad de memoria, se utilizan múltiplos de él que vimos en el
tema 1 (KByte, MByte, GByte, TByte).
3.3. Tipos de memorias: RAM y ROM.
Actualmente el tipo de memorias que se emplean con carácter universal, son las memorias
de semiconductores. La primera memoria comercial de semiconductor tenía una capacidad de
64 bits y fue fabricada por IBM en 1968. Poco más tarde, en 1972, aparecieron los primeros
ordenadores de IBM con memoria principal de semiconductores. Los elementos semiconductores utilizados hasta ahora para realizar estas memorias son el Silicio (Si) y el Germanio
(Ge), pero en la actualidad se está también utilizando el Arseniuro de Galio (AsGa).
En el caso de las memorias de semiconductores, cada punto de memoria está formado por
un dispositivo electrónico denominado transistor, en el que hay dos estados de funcionamiento bien diferenciados: el estado de corte y el de saturación. Cuando el transistor está en
estado de corte no deja pasar prácticamente nada a su través, y a la salida del transistor apenas
se obtiene corriente, es lo que llamamos "0 lógico". Cuando está en estado de saturación, deja
que la corriente circule por él libremente y lo que obtenemos a la salida es un máximo de corriente que denominamos "1 lógico". Dependiendo de las señales que proporcionemos al transistor obtendremos una u otra salida, es decir, almacenaremos un 0 ó un 1.
Podemos establecer otra clasificación de las memorias dependiendo de que la información
que contienen, pueda o no, modificarse después de haberla introducido.
38
TEMA 3 – Memorias
3.3.1. Memorias de sólo lectura: ROM
Como indica su propio nombre son memorias que sólo permiten la lectura, también son de
acceso aleatorio y no volátiles.
Este tipo de memorias se utilizan para guardar una serie de programas que vienen con el
ordenador desde fábrica, como son los contenidos en la ROM-BIOS (Basic Input-Output
System). En ella básicamente están unos programas de diagnóstico, encargados de chequear el
hardware para comprobar que todo es correcto antes de arrancar. Además, tiene el programa
de arranque, encargado de cargar el sistema operativo en memoria y, los programas para controlar los periféricos más comunes: unidades de disco, teclado, puertos serie y paralelo, tarjeta
gráfica, etc. Algunos periféricos requieren tener una memoria ROM para contener el programa encargado de gestionarlos, por ejemplo las tarjetas VGA cuentan con una memoria ROM
de esas características ya que el BIOS sólo controla tarjetas CGA o MDA.
Atendiendo a la manera en que son grabadas se pueden distinguir varios tipos:
a) ROM: La palabra ROM puede ser aplicada a cualquiera de estos tipos de memoria, pero
en este caso vamos a reservarla para memorias grabadas de fábrica en las que los transistores están dispuestos de la manera necesaria para que se lean los valores que debe contener.
b) PROM (Programable Read Only Memory): Este tipo de memorias son similares a las anteriores. Son memorias de sólo lectura pero en vez de grabarse en fábrica, pueden grabarse, aunque una sola vez. Una vez grabada la información no podemos cambiarla, tan sólo
leerla.
Cada punto de memoria va a estar formado por un transistor y un fusible. Dejando pasar
una corriente suficiente a través del fusible, este se funde logrando su destrucción. Así
pues, el usuario de tal PROM puede destruir los fusibles cuando sea necesario, dejando
sólo transistores en las posiciones necesarias para establecer el almacenamiento de memoria deseado.
c) EPROM (Erasable Programable Read Only Memory): En este caso, la información puede
ser modificada por el usuario un número limitado de veces. Para grabar la información se
necesita un aparato especial, llamado grabador de EPROM. Antes de regrabar una
EPROM hay que borrar el contenido anterior, para ello se emplea luz ultravioleta y posee
una ventana que permite el paso de la misma, normalmente esta tapada para evitar un borrado accidental.
El tiempo empleado para escribir, en este tipo de memorias, es mucho mayor que para leer, y como acabamos de ver, el borrado y el grabado se tienen que hacer fuera del sistema
informático, siendo esta operación tan sólo posible un número limitado de veces.
d) EEPROM (Electricaly Erasable Programable Read Only Memory): Se diferencian de las
anteriores en que pueden borrarse y grabarse en el mismo sistema informático y, en este
caso, tanto la operación de borrado como de escritura se hace mediante el paso de corriente eléctrica. La información es borrada simultáneamente en todas las células de memoria.
39
Apuntes de Informática
Actualmente la ROM-BIOS de muchos ordenadores viene en formato Flash, esta es una
memoria EEPROM, que permite por tanto que el usuario actualice el contenido de la
misma sin necesidad de disponer de aparatos especiales, y sin abrir siquiera el ordenador,
no obstante, son memorias de sólo lectura, para operaciones normales no se puede escribir
en la memoria, se necesita un programa especial para poder hacerlo.
3.3.2. Memorias de lectura/escritura: RAM
Son memorias de lectura/escritura, acceso aleatorio y volátiles. La memoria principal de
un ordenador es RAM, ya que la ROM al no permitir la escritura tiene un uso limitado. El
sistema operativo y los programas y datos del usuario se almacenan en memoria RAM para
poder ser usados por el procesador.
Podemos distinguir dos tipos de memorias RAM:
a) DRAM (Dinamic Random Access Memory): Son memorias en las cuales el estado (0 ó
1) se almacena en un dispositivo electrónico cuya forma de funcionamiento podemos
compararla con un condensador que tiende a descargarse. Por ello, cada cierto tiempo,
entre 1 y 18 millones de veces cada segundo, hay que enviar una señal, que se denomina señal de refresco, que recuerde a la memoria la información que posee, ya que
ésta, se pierde poco después de haberse introducido.
El microprocesador es el que da las órdenes oportunas para que la señal de refresco
llegue a la memoria. La frecuencia de esta señal de refresco tiene que ser suficientemente alta para que no de tiempo a que se pierda la información contenida en la memoria.
La capacidad de las memorias DRAM va de 64Kbit a 32Mbit (la capacidad de los
chips de memoria se suele medir en bits y no en bytes). El tiempo medio de acceso de
esta memoria oscila entre 80ns y 50ns. Actualmente no se emplean directamente los
chips de memoria, sino que se agrupan varios en una placa, con un conector estándar
para poder colocarse mejor; son los llamados SIMM (Single Inline Memory Module)
que han existido de dos tipos: de 30 contactos (casi en desuso) y de 72 contactos.
Posteriormente aparecieron los llamados DIMM (Dual Inline Memory Module), que
tienen 168 contactos y su capacidad varía desde 8Mb hasta 128 MB.
Las figuras siguientes representan los distintos tipos de módulos de memoria que se
han existido y existen, así como los tamaños del bus de datos y direcciones de cada
uno, en el caso de las memorias dinámicas la memoria direccionable es el doble del
tamaño del bus de direcciones, ya que las direcciones se dividen en filas y columnas y
se envían consecutivamente ambas por el mismo bus. El tamaño del bus de direcciones
indica el máximo tamaño que puede tener una de dichas memorias, también las hay de
menor capacidad, en ese caso no se utilizan las líneas de direcciones altas del bus.
40
TEMA 3 – Memorias
Tipos de memorias DRAM
SIMM (30 contactos)
Bus de datos: 8 bits
Bus de direcciones: 11 bits
Memoria direccionable: 4MB
SIMM (72 contactos)
Bus de datos: 32 bits
Bus de direcciones: 12 bits
Memoria direccionable: 16MB
DIMM (168 contactos)
Bus de datos: 64 bits
Bus de direcciones: 14 bits
Memoria direccionable: 128MB
DDR (184 contactos)
Memoria direccionable: 256MB
RIMM (168 contactos)
Memoria direccionable: 512 MB
Módulo de continuidad
b) SRAM (Static Random Access Memory): La diferencia fundamental con las memorias
anteriores es que no necesitan refresco, para ello emplean varios transistores por bit, lo
cual reduce la capacidad de la memoria y hace que sean más caras que las DRAM (a
igualdad de capacidad), a cambio son más rápidas que las DRAM, van de 50ns a 15ns.
Por ello se emplean en la memoria caché del ordenador que explicaremos en el apartado
siguiente.
En la evolución de la memoria DRAM nos encontramos con la SDRAM (Synchronous
DRAM). Utiliza como modo de encapsulado el módulo DIMM, consiguiendo con ella que la
memoria esté sincronizada con el bus de datos y con el reloj del procesador, incrementándose
así, la tasa de trasferencia de datos, ya que el procesador sabe perfectamente en que ciclos
puede realizar lecturas y escrituras. Además admite que se envíen comandos en los que se
especifica que bancos refrescar o actualizar. La diferencia básica con el anterior de modelo es
que la memoria es ahora la que espera para establecer sincronía con el resto del sistema
41
Apuntes de Informática
Basada en la tecnología SDRAM, nos encontramos con la memoria DDR (Double Data
Rate). Este tipo utiliza módulos DIMM, aunque con alguna diferencia, como es la variación
del número de ranuras existentes en el módulo: se dispone de hasta 184 contactos frente a los
168 presentes en un DIMM convencional. La novedad más importante que presenta es la de
utilizar un mismo ciclo de reloj para realizar dos trasferencias al bus de datos en lugar de una,
pudiendo alcanzar velocidades de trasferencia de datos de hasta 2.1 GB/s. La plataforma
Atlon de AMD se ha decantando por ella.
Intel, sin embargo, se ha decantado por la utilización de la tecnología Direct Rambus. Los
módulos que utiliza esta tecnología se denominan RIMM, existiendo de hasta 512 MB. Son
módulos de 168 pines. Utiliza una tecnología de bus y, por ello, no podemos dejar ningún slot
vacío, ya que si lo hacemos el canal queda abierto y no funciona. Para que funcione correctamente existen unos módulos sin memoria, llamados módulos de continuidad, que lo único que
hacen es cerrar el canal.
Terminador
de Canal
Controlador
Canal
Canal
Conectores
Pueden ser de doble cara o de una sola cara, y admiten cualquier número de chips, hasta
un máximo de 32 soportados por canal. En este caso las velocidades de trasferencia de datos
pueden llegar hasta 1.6 GB/s.
Finalmente conviene citar una pequeña memoria (64 o 128 bytes) que tiene el ordenador
de tipo CMOS (bajo consumo), que aunque es memoria RAM, no pierde su contenido, gracias
a que es alimentada por una pila. Se emplea para mantener un reloj en tiempo real (que sigue
funcionando gracias a la pila incluso con el ordenador apagado) y para almacenar la configuración del ordenador: cantidad de memoria, tipo de discos que tiene, etc. Para almacenar dicha
información hace falta memoria que permita escribir, ya que el usuario puede hacer cambios
en la configuración, y por otra parte hace falta que no se pierda el contenido al apagar el equipo, la solución es emplear memoria RAM conectada a una pila. Esta memoria esta contenida
dentro de un chip y no forma parte del mapa de memoria del ordenador, ya que para acceder a
ella se emplean operaciones de Entrada/Salida.
42
TEMA 3 – Memorias
3.4. Jerarquía de la memoria.
Actualmente la velocidad de los procesadores no ha parado de aumentar, mientras que la
velocidad de la memoria lo ha hecho en una cuantía mucho menor. La solución al problema
que plantea esto, es hacer que el procesador espere por la memoria, aunque así se desaprovecha la velocidad del mismo. Para resolverlo se ha buscado otra solución, que consiste en poner una pequeña cantidad de memoria rápida y cara (SRAM), llamada memoria caché, y una
cantidad mayor de memoria lenta y barata (DRAM), llamada memoria principal, y que el procesador mantenga una copia de los datos que más utiliza en la memoria caché.
Para que el esquema anterior funcione, es preciso que exista un controlador de caché, encargado de vigilar las peticiones de datos del procesador a la memoria. Parte de la memoria
caché se empleará para guardar las direcciones de los datos y el resto para los datos. El controlador compara la dirección de memoria pedida por la CPU con las que contiene la caché, y
si el dato está en la misma, da la orden para leer de la cache , en caso contrario, el dato se lee
de la memoria principal, empleando los estados de espera que sean necesarios, y se copia en
la memoria caché, para que cuando lo necesite la CPU se encuentre con más rapidez. Para
poder hacer esto, el controlador de caché lleva la cuenta de qué datos de la caché se han utilizado últimamente, e introduce el nuevo dato en lugar del menos utilizado recientemente.
Con este sistema y tamaños adecuados de memoria principal y memoria caché (por ejemplo 16Mb de memoria principal y 256Kb de memoria caché) se puede conseguir que el 90%
de las veces, el dato solicitado por el procesador esté en la memoria caché y lograr con un
coste reducido, un sistema que tiene el 90% de velocidad que el equivalente con memoria
rápida completo.
Los procesadores modernos funcionan interiormente a mayor velocidad que la que emplean en su comunicación con la memoria, por ejemplo un Pentium a 200Mz, funciona a
200MHz internamente, pero se comunica con la memoria externa (sea principal o caché) a
sólo 66MHz. En estas condiciones el rendimiento del procesador se ve mermado por el de la
memoria, aunque sea rápida. Por ello, se incluye una pequeña cantidad de memoria caché
interna en el procesador (en el caso del Pentium 16Kb, 8Kb para datos y otros 8Kb para código) que funciona a la misma velocidad que él mismo. En ese caso la caché interna al procesador se llama caché de nivel 1 (abreviadamente L1) y la externa de nivel 2 (o L2).
La siguiente generación, por ejemplo el Pentium II, avanza incluso un poco más incluyendo la memoria caché L2 dentro del procesador, lo que permite que la velocidad de comunicación de la misma con el procesador, sea más elevada que la del bus del sistema (por ejemplo
200MHz en lugar de 100MHz).
En el extremo opuesto también se pueden conseguir mejoras. Supongamos que tenemos
un ordenador con 16Mb de memoria principal y queremos usar un programa que requiere
16Mb de memoria (entre datos y código), pero el sistema operativo emplea 4Mb de memoria.
Aparentemente no se puede, pero hay una técnica para conseguirlo. Se trata de emplear parte
de la memoria auxiliar como si fuera memoria RAM, la parte de los datos o el programa que
menos se use se escribe en disco, y cuando se necesite, se lleva otra vez a memoria, escribiendo en su lugar en el disco los datos menos usados que estaban en la memoria. Con este sistema el rendimiento se degrada, ya que el tiempo medio de acceso de un disco es de milisegundos, frente a los nanosegundos del tiempo de acceso a la memoria, pero al menos, se puede
utilizar el programa, cosa de otro modo imposible, Además, salvo que se requiera mucha más
43
Apuntes de Informática
memoria de la disponible físicamente, el rendimiento no disminuye tanto, por ejemplo, si tenemos un procesador de textos que tiene un módulo que permite corregir la ortografía, mientras no lo utilicemos no hace falta que esté físicamente en memoria, de modo que si el programa necesita 16Mb de RAM, es posible que las opciones que estemos usando usen sólo
8Mb, el resto se puede dejar en disco hasta que sea necesario.
Resumiendo, para conseguir un elevado rendimiento de un procesador hace falta jerarquizar la memoria: tener una pequeña cantidad de memoria muy rápida (aunque sea muy
cara), una cantidad pequeña de memoria rápida y cara, una cantidad relativamente grande de
memoria lenta y barata y, además, un espacio de disco mayor que la memoria, que será mucho
más lento que la misma, pero de coste también mucho más reducido por bit. Con este sistema
se obtiene un rendimiento menor que si toda la memoria necesaria fuera muy rápida, pero a un
coste mucho menor.
3.5. Funcionamiento de la memoria.
La forma en que esta organizada una memoria principal es la siguiente: está dividida en N
palabras, donde N es generalmente una potencia de 2, y a cada palabra se le asigna una dirección, o posición en la memoria. Cada palabra tiene el mismo número de bits, llamados longitud de palabra. Dicha longitud es también una potencia de 2, puede ser 8, 16, 32, etc. Por
compatibilidad con los procesadores anteriores las posiciones de memoria se suelen numerar
siempre de 8 en 8 bits, con independencia de que el procesador pueda acceder directamente a
16 bits, o más.
Las direcciones, o números de dirección en la memoria, van consecutivamente. Se suelen
expresar en hexadecimal partiendo de 00....000 y llegando hasta la dirección más grande posible que será la FF....FFF. El procesador puede leer o escribir una palabra en cada posición de
memoria.
Es muy importante entender la diferencia entre el contenido de una dirección de memoria
y la dirección en sí misma. La memoria es como un gran gabinete con muchos cajones, los
cuales corresponden a las direcciones de memoria. En cada cajón hay una palabra y la dirección de cada palabra se escribe en la parte externa del cajón. Para obtener el contenido de un
cajón debemos saber cual es, es decir debemos tener la dirección, pero el contenido es lo que
hay dentro del cajón que no tiene nada que ver con su dirección.
Los chips de memoria tienen exteriormente un conjunto de patas con los que pueden ser
conectados al resto de componentes del ordenador. Se pueden dividir en tres grupos fundamentales:
a) Bus de direcciones: Este conjunto de patas contiene la dirección en forma de número binario del dato que se busca, se conectan a otro conjunto de patas similares que tiene el
procesador, cuando éste quiere leer un dato coloca en el bus de direcciones la dirección
del dato y espera a que la memoria se lo envíe por el bus de datos que se explica a continuación.
b) Bus de datos: Estas patas se conectan al bus de datos del procesador y por ellas circulan
los datos entre ambos. Por ejemplo, si un chip de memoria contiene un bus de datos de 1
44
TEMA 3 – Memorias
bit (es decir una sola pata) en cada celda de memoria de ese chip se puede almacenar sólo
un bit; si el procesador accede a la memoria de 8 en 8 bits, será preciso poner 8 chips similares y conectar el bus de datos de cada uno a cada una de las 8 patas del bus de datos
del procesador, así cada dato de 8 bits que maneje el procesador tendrá cada uno de sus
bits en un chip distinto.
c) Señales de control: Sirven para controlar el proceso, por ejemplo una de ellas llamada
W / R sirve para que la memoria sepa si el procesador quiere leer o escribir.
Para permitir ampliar posteriormente la memoria, normalmente el ancho del bus de direcciones del procesador es mayor que el ancho del bus de direcciones de los chips de memoria,
en ese caso las líneas superiores del bus de direcciones del procesador tienen que pasar por un
decodificador, que se encarga de seleccionar el chip correcto que contiene el dato. Por ejemplo supongamos que el procesador tiene un bus de direcciones de 16 bits y que empleamos
para la memoria chips con un bus de direcciones de 14 bits y 1 bit para el bus de datos. El
procesador puede acceder a 64Kb, mientras que los chips de memoria tienen capacidad de
sólo 16Kbits, juntando 8 chips obtenemos 16Kb y con 4 grupos de 8 chips llenamos los 64Kb,
en ese caso los 14 bits bajos del bus de direcciones se conectan a los 14 bits del bus de direcciones de todos los chips. Los 2 bits altos del bus de direcciones se conectan al decodificador
que saca 4 señales, una cuando dichos bits son 00, otra cuando son 01, otra para 10 y finalmente otra para 11. Cada una de las señales del decodificador va a parar a una pata, llamada
chip select, de los 8 chips de cada grupo, cada chip está seleccionado sólo cuando recibe la
señal chip select.
Leyendo de la memoria
Cuando el procesador quiere acceder a un dato, es decir, para leer un dato de la memoria,
realiza la siguiente secuencia:
1. Coloca la dirección del dato en el bus de direcciones.
2. Coloca en la pata W / R un 0 para indicar que desea leer.
3. Espera un tiempo prefijado a que la memoria coloque en el bus de datos el dato en cuestión.
4. Lee el dato del bus de datos y da por concluida la secuencia.
Como se ha dicho arriba las posiciones de memoria se numeran en bytes, sin embargo el
procesador puede acceder a datos de tamaño mayor, por ejemplo de 16 bits, hay dos posibles
alternativas para esta situación, una es colocar en la parte baja del número leído el contenido
de la posición baja de memoria y en la parte alta el de la posición alta, por ejemplo si la posición de memoria 1234 contiene el número 56 y la posición 1235 contiene el 78, al leer un dato
de 16 bits de 1234 se obtiene 7856 (todos los números están en hexadecimal). Éste es el comportamiento de los procesadores de Intel, pero existen otros, por ejemplo la familia 68000 de
Motorola, que emplean el inverso, es decir en el caso anterior un procesador 68000 leería de
memoria el dato 5678.
45
Apuntes de Informática
Escribiendo en memoria
Cuando el procesador transfiere un dato hacia la memoria, es decir, cuando se escribe en
la memoria, se produce la siguiente secuencia:
1. Coloca la dirección del dato en el bus de direcciones.
2. Coloca en la pata W / R un 1 para indicar que desea escribir.
3. Coloca el dato en el bus de datos.
4. Espera un tiempo prefijado a que la memoria lea el dato del bus de datos y almacene dicho
valor en la dirección pedida, pasado ese tiempo da por concluida la operación.
El esquema para escribir datos multibyte es el mismo que emplea a la hora de leer, por
tanto al escribir un dato de 16 bits y posteriormente volverlo a leer se obtiene el mismo valor,
con independencia del orden en que se guarde en memoria (bajo-alto o alto-bajo), ya que se
emplea el mismo orden a la hora de leerlo.
46
TEMA 3 – Memorias
EJERCICIOS
1. Calcula el número de bits de memoria de un ordenador con direcciones de 20 bits y palabras de 12 bits.
2. Para una aplicación se requiere una memoria de por lo menos 100.000 palabras. ¿Cuál es el
tamaño mínimo del bus de direcciones que permitirá tener acceso a cada palabra de forma
unívoca?
3. Los sociólogos pueden obtener tres respuestas posibles a una pregunta de una encuesta: Si,
No y No opina. Una compañía ha decidido realizar un ordenador para procesar los datos de
la encuesta. Este ordenador tiene memoria ternaria, es decir, la unidad de información es el
trit, que puede adoptar 3 estados, 0, 1 y 2. ¿Cuántos trits se necesitan para almacenar un
número de 6 bits? Obtén una expresión para el número de trits necesarios para representar
n bits.
4. Cierto ordenador posee 262.144 bytes de memoria principal, ¿por qué eligió el fabricante
dicho número en lugar de uno más fácil de recordar como 250.000?
5. Si un ordenador tiene 24Mb de memoria principal y palabras de 16 bits, ¿cuántos bits necesita tener en el bus de direcciones?
6. ¿Qué opinas de un ordenador con las siguientes características: 2Mb de memoria caché,
640Kb de memoria principal y 20Mb de disco duro? Cuenta el porqué de las cosas refiriéndote a jerarquías de memorias.
7. En un ordenador las direcciones son de 24 bits y los datos de 8 bits. Calcula la capacidad
máxima de memoria de dicho ordenador en bytes y en Mb.
47
Descargar