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