MEMORIA Sistemas Digitales INTRODUCCION Empezamos por hablar de lo que todo el mundo conoce por memoria. La mayoría de las personas no conocen más que las memorias de almacenamiento externo, como por ejemplo el disco duro o los disquetes, y la memoria RAM debido a que los juegos necesitan una cantidad especifica y ésta bien indicada en la parte trasera de la caja. Por lo demás los PCs poseen otras memorias mucho más importantes y de vital importancia. Empecemos por intentar definir cuanta memoria es suficiente para un equipo. La cantidad justa varía en relación al tipo de trabajo que realiza el ordenador y de las aplicaciones de software que utilice. Así, por ejemplo, aunque la cantidad mínima de RAM para W95 es de 8 Mbytes, dicho sistema operativo (al igual que su hermano mayor, Windows NT) sólo comienza a trabajar de forma eficaz a partir de los 16 Mb. De hecho, el trabajo con los modernos procesadores de texto y hojas de cálculos requiere como mínimo 12 Mb. Sin embargo, los sistemas equipados con 32 Mb se han convertido en sistemas de gama baja para desarrolladores de software y de sistemas operativos, en tanto que los utilizados por las empresas de artes gráficas y multimedia necesitan al menos 64 Mb de memoria, y ya es normal que lleguen a tener 128 Mb o más. La memoria es una parte imprescindible de los ordenadores, ya que sin ella, se pueden dar una infinidad de problemas como por ejemplo la relentización del arranque del sistema operativo, errores que aparecen con frecuencia acusando la carencia de memoria, e incluso hay veces que no se pueden ejecutar programas hasta que previamente se haya cerrado una aplicación anteriormente en uso para liberalizar recursos de la memoria. Sin embargo, en un equipo con suficiente memoria es posible incluso imprimir varios documentos mientras se trabaja con otro programa. En definitiva, la memoria es el componente que más influye en el tipo y cantidad de aplicaciones que podemos ejecutar (aunque no directamente en su velocidad de ejecución), ya que el ordenador usa la RAM (Random Access Memory, o memoria de acceso aleatorio) para mantener provisionalmente las instrucciones y datos necesarios para completar las tareas, lo que permite a la CPU o procesador acceda muy rápidamente a estos. En términos prácticos, esto significa más trabajo acabado y menos tiempo de espera a que el ordenador termine sus operaciones. Una de las primeras cosas que hay que tener en cuenta es la marca de la memoria, ya que una buena marca significa una memoria fiable. Lo principal a tener en cuenta es la calidad de los chips utilizados, sean de DRAM o de otro tipo; verificando que fueron fabricados por una firma fiable (como IBM, Hitachi, Micron, Motorola, Nec, Samsung o Toshiba, Ya que se trata de los mayores suministradores de memorias en el mundo). Oreo punto de interés debería ser la edad de los chips, que en el caso ideal debería ser inferior a un año. ¿QUÉ ES LA MEMORIA? La memoria es el órgano que almacena la información. Las operaciones básicas que se van a efectuar con las memorias son la escritura y la lectura. • La escritura o almacenamiento consiste en grabar los datos en una determinada posición. • La lectura consiste en obtener la información contenida en una posición determinada. 1 La capacidad de las memorias suele darse en octetos o Bytes, es decir, 8 bits. Las medidas de capacidad típicas son • Kilo K (1024 Bytes) • Mega M (1024 kilobytes) • Giga (1024 MegaBytes) JERARQUIA DE MEMORIAS. Se pueden catalogar las memorias en función de los siguientes factores: • Coste por bit • Tiempo de acceso a la información. • Capacidad. El coste por bit decrece rápidamente al aumentar el tiempo de acceso, y por otro lado, a menor velocidad de acceso mayor capacidad. Obviamente, lo ideal es gran capacidad de almacenamiento, tiempo de acceso pequeño y precio reducido. Por ello, la memoria está estructurada en diferentes niveles, siguiendo un criterio jerárquico en función de la probabilidad de uso. Así unos datos poco utilizados estarán almacenados en un nivel jerárquico bajo, de acceso lento con gran capacidad de almacenamiento. Dado que la utilización de la infamación va variando según las necesidades de los usuarios debe producirse un continuo movimiento ascendente y descendente de la información, de tal forma que en los niveles superiores se encuentre disponibles aquellos datos que vayan a ser usados por la unidad central de procesos. En la siguiente tabla se recoge de modo orientativo un típico sistema jerárquico de memoria. JERARQUIA Capacidad en octetos 6−200 8k−512k 1M − 1G 128M−20G Registros Mem.cache Mem.principal Mem.expandida Mem.secundaria por 50M−1G disco Mem.auxiliar por disco 50M−10G Mem.auxiliar por cinta 300k − 8G Tiempo de acceso 1−10 ns 10−30 ns 30−100 ns 100−200 ns Tipo Acceso elemental RAM RAM RAM RAM Palabra. Palabra. Palabra. Varias Palabras. 10 ms A.Directo Sector. 30 ms Minutos A.Directo A.Secuencial Sector. Registro. FUNDAMETOS DE LAS MEMORIAS Una memoria se compone de los siguientes elementos básicos: • El medio o soporte donde se almacenan los datos (ceros o unos). • Un trasductor que coloque en el soporte el dato deseado o que detecte su valor actual. • Un mecanismo de direccionamiento, que permita leer o grabar la información en lugar y tiempos deseados. MEDIO O SOPORTE 2 Para que un medio pueda almacenar datos binarios, ha de cumplir tres condiciones: • Ha de presentar dos estados estables, caracterizados por una magnitud física. • Se ha de poder pasar de un estado a otro aplicando una señal externa. • Se ha de poder detectar el estado existente en todo momento. Los soportes pueden ser discretos o continuos. En el primer caso un dispositivo físico individual almacena cada bit. En el segundo, se almacenan unos bits a continuación de otros en un medio continuo. En general, los medios discretos son más caros, pero requieren trasductores más sencillos y el acceso a los datos es más rápido y simple. En función del tiempo que los datos permanecen grabados se puede efectuar la siguiente clasificación para la memoria: • Duradera: los datos se mantienen de forma permanente, mientras no se realice una operación de escritura. Se dice que la memoria es no volatil. • Volátil: la información desaparece sé de deja de suministrar energía a la memoria. • Con refresco: aunque la memoria este alimentada, los datos se van degradando llegando un momento en que no se pueden leer correctamente. Para que sean útiles, deben refrescarse periódicamente. • De lectura destructiva: la lectura implica el borrado de la información, por lo que cada vez que se realiza una lectura debe volverse a grabar el dato. • Permanente o de solo lectura: contienen siempre la misma información y no pueden borrarse. En contraposición están los soportes de lectura escritura, que se puede grabar cuantas veces se quiera. Una situación intermedia son aquellas que requieren de un proceso especial para ser borradas. TRASDUCTOR Los trasductores son dispositivos generalmente costosos, por lo que debe intentar reducir su número, sin comprometer el tiempo de acceso a los datos. En función de los trasductores pueden hacerse dos grupos de memorias: • Memorias estáticas: el trasductor esta físicamente unido al soporte, existiendo un cableado que emite acceder al dato deseado. Es el caso de las memorias de semiconductor. • Memorias dinámica: el punto de memoria debe posicionarse frente al trasductor para poder ser leído o grabado. En general, los trasductores de las memorias dinámicas trabajan con niveles de señal bajos, por lo que son mas caros que los fijos. Sin embargo, la relación de numero de bits por sensor es mucho más alta, por lo que al final el coste por bit es inferior. MECANISMO DE DIRECCIONAMIENTO La funcion del mecanismo es seleccionar el punto de memoria deseado. Puede establecerse la clasificación siguiente: • Direccionamiento en memorias estáticas: direccionamiento y cableado. En una memoria estática el mecanismo de direccionamiento es inherente a su propia construcción. El cableado de los trasductores permite activar el punto de memoria deseado. Por eso se habla de direccionamiento cableado. Se considera que la memoria tiene palabras de n bits y que para indicar la dirección buscada se necesitan m bits, de forma que 2m sea igual o mayor que el tamaño total de la memoria. Este tipo de acceso se 3 llama acceso por palabra y el tiempo de acceso es fijo. Estas memorias reciben también el nombre de RAM. Tenemos dos tipos de direccionamiento: • Direccionamiento 2D • Direccionamiento 3D • Direccionamiento en memorias dinámicas: La técnica más empleada consiste en empaquetar la información en bloques, a los que se añade una cabecera que incluye el identificador del bloque. Estas cabeceras consumen partes de los puntos de direccionamiento, por lo que habrá una capacidad bruta de almacenamiento y una capacidad neta, que solo tenga en cuenta los datos. Por lo tanto, estas memorias se utilizan para acceder a bloques completos y no a posiciones individualizadas. Es el tipo de acceso por bloques. Dado que el soporte es continuo, es necesario disponer de una señal de sincronismo que permita diferenciar puntos de memoria discontinuos. Por ultimo se pueden establecer dos tipos de acceso: • Acceso secuencial, donde solo existe un trasductor fijo. El medio se desplaza hasta alcanzar la posición deseada. Un ejemplo es la cinta magnética. • Acceso directo, donde puede haber un trasductor móvil que se desplaza hasta alcanzar una determinada posición del soporte, o varios que se reparten distintas zonas del soporte. No obstante, el acceso dentro de cada zona es secuencial. Un ejemplo son los discos. • Memorias asociativas o CAM: La escritura se hace mediante direccionamiento cableado, pero la lectura es por contenido. Para ello, se suministra un dato y la memoria comprueba simultáneamente la concordancia de dicho dato con todos los contenidos almacenados, suministrando la dirección de coincidencia o un contenido asociado a ella. Organización de las memorias. Aunque hemos progresado desde la simple memoria de 1 bit de la figura 3−25 a la de 8 bits de la figura 3−27(b), no podemos seguir por este camino, debido a la falta de patas en las pastillas. Cada biestable requiere dos patas, D y Q, además de las de control compartidas por todos. Para construir memorias grandes se requiere una organización distinta. 4 Fig. 3−27. (b) Circuito integrado 74273 con biestables. Lo que se necesita es un diseño en que el numero de patas crezca en relación logarítmica con la capacidad de memoria, en lugar de hacerlo en forma lineal. Una organización de memorias muy extendida que cumple ese criterio es la de la figura 3−28. Este ejemplo ilustra una memoria de cuatro palabras de tres bits. Cada operación lee o escribe una palabra completa de 3 bits. Aunque la capacidad de esta memoria de 12 bits es algo mayor que la de nuestro registro de 8, necesita menos patas y, lo que es más importante, el diseño se generaliza fácilmente para memorias grandes. Aunque a primera vista la memoria de la figura 3−28 parece complicada, en realidad es bastante simple, debido a su estructura regular. Tiene ocho líneas de entrada y tres salida. 5 De las de entrada, tres son de dato: DE0, DE1 Y DE2; dos de dirección: DIR0, Y DIR1; y tres de control: CS para seleccionar la pastilla, RD para distinguir la lectura de la escritura y OE para permitir la salida. Las líneas de salida son para los datos: DS0, DS1, y DS2. En principio, podía ponerse esta memoria en un chip de 14 patas, incluyendo la alimentación y la tierra, frente a las 20 del registro de ocho biestables. Se necesita una lógica externa que ponga CS en alto para seleccionar la pastilla, así como para poner RD a alto (1 lógico) para leer, o abajo (0 lógico) para escribir. Las dos líneas de dirección deben ajustarse para que indiquen cuál de las cuatro palabras de tres bits ha de leerse o escribirse, pero en las de salida aparece la palabra seleccionada. En una escritura, en cambio, no se usan las líneas de datos de salida, pero se recoge el dato de las de entrada y se guarda en la posición de memoria seleccionada. Examinemos ahora de cerca la figura 3−28 para ver cómo funciona. Las cuatro compuertas AND de selección de palabra de la izquierda forman un decodificador. Los inversores de sus entradas se han ubicado de manera que se habilite (salida en alto) cada una de las compuertas con una dirección distinta. Cada compuerta alimenta una línea de selección de palabra, la de arriba para la palabra 0, la siguiente hacia abajo para la 1, etc. Cuando se seleccione la pastilla para escritura, la línea vertical etiquetada estará en alto, habilitando a una de las cuatro compuertas de escritura, según la línea de selección de palabra que esté en alto. La salida de la compuerta de escritura mueve todas las señales CK de la palabra seleccionada, cargando los datos de entrada en los flip−flops de la misma. Sólo se escribe si CS está en alto y RD en bajo, y sólo en la palabra seleccionada por DIR0 y DIR1; las restantes permanecen sin ser alteradas. La lectura es similar a la escritura. La decodificación de direcciones es idéntica. Pero ahora la líneaesté en bajo, por lo que se deshabilita todas las compuertas de escritura y no se modifica ningún biestable. En cambio, la línea de selección de palabra elegida habilita las compuertas AND conectadas a las salidas Q de la palabra seleccionada. Por tanto, una palabra pasa sus datos a las compuertas OR de cuatro entradas de la parte inferior de la figura, mientras que a las otras tres palabras les pasan ceros. En consecuencia, la salida de las compuertas OR es idéntica al valor guardado en la palabra seleccionada. Las tres palabras no seleccionadas no contribuyen a la salida. 6 7 Fig. 3−28. Diagrama lógico de una memoria de 4 x 3. Cada fila es una de las cuatro palabras de tres bits. Las operaciones de lectura y escritura siempre leen o escriben una palabra completa. Aunque podría haberse diseñado un circuito en que las salidas de las compuertas OR se llevaran directamente a las líneas de salida, a veces eso causa problemas. En particular, se ha señalado que las líneas de datos de entrada y de salida son diferentes, pero en las memorias reales son las mimas. Si se hubieran conectado las compuertas OR a las líneas de salida, la pastilla intentaría sacar datos, es decir, forzar cada línea a un valor especifico, incluso en escritura, interfiriendo en esa forma con los datos de entrada. Por esta razón, es deseable tener algún modo de conectar las compuertas OR con las líneas de datos de salida en las lecturas, pero desconectarlas por completo en las escrituras. Lo que necesitamos es un conmutador electrónico que pueda abrir o cerrar una conexión en unos pocos nanosegundos. Por fortuna tales conmutadores existen. La figura 3−29(a) muestra el símbolo de lo que se llama un buffer no inversor. Tiene una entrada de dato, una salida de dato, una salida de dato y una entrada de control. Cuando la entrada de control está en alto, el buffer actúa como un hilo eléctrico, como se ve en la figura 3−29(b). Cuando la entrada de control está a nivel bajo, actúa como un circuito abierto como se muestra en la figura 3−29(c) ; es como si alguien hubiera desconectado la salida de datos del resto del circuito con cortacables, la conexión puede restaurarse en pocos nanosegundos volviendo a poner la entrada de control a nivel alto. Fig. 3−29. (a) Buffer no inversor. (b) Efecto de (a) cuando el control está a nivel alto. (c) Efecto de (a) cuando el control está a nivel bajo. (d) Buffer inversor. La figura 3−29(d) muestra un buffer inversor, que actúa como un inversor normal cuando el control está en alto y desconecta la salida cuando esta en bajo. Ambos tipos de buffers son dispositivos triestado, porque pueden dar 0, 1 o nada (circuito abierto). Los buffers también amplifican las señales, por lo que pueden manejar muchas entradas a la vez. Por esta razón, se les usa en circuitos, aunque no se necesiten sus propiedades de conmutador. Volviendo al circuito de memoria, podemos ahora entender para que sirve los buffers no inversores de las líneas de salida. Cuando CS, RD y OE esté en alto, la señal de habilitación de salida también estará es alto, habilitando los buffers y poniendo una palabra en las líneas de salida. Cuando cualquiera de las señales CS, RD, o OE esté en bajo, las salidas de datos se desconectarán del resto del circuito. Propiedades de las memorias. 8 Lo mas interesante de la memoria de la figura 3−28 es que se generaliza con facilidad para tamaños mayores. Tal como está dibujada, la memoria es de 4 x 3, es decir, de 4 palabras de 3 bits cada una. Para extenderla a 4 x 8 solo tendríamos que añadir cinco columnas mas de cuatro biestables cada una, así como cinco líneas de entrada y cinco de salida. Para ir de 4 x 3 a 8 x 3 deberemos añadir cuatro filas más de tres biestables cada una, así como una línea de dirección adicional, DIR2. Con esta clase de estructura, el numero de palabras debería ser una potencia de dos, para que la eficiencia sea máxima; sin embargo, el numero de bits por la palabra puede ser cualquiera. Como la tecnología de circuitos integrados es muy adecuada es muy adecuada para hacer pastillas con una estructura interna repetitiva en dos dimensiones, las memorias son aplicaciones ideales de aquella. A medida que esta tecnología se perfecciona, aumenta el numero de bits que pueden meterse en una pastilla, cuadruplicándose aproximadamente cada 3 o 4 años. En los primeros años de la década de los setenta las pastillas tenían 1K bits; más tarde, tuvieron sucesivamente 4K, 16K, 64K, 256K, etc. En 1990 ya eran comunes las memorias con 4 millones de bits. No siempre las pastillas de más capacidad velocidad, consumo, precio y conveniencia de interconexión. Para un tamaño de memoria dado, existen varias formas de organizar las pastilla. En la figura 3−30 se aprecian dos posibles organizaciones para una pastilla de tamaño mediano (256K−bit): 32K x 8 y 256K x 1. En la primera, se necesitan 15 líneas para direccionar el byte seleccionado y ocho líneas para cargar y almacenar los datos. En la segunda, se necesitan 18 líneas para direccionar el bit seleccionado, pero sólo una línea para sacar los datos. En ambos casos se requiere de líneas para distinguir lecturas de escrituras y para la selección de las pastilla. La línea representa la habilitación de salida; cuando tiene un valor de 0, hay una salida presente, y cuando es 1, no la hay (v.g., la salida está desconectada del circuito). La línea representa la habilitación de escritura. Las barras colocadas sobre significan que la señal está activada en un estado de voltaje bajo (0 lógico) en lugar de alto (1 lógico). Esta convención se verá en detalle más adelante. Fig. 3−30. Dos modos de organizar una pastilla de memoria de 256K bits. Nótese que para construir una memoria con una palabra de memoria de 16 bits a partir de pastillas de 256K x 1, se requiere de 16 pastillas en paralelo obteniendo una capacidad total de por lo menos 512K bytes, mientras que usando pastillas de 32K x 8 sólo se requiere de dos pastillas en paralelo permite construir memorias tan pequeñas como de 64K bytes. 9 Las memorias que hemos estudiado hasta ahora pueden utilizarse para leer o escribir. Se suelen denominar memorias vivas o RAM (siglas inglesas para memoria de acceso aleatorio); este último nombre es bastante inadecuado puesto que todas las pastillas de memoria son accesibles en forma aleatoria, pero el termino ya se ha arraigado. Hay dos variedades de memorias RAM: las estáticas y las dinámicas. Las RAM estáticas se construyen a partir de circuitos similares a nuestro biestable D básico. Tienen la propiedad de retener su contenido tanto tiempo como estén conectadas a la fuente de alimentación, sean segundos, minutos, horas o aun días. Las RAM dinámicas, por el contrario, no usan circuitos biestables como lo estudiados, sino que están construidas como un conjunto de pequeños condensadores, que pueden estar cargados o descargados. Como la carga eléctrica tiende a fugarse, cada bit de la RAM dinámica debe refrescarse cada pocos milisegundos, para impedir la perdida de su información. Como el cuidado del refresco debe encomendarse a lógica externa, las RAM dinámicas son mas difíciles de interconectar que las estáticas, aunque en muchas aplicaciones esta desventaja está compensada por su mayor capacidad. Algunas memorias dinámicas tienen la lógica de refresco en la propia pastilla, dando así gran capacidad y facilidad de conexión a los circuitos. Estas pastillas se denominan casi estáticas. Las RAM no son los únicos tipos de pastillas de memoria. En muchas aplicaciones, como juguetes, electrodomésticos y automóviles, los programas y parte de los datos deben permanecer aun cuando se desconecte la alimentación. Además, una vez instalados, ni el programa ni esos datos van a cambiarse nunca. Estos requisitos llevaron al desarrollo de las memorias fijas o ROM (siglas inglesas para memoria de sólo lectura), que no pueden cambiarse de ninguna manera. Los datos se graban durante la fabricación de la ROM, que consiste esencialmente en la exposición a la luz de un material fotosensible a través de una máscara con la configuración deseada de bits. Después se disuelve la parte expuesta a la luz (o la no expuesta). La única manera de cambiar un programa en ROM es sustituir la pastilla por otra. Las ROM son mucho más baratas que las RAM cuando se piden en grande cantidades, para amortizar el precio de hacer la mascara. Sin embargo son inflexibles, ya que no pueden cambiarse después de su fabricación y el plazo de entrega desde que se encargan hasta que se reciben puede abarcar varias semanas. Para facilitar a las empresas el desarrollo de productos basados en ROM, se inventó otro tipo de memoria muerta denominado PROM (ROM programable). Esta pastilla es como un ROM, excepto en que puede programarse (una sola vez), reduciendo así el plazo en que pueden tenerse grabadas. El siguiente avance en esta línea fue la EPROM (PROM borrable), que no sólo puede programarse sino también borrarse. Cuando la ventana de cuarzo una EPROM se expone a la luz ultravioleta potente durante 15 minutos, todos sus bits se ponen a 1. Si se espera hacer muchos cambios en el ciclo de diseños, las EPROM son mucho más económicas que las PROM porque pueden reutilizarse. Aún mejores que las EPROM son las EEPROM (EPROM eléctricamente borrables), también llamadas EAPROM (ROM eléctricamente alterables), que pueden borrarse mediante impulsos eléctricos, sin necesidad de que las introduzcan en un receptáculo especial para exponerlas a luz ultravioleta. Las EEPROM difieren de las RAM en que el tiempo necesario para grabar o borrar un byte es miles de veces mayor, a pesar de que los tiempos de acceso en lectura de las ROM, PROM, EPROM, EEPROM y RAM son similares (al máximo unas centenas de nanosegundos). MEMORIA ROM Memorias de Solo Lectura (ROM). Una memoria de solo lectura (ROM), como su nombre lo implica, es una unidad de memoria que realiza solamente la operación de lectura; no tiene la capacidad de escribir. Esto implica que la información binaria almacenada en una ROM se realiza permanentemente durante la producción del hardware de la unidad y no 10 puede ser alterada escribiendo palabras diferentes en ella. Mientras que una RAM es un dispositivo de propósito general cuyos contenidos pueden alterarse durante el proceso de computo, un ROM está restringido a la lectura de palabras que son permanentemente almacenadas dentro de la unidad. Un ROM m por n es un arreglo de celdas binarias organizados en m palabras de n bits cada una. Como se muestra en el diagrama de bloques de la Figura 2−22, un ROM tiene k líneas de dirección para seleccionar una de 2k = m palabras de memorias, y n líneas de salida, una para cada uno de los bits de la palabra. Un ROM CI también puede tener una o mas líneas de habilitación para expandir un numero de paquetes CI en un ROM con capacidad mucho mas grande. El ROM no necesita una línea de control leer puesto que en un instante dado, las líneas de salida automáticamente proporcionan los 1's y 0's de los n bits de la palabra seleccionada por el valor de la dirección. Debido a que las salidas son una función solamente de las entradas presentes (las líneas de dirección) un ROM es clasificado con un circuito de combinación. En realidad, un ROM se construye internamente con decodificadores y un conjunto de compuertas OR. No hay necesidad de proporcionar condiciones de almacenamiento con el RAM, puesto que los valores de los bits en el ROM se mantienen fijos permanentemente. Considere el diagrama lógico de un ROM 4 por 3 que se indica en la Figura 2−23. La unidad contiene un decodificador de 2 por 4 para decodificar las dos líneas de dirección. Las compuertas OR proporcionan tres salidas. Si cada uno de los minterms de salida del decodificador es conectado a la entrada de cada una de las compuertas OR, las salidas del circuito estarán en 1 no importa cuál sea la palabra seleccionada por las líneas de dirección. Supongamos que deseamos que el ROM contenga las combinaciones de bits que se numeran en la tabla de verdad que acompaña al diagrama. La tabla de verdad especifica una combinación de bit de 010 para la palabra 0. Esta combinación de bit se obtiene rompiendo dos alambres (marcados con una cruz) entre la palabra 0 y las entradas que están mas a la izquierda de las compuertas OR. En otras palabras cuando la línea de dirección de entrada es 00, la salida D0 del decodificador es igual a 1 y todas las otras salidas del decodificador son iguales a 0. Solamente la compuerta OR asociada con la salida A2 recibe una entrada de 1 debido a que los otros dos alambres están rotos. Por consiguiente, las líneas de salida proporcionarán una salida A1A2A3 = 010 (suponiendo que un alambre abierto de la compuerta OR se comporta como una entrada 0). Similarmente, todos los otros alambres se retiran del diagrama, el diagrama lógico así obtenido implementará la tabla de verdad que se enumera para el ROM. Un ROM CI se fabrica primero con todas las salidas en 1 (o todas en 0, dependiendo del CI particular). El patrón particular de 1's y 0's se obtiene proporcionado una máscara en el ultimo paso de fabricación. Cada una de las celdas en un ROM incorpora un enlace (en la posición de la cruz en el diagrama de la Figura 2−23) que puede fusionarse durante el ultimo proceso de fabricación. Un enlace roto en una celda define un estado binario y un enlace no roto representa el otro estado. El procedimiento involucrado en la fabricación de ROMs requiere que el cliente llene la tabla de verdad que él desea que satisfaga el ROM. El fabricante entonces hace la máscara correspondiente para los enlaces para que se produzca los 1's y 0's de cada palabra deseada. Este procedimiento es denominado una programación al cliente o una programación de máscara. Es un procedimiento de hardware aunque se utilice aquí la palabra programación. Para pequeñas cantidades es mas conveniente utilizar el ROM programable, conocido como un PROM. Cuando se ordena, los PROMs contienen todos 0's (o todos 1's) en cada palabra. Cada una de las celdas de un PROM incorpora un enlace que puede fundirse por aplicación de un pulso de corriente elevada. Un enlace roto en una celda define un estado binario y uno que no está roto representada el otro estado. El procedimiento usualmente es irreversible y, una vez fundido, la salida para aquel bit es permanente. Esto permite al usuario programar la unidad en su propio laboratorio rompiendo los enlaces y los datos de salida. También se encuentran disponibles los PROMs borrables. Estos ROMs tienen un procedimiento especial para reestructurar los enlaces a su valor inicial (todos en 0`s o todos en 1's) aunque ellos hayan sido programados previamente. En cualquier caso, todos los procedimientos para programar o borrar ROMs son procedimientos del hardware. Las aplicaciones digitales que utilizan ROMs especifican un patrón de palabra fija. El aspecto de programación del ROM tiene que ver con los procedimientos para obtener el patrón fijo deseado. 11 Los ROMs encuentran un amplio rango de aplicación en el diseño de sistemas digitales. Básicamente, un ROM genera una relación entrada−salida especificada por una tabla de verdad. Como tal, puede implementar un circuito de combinación con k entradas y n salidas. Un ROM también puede utilizarse en el diseño de circuitos secuenciales. Esto es debido a que los circuitos secuenciales pueden subdividirse en un grupo de flip−flops y un ROM para el circuito de combinación. Otro tipo de circuito LSI que implementa un circuito de combinación complejo es el Arreglo lógico programable (PLA). Un PLA es similar a un ROM excepto en el concepto que no proporciona decodificación completa en las líneas de entrada. Así, en un PLA, el decodificador en la Figura 2−23 es remplazado por un grupo de compuertas AND cada una de las cuales se puede programar para producir un termino AND de las variables de entrada. Las compuertas AND y OR dentro del PLA se fabrican inicialmente en el ultimo paso del procesamiento y contienen una máscara para los enlaces de entrada a las compuertas AND y las salidas de las compuertas AND a las entradas de las compuertas OR. Los ROMs son ampliamente utilizados para convertir un código binario a otro, para tablas que se necesitan en funciones matemáticas, para la exhibición de caracteres, y muchas otras aplicaciones que requieren un gran numero de entradas y salidas. También se emplean en el diseño de unidades de control para computadoras digitales. En este aspecto se usan para almacenar información codificada que representa la secuencia de variables de control internas necesarias para habilitar las diversas operaciones en el computador. Una unidad de control que utiliza un ROM para almacenar información de control binario es denominada una unidad de control microprogramada. ROM, siglas para la memoria inalterable, memoria de computadora en la cual se han grabado de antemano los datos. Una vez que los datos se hayan escrito sobre un chip ROM, no pueden ser quitados y pueden ser leídos solamente. Distinto de la memoria principal (RAM), la ROM conserva su contenido incluso cuando el ordenador se apaga. ROM se refiere como siendo permanente, mientras que la RAM es volátil. La mayoría de los ordenadores personales contienen una cantidad pequeña de ROM que salve programas críticos tales como el programa que inicia el ordenador. Además, las ROM se utilizan extensivamente en calculadoras y dispositivos periféricos tales como impresoras láser, cuyas fuentes se salvan a menudo en las ROM. Una variación de una ROM es un PROM (memoria inalterable programable). PROM son manufacturados como chips en blanco en los cuales los datos pueden ser escritos con dispositivo llamado programador de PROM. Memorias de Acceso Aleatorio (RAM). Una memora es una colección de registros de almacenamiento junto con los circuitos asociados necesarios para transferir información dentro y fuera de los registros. A los registros de memoria se puede tener acceso para transferencia de información como sea requerido y de aquí el nombre memoria de acceso aleatorio, abreviada RAM. Una unidad de memoria almacena información binaria en grupos de bits denominados palabras. Cada una de las palabras es almacenada en un registro de la memoria. Una palabra en una memoria es una entidad de n bits que se mueve dentro y fuera de la unidad de memoria. A una palabra de ocho bits algunas veces se le denomina un byte. Una palabra de una memoria es un grupo de 0's y 1's y puede representar un numero, un código de instrucción, caracteres alfanuméricos, o cualquier otra información codificada en binario. La comunicación entre la unidad de memoria y su ambiente se lleva a cabo a través de líneas de control, líneas 12 de selección de dirección, y líneas de salida y entrada de datos. Las señales de control especifican la dirección de la transferencia requerida, esto es, si una palabra debe almacenarse en un registro de la memoria o si una palabra previamente almacenada debe ser trasferida fuera del registro de la memoria. Las líneas de dirección especifican la palabra particular elegida de las cientos o miles disponibles. Las líneas de entrada proporcionan la información que se debe almacenar en la memoria y las líneas de salida suministran la información que sale de la memoria. Un diagrama de bloque de una unidad de memoria se muestra en la Figura 2−18. Una unidad de memoria se especifica por el numero de palabras que contiene y el numero de bits en cada una de las palabras. Las líneas de selección de dirección seleccionan una palabra particular de la memoria de las m palabras disponibles. A cada palabra en una memoria se le asigna un numero de identificación, denominado una dirección, arrancando de 0 y continuando con 1, 2, 3, y hasta m − 1. La selección binaria en las líneas de selección. Un decodificador dentro de la unidad de memoria acepta esta dirección y abre las rutas necesarias para seleccionar la palabra especifica. Así, k bits de dirección puede seleccionar una de 2k = m palabras. Las memorias de computador están en el rango de 1024 palabras, requiriendo una dirección de 10 bits, a 1,048,576 = 220 palabras, que requieren 20 bits de dirección. Es costumbre referirse al numero de palabras en la unidad de memoria con la unidad K. K se refiere a 1024 = 210 palabras: así 1 K = 1024 palabras, 4 K = 4096 palabras, y 64 K = 216 palabras. Las dos señales de control se denominan leer y escribir. Una señal escribir especifica una operación de transferencia de entrada; una señal leer especifica una operación de transferencia de salida. Al aceptar una de estas señales de control, los circuitos de control interno dentro de la unidad de memoria proporcionan la función deseada. Cuando la unidad de memoria recibe una señal de control escribir, el control interno trasfiere los n bits de datos de entrada dentro de la palabra especificada por las líneas de dirección. Con un señal de control leer, la palabra seleccionada por las líneas de dirección aparece en las n líneas de datos de salida. RAM CI. Las memorias de circuitos integrados algunas veces tienen una sola línea para el control leer / escribir. Un estado binario, digamos 1, especifica una operación leer y el toro estado binario especifica una operación escribir. Además, se puede incluir una o mas líneas de habilitación en cada uno de los paquetes del CI para proporcionar medios para expandir varios paquetes en una unidad de memoria con un gran numero de palabras. La construcción interna de una memoria de acceso aleatorio de m palabras con n bits por palabra consta de m x n celdas de almacenamiento binario y la lógica necesaria para seleccionar una palabra para escribir o leer. La celda de almacenamiento binario es el bloque de construcción básico de una unidad de memoria. El diagrama lógico de una celda binaria que almacena un bit de información se muestra en la Figura 2−19. aunque la celda se muestra que incluye cinco compuertas y un flip−flop, internamente es construida con dos flip−flop de transistores que tienen entradas múltiples. La celda binaria de una unidad de memoria debe ser muy pequeña para ser capaz de empacar tantas celdas como sea posible en el área del semiconductor disponible en la pastilla. La celda binaria se muestra que tiene tres líneas de entrada y una línea de salida. El propósito de la entrada select es seleccionar una celda de las muchas disponibles. Con la línea select en 1, un 1 en el terminal leer / escribir conforma una ruta de salida del flip−flop al terminal de salida. Con el terminal leer / escribir en 0, el bit en la línea de entrada se trasfiere al flip−flop. Tanto la entrada como la salida son deshabilitadas cuando la línea select es 0. note que el flip−flop opera sin pulso de reloj y que su propósito es almacenar el bit de información en la celda binaria. La configuración de una RAM de 4 por 3 se muestra en la Figura 2−20. contiene cuatro palabras de tres bits una para un total de 12 celdas binarias de almacenamiento. Cada caja pequeña rotulada BC en el diagrama contiene el circuito de una celda binaria. Las cuatro líneas que se ven en cada caja BC designan los tres terminales de entrada y un terminal de salida como se especificó en el diagrama de la Figura 2−19. 13 Las dos líneas de dirección van a un decodificador 2 por 4 con una entrada de habilitación. Cuando la habilitación de memoria es 0, todas las salidas del decodificador son 0 y ninguna de las palabras de la memoria se seleccionan. Con la entrada habilitada de memoria en 1, una de las cuatro palabras es seleccionada, dependiendo de la combinación del bit de las dos líneas de dirección. Ahora, con el control leer / escribir en 1, los bits de la palabra seleccionada van a tres compuertas OR y a los terminales de salida. Las celdas binarias no seleccionadas producen 0's en las entradas del OR y no tienen efecto en las salidas. Con el control leer / escribir en 0, la información disponible en las líneas de entrada se trasfiere a los flip−flops de la palabra seleccionada. Las celdas binarias no seleccionadas en las otras palabras son deshabilitadas por la línea de dirección de tal manera que los valores previos permanecen inmodificados. Así, con la habilitación de la memoria en 1, el control leer / escribir inicia las operaciones leer y escribir para la unidad de memoria. Una operación de inhibición se obtiene manteniendo la habilitación de memoria en 0. Esta condición deja los contenidos de todas las palabras en la memoria como eran, independiente del valor del control leer / escribir. Los RAMs CI algunas veces emplean celdas binarias cuyas salidas pueden conectarse para formar una función OR alambrada o un AND alambrado. Otros RAMs CI proporcionan salidas tri−estado. Estas salidas son convenientes cuando se tienen que conectar dos o mas CI para formar una unidad de memoria con un numero mayor de palabras puesto que ello elimina la necesidad de compuertas externas OR que de otra manera serian necesarias. Memoria de núcleo magnético. Las memorias CI retienen la información binaria cuando una palabra se lee de la memoria. Este tipo de memoria se dice que tiene una propiedad de lectura no destructiva debido a que el contenido de la palabra en la memoria no es destruido durante el proceso de lectura. Otra componente comúnmente utilizada como celda de almacenamiento binario en las unidades de memoria es el núcleo magnético. Un núcleo magnético es un toroide muy pequeño hecho de material ferromagnético. La cantidad física que hace que el núcleo magnético sea adecuado para almacenamiento binario es su propiedad magnética. Una dirección de magnetización se emplea para representar un 0 y la otra para representar un 1. La lectura de salida de la información binaria almacenada en un núcleo magnético requiere que su dirección de magnetización sea forzada al estado 0. Por consiguiente, una memoria de núcleo magnético tiene una propiedad de lectura destructiva; él pierde la información previamente almacenada después del proceso de lectura. Debido a la propiedad de lectura destructiva, una memoria de núcleo magnético debe proporcionar funciones de control adicional para restaurar el contenido original de la palabra que se acabó de leer. Una señal de control leer aplicada a la memoria de núcleo magnético trasfiere el contenido de la palabra direccionada a un registro externo y, al mismo tiempo, el registro de la memoria de núcleo magnético entonces proporciona señales adecuadas para realizar la restauración de la palabra en el registro de memoria. Esto se hace rescribiendo la información del registro externo en la misma palabra de memoria. Similarmente, para escribir nueva información en una palabra en una memoria de núcleo magnético, los bits de la palabra seleccionada primero se aclaran a 0. La información binaria de las líneas de entrada se trasfiere entonces a la palabra seleccionada colocando todos los bits que necesitan 1 y no cambiando los bits que necesitan 0. De nuevo, esta doble operación se lleva a cado automáticamente por medio del control de la unidad de memoria. Operaciones de memoria. La secuencia de control interno de una unidad de memoria es un función de sus componentes y del tipo de líneas de control proporcionados con la unidad. Además, la información de dirección y entrada puede provenir de diferentes fuentes y la información de salida puede ir a muchos destinos. La operación de una unidad de memoria se simplifica si asociamos con ella dos registros externos y suponemos la disponibilidad de dos señales de control como se muestra en la Figura 2−21. Las líneas de dirección de la unidad de memoria están permanentemente conectadas a las salidas de un registro externo denominado el Registro de Dirección de Memoria, abreviado MAR. La información binaria es trasferida entre palabras de memoria y el ambiente externo a través de un registro externo común denominado el Registro Separador de Memoria, abreviado MBR 14 (otros nombres son: registro de información, registro de almacenamiento y registro de datos.) La información de entrada es siempre trasferida al MBR, y la información de salida siempre se toma del MBR. Cuando la memoria recibe un comando escribir, el control interno interpreta el contenido del registro separador como los bits de información de la palabra almacenada. Con un comando leer el control interno trasfiere la palabra de la memoria en el registro separador. En cada caso, los contenidos del registro de dirección especifican la palabra particular en la memoria referenciada por la escritura o por la lectura. Si una memoria de núcleo magnético se utiliza, su secuencia de control interno automáticamente restaura la palabra en la memoria después de una operación de lectura. La secuencia de operaciones necesarias para comunicarse con la unidad de memoria con el fin de transferir una palabra fuera al ambiente externo son las siguientes: • Trasferir los bits de dirección de la palabra requerida en el MAR. • Activar el control de entrada leer. La información binaria almacenada en la palabra de la memoria especifica por MAR se encontrara entonces en MBR. El contenido de la palabra leída de la memoria no será destruido. La secuencia de operaciones externas que se necesitan para almacenar una palabra en la memoria son: • Trasferir los bits de dirección de la palabra requerida al MAR. • Trasferir los bits de datos de la palabra al MBR. • Activar la señal escribir. La información del MBR se almacena entonces en la palabra de memoria especificada por MAR. Los contenidos previos de la palabra son, obviamente, destruidos. Características especiales. El tiempo de acceso se define como la diferencia de tiempo entre el tiempo que una unidad de memoria recibe una señal leer y el instante en que la información leída de la memoria está disponible en las salidas. En una memoria de lectura destructiva, como la de núcleo magnético, la información sacada es físicamente destruida por el proceso de lectura. Sin embargo, es automáticamente restaurada; pero esto requiere un tiempo adicional. La suma de tiempo de acceso y el tiempo de restauración es denominada el tiempo de ciclo. En una memoria de lectura no destructiva, el tiempo de ciclo es igual al tiempo de acceso porque no hay tiempo de restauración. Los tiempos de ciclo típicos de unidades de memoria están en el rango de 100 ns hasta 1 s. El modo de acceso de una memoria se determina por el tipo de componentes que se utilizan. En una memoria de acceso aleatorio, los registros de la memoria pueden tomarse como si estuvieran en espacios separados, con cada uno de los registros ocupando un localización espacial particular como en las memorias RAM CI o las memorias de núcleo magnético. En una memoria de acceso secuencial, la información almacenada en algún medio no es accesible inmediatamente pero se encuentra disponible solamente después de cierto intervalo de tiempo. Una memoria de registro de desplazamiento es de este tipo. Los registros de desplazamiento se utilizan como memorias series y se encuentran disponibles en paquetes MOS / LSI. Los contenidos de la memoria son recirculados vía un circuito de realimentación de la salida a la entrada. Una memoria de acceso secuencial de m palabras por n bits se obtiene con n registros de desplazamiento en sincronización, en que cada uno de los registros de desplazamiento representa un bit de la palabra. La longitud de registro de desplazamiento determina el numero de palabras. La recirculación de los registros de desplazamiento utilizados como memorias deriva su dirección de un contador auxiliar que determina la palabra que debe emerger de los terminales de salida. Cada una de las palabras pasa a los terminales de salida una por una y la información es leída cuando la palabra requerida esté disponible en los terminales de salida. 15 En una memoria de acceso aleatorio, el tiempo de acceso es siempre el mismo independientemente de la localización particular de la palabra en el espacio. En una memoria secuencial, el tiempo de acceso depende de la posición de la palabra en el instante de ser requerida. Si la palabra que está precisamente saliendo del almacenamiento en el instante en que es requerida, el tiempo de acceso es el tiempo necesario para leerla. Si la palabra sucede que está en una posición diferente, el tiempo de acceso también incluye el tiempo requerido para que todas las otras palabras se muevan hacia los terminales de salida. Así, el tiempo de acceso en una memoria secuencial es variable. Las unidades de memoria cuyas componentes pierden la información almacenada con el tiempo o cuando la energía se apaga se dice que son volátiles. Las memorias CI son volátiles puesto que sus celdas binarias requieren potencia externa para mantener la información almacenada. En contraste, una unidad de memoria no−volátil tal como la de núcleo magnético o disco magnético retiene su información almacenada después de que se retira la energía. Esto es debido a que la información almacenada en componentes magnéticas es manifestada por la dirección de magnetización, la cual es retenida cuando se retira la energía. Una propiedad no−volátil se desea en computadores digitales debido a que mucho programas útiles se dejan permanentemente en la unidad de memoria. Cuando la energía se apaga y vuelve de nuevo, los programas previamente almacenados y otra información no se pierden pero continúan residiendo en la memoria. Los computadores con memorias volátiles pueden resolver el problema de la falla de energía utilizando baterías de respaldo o fuentes de potencia especial que continúen entregando potencia por algún tiempo después de que ocurra la interrupción de potencia. MEMORIA RAM Memoria de la computadora, denominada Memoria de Acceso Aleatorio, es un área de almacenamiento a corto plazo para cualquier tipo de dato que la computadora está usando. RAM a menudo se confunde con el almacenamiento. Para una aclaración, comparemos la computadora con una oficina. El gabinete de archivos representa el almacenamiento (unidad de disco duro) y el escritorio representa la RAM. Los archivos a usar se recuperan del almacenamiento. Mientras los archivos están en uso se guardan en la RAM, un área de trabajo de fácil acceso. Cuando los archivos dejan de usarse se regresan al sector de almacenamiento o se eliminan. RAM, son las siglas para la memoria de acceso al azar, un tipo de memoria de computadora que se puede alcanzar aleatoriamente; es decir, cualquier byte de memoria puede ser alcanzado sin el tocar los bytes precedentes. La RAM es el tipo más común de memoria encontrado en ordenadores y otros dispositivos, tales como impresoras. Hay dos tipos básicos de RAM: • RAM estática (SRAM) • RAM dinámica (DRAM) Estos 2 tipos difieren en la tecnología que utilizan para almacenar datos, RAM dinámica que es el tipo más común. La RAM dinámica necesita ser restaurada millares de veces por segundo. La RAM estática no necesita ser restaurada, lo que la hace más rápida; pero es también más costosa que la DRAM. Ambos tipos de RAM son volátiles, significando que pierden su contenido cuando se interrumpe el suministro de poder. En uso común, el término RAM es sinónimo de memoria principal, la memoria disponible para los programas. Por ejemplo, un ordenador con la RAM de los 8M tiene aproximadamente 8 millones de bytes de memoria 16 que los programas puedan utilizar. En contraste, la ROM (memoria inalterable) se refiere a la memoria especial usada para salvar los programas que inician el ordenador y realizan diagnóstico. La mayoría de los ordenadores personales tienen una cantidad pequeña de ROM (algunos tantos miles de bytes). De hecho, ambos tipos de memoria (ROM y RAM) permiten el acceso al azar. Para ser exacto, por lo tanto, RAM se debe referir como RAM de lectura/escritura y ROM como RAM inalterable. RAM DINÁMICA Un tipo de memoria física usado en la mayoría de los ordenadores personales. El término dinámico indica que la memoria debe ser restaurado constantemente (reenergizada) o perderá su contenido. La RAM (memoria de acceso aleatorio) se refiere a veces como DRAM para distinguirla de la RAM estática (SRAM). La RAM estática es más rápida y menos volátil que la RAM dinámica, pero requiere más potencia y es más costosa. RAM ESTÁTICA Abreviatura para la memoria de acceso al azar estática. SRAM es un tipo de memoria que es más rápida y más confiable que la DRAM más común (RAM dinámica). El término se deriva del hecho de que no necesitan ser restaurados como RAM dinámica. Mientras que DRAM utiliza tiempos de acceso de cerca de 60 nanosegundos, SRAM puede dar los tiempos de acceso de hasta sólo 10 nanosegundos. Además, su duración de ciclo es mucho más corta que la de la DRAM porque no necesita detenerse brevemente entre los accesos. Desafortunadamente, es también mucho más costoso producir que DRAM. Debido a su alto costo, SRAM se utiliza a menudo solamente como memoria caché. TIPOS Y MODELOS DE MEMORIAS RAM Dentro de los que genéricamente conocemos como memorias, tenemos que destacar que dependiendo del año de su fabricación pueden ser de 72 o de 128 contactos. Las de 72 contactos se utilizaban como norma estándar en los antiguos 286−386−486 e incluso en algunos Pentium pequeños, pero se sustituyeron por otro tipo de memorias que eran las de 128 contactos cuya velocidad superaba con creces a sus antecesoras. A las memorias de 72 contactos se las denomina SIMM (Single In−Line Memory Module). A las memorias de 128 contactos se las denomina DIMM (Dual In−Line Memory Module). Otro tipo de memorias que existían eran las de 72 contactos pero en un formato mucho más comprimido para poder ocupar menos espacio en los ordenadores portátiles. Este tipo de memorias son las denominada SODIMM ( Amall Outline Dimm). En lo referente al tipo de modelos que existen hoy día, hay que decir que cada vez que salen al mercado un nuevo tipo de memoria con unas prestaciones mayores a las de su antecesora, recibe un nombre distinto que hace referencia a las nuevas características de la nueva memoria. Podemos destacar las siguientes memorias. • La memoria EDORAM. Es un tipo de memoria que acorta el tiempo de acceso entre la memoria y la CPU. Gracias a esta memoria, un equipo que este preparado puede llegar a ser hasta un 15 % más rápido que en un equipo normal. • La SDRAM. También llamada DRAM Sincrona. Es una memoria que utiliza un reloj para sincronizar las operaciones de entrada y de salida en el chip. Supera y releva a la memoria EDORAM. 17 Como dato informativo, diremos que la memoria cache, que ya detallaremos mas adelante, supera en velocidad a EDORAM, en 50 nanosegundos. CACHE 10ns EDORAM 60 ns • CARACTERISTICAS DE LAS MEMORIAS Además de la duración de la información y el modo de direccionamiento, las memorias se caracterizan por el tamaño, velocidad y número de puertas. 1.1 Tamaño o capacidad. La capacidad mide el numero de datos que es capaz de almacenar una memoria. En las memorias de direccionamiento cableado existe una relación directa entre los bits necesarios para hacer el direccionamiento y la capacidad. Si la memoria tiene H palabras, se requieren m bits de dirección tal que 2m > o igual a H. En el caso de las memorias dinámicas, además de los datos debe almacenarse una cabecera y una señal de reloj, por lo que hay que distinguir entre capacidad útil y capacidad bruta. 1.2 Velocidad. Se puede definir la velocidad como el tiempo que se tarda en realizar una operación de lectura o escritura. Cabe diferenciar entre memorias estáticas y dinámicas. • Memorias estáticas. Dado que todos los puntos de memoria están cableados de forma equivalente, los tiempos son independientes de la dirección. El tiempo de acceso o lectura es el tiempo que tarda la memoria en suministrar una palabra, desde el momento en que se le presentan su dirección y la señal de lectura. Ahora bien, si se hacen n lecturas consecutivas, el tiempo total de lectura no será igual al de una sola lectura, ya que suele exigir un tiempo de regeneración de los decodificadores, trasductores y puntos de memoria. El tiempo de escritura es el tiempo que tarda la memoria en guardar la infamación desde el momento en que se suministra la información, la dirección y la señal de escritura. En la actualidad las memorias de semiconductores tienen un ciclo RMW (Rea−Midify−Write), consistente en hacer una operación de lectura seguido de otra de escritura sobre la misma dirección de memoria. • Memorias dinámicas. Para analizar la velocidad de las memorias dinámicas hay que considerar el tiempo que se tarda en hacer coincidir el trasductor con los datos, así como la cadencia a la que se leen o escriben datos consecutivos. El primer tiempo es el tiempo de acceso. Este tiempo se compone del tiempo de búsqueda. Tiempo que tarde el trasductor en alcanzar la posición deseada, mas el tiempo de latencia, esto es el tiempo que tarda la zona buscada del soporte en situarse frente al trasductor. Una vez accedida la zona deseada, pueden leerse o escribirse a alta velocidad una serie de palabras 18 consecutivas. Es la velocidad de transferencia. 1.3 Interconexión. Memorias multipuerta. Dentro de las memorias internas también existen memorias, llamadas multipuerta, en las que se dota a estas de varias vías de comunicación simultaneas. La memoria multipuerta se basa en los siguientes principios: • Está dividida en módulos, que pueden operar de forma independiente y simultanea. • Tienen un mecanismo que permite que una puerta este conectada a cualquiera sus módulos. • Tiene un sistema que detecta y soluciona problemas de colisión, caso que ocurre cuando 2 o más puertas intentan acceder a un mismo módulo. • MEMORIAS DE SEMICONDUCTORES Estas memorias son de direccionamiento cableado y, por tanto, estáticas y de acceso directo (RAM). Estas memorias se caracterizan por: • El bus de direcciones puede ser completo con m bits para direccionar 2m palabras, o puede estar multiplexado, transmtiendose primero m/2 bits y luego el resto. • El bus de datos es de tipo triestado, por lo que se pueden conectar directamente los buses de datos de varias pastillas. • Las señales de control, que suelen ser de activación de pastilla, de lectura y escritura, etc... • El ancho de palabra. • La capacidad. Seguidamente se van a analizar las memorias de semiconductores más habituales. • RAM estáticas SRAM. Mantienen su estado siempre que no se interrumpa la alimentación. Se usan en memorias pequeñas, dado que son mas caras, ocupan mas espacio y consumen mas que las dinámicas, pero son más rápidas y sencillas de usar. Son de lectura y escritura. • RAM dinámicas DRAM. En estas memorias el estado se almacena por medio de un condensador que tiende a descargarse, por lo que ha que refrescarse para que no pierdan la información. Se usan en memorias de tamaño mediano o grande ya que son más económicas que las estáticas. Son de lectura y escritura. • ROM Y PROM Solo permiten la operación de lectura. La información se graba en el momento de fabricación (ROM = Read Only Memory) o en un proceso posterior irreversible, (PROM = Programable Rom). Su uso consiste en almacenar el programa de arranque de las computadoras. Son por ello memorias permanentes. • EPROM y EEPROM. Son memorias permanentes de solo lectura, pero que se pueden borrar mediante procesos especiales. La ventaja de las EEPROM es que el borrado es selectivo, es decir, se borra a nivel de palabra, mientras que la EPROM se borra en su totalidad. • VRAM 19 Es una memoria RAM dinámica diseñada para memorias de refresco de terminales gráficos. • MEMORIA INTERNA La memoria interna esta constituida por tres grupos: • Los registros, incluidos en la unidad aritmética. • La memoria principal, que es la memoria donde residen los programas y sus datos. • La memoria caché, que es una memoria auxiliar que se emplea para acelerar los accesos a la memoria principal, pero que es transparente al usuario. • Mapa de memoria. Se llama mapa de memoria a todo el espacio direccionable por el computador. Así, para m bits de dirección, se dice que el mapa de memoria es de 2m. Por otro lado, las m líneas de dirección forman el bus de direcciones. • MEMRIA VIRTUAL Un computador emplea memoria virtual cuando las direcciones que generan sus programas se refieren a un espacio mayor que el espacio realmente disponible en memoria principal. Así, hay que diferenciar entre mapa de direcciones lógicas o virtual y el mapa de direcciones físicas o reales. El espacio virtual emplea como soporte un dispositivo de almacenamiento externo, como puede ser un disco. La realización de un computador con memoria virtual exige resolver dos problemas: • La traducción de direcciones. Los programas y datos residen en memoria principal, por lo que deben accederse mediante las direcciones físicas. Sin embargo, las direcciones que generan los programas se refieren a espacio virtual, por lo que debe establecerse un mecanismo de traducción que convierta direcciones virtuales a físicas. • La asignación de memoria física. Puesto que el espacio físico es mucho menor que el virtual no podrá residir en memoria mas que una parte del espacio virtual. Ello hace que se intente acceder a posiciones que no residen en memoria física. Por tanto, es necesario establecer un mecanismo que, de forma dinámica, asignen el espacio físico, de tal forma que los procesos tengan en todo momento en la memoria principal aquellas partes que requieran para su ejecución. Cuando un proceso genera un fallo de pagina, la política de reemplazo establece la forma en que se selecciona la pagina que hay que devolver al soporte del espacio virtual para dejar un hueco y poder traer la pagina que origino el hueco, necesaria para que continúe el proceso. Esta política de reemplazo es fundamental para el funcionamiento de la memoria virtual, puesto que afecta fuertemente a la tasa de fallos. Así, se deberá intentar eliminar aquellas paginas con menor probabilidad de uso, por ejemplo, la que lleve mas tiempo sin ser usada. La viabilidad del uso de la memoria virtual reside en la proximidad de las referencias a memoria. Existen dos tipos de proximidad. • Proximidad espacial • Proximidad temporal. • MEMORIA CACHE 20 La memoria cache es una memoria auxiliar de alta velocidad que se añade a la memoria principal para acelerar su funcionamiento. Suele ser del orden de 5 a 10 veces más rápida que la memoria principal y tiene un tamaño que oscila entre 8 y 64 Koctetos. El funcionamiento de la memoria cache con respecto a la principal es similar al de la memoria principal respecto a la virtual. Ambas memorias, caché y principal se dividen en bloques y líneas de unos pocos octetos, que hacen la función de las paginas. La propia cache se encarga de realizar la tradición de los identificadores de bloque, generando en su caso la señal de fallo. La secuencia de funcionamiento es la siguiente: • La CPU genera una dirección, que es enviada a la memoria cache. • La memoria cache realiza la tradición a dirección de cache y comprueba si tiene la referencia. En caso afirmativo realiza el acceso, con lo que el proceso finaliza. • En caso de fallo se accede directamente la palabra deseada de la memoria principal, y se procede a seleccionar un bloque para ser sustituido. • Cuando el bloque a sustituir no ha sufrido modificación, el proceso se limita a leer de la memoria principal el nuevo bloque y a almacenarlo en la posición del bloque a sustituir. Si el bloque fue modificado habrá que leerlo previamente de la cache y almacenarlo en la memoria principal. Memoria EEPROM Esta memoria EEPROM Electrical Erasable Programmable Read Only Memory, algo así como memoria de solo lectura programable y borrable de forma eléctrica, lo que significa que una vez que se le quita la corriente eléctrica mantiene la información de forma indefinida y además puede reprogramarse borrando su contenido de forma eléctrica. Esto es una ventaja frente a las memorias EPROM que se deben borrar con luz ultravioleta Descripción funcional −Es una memoria de 16 Kbits ( 16384 bits ) organizada en 8 bancos de 256 bytes cada uno. − Soporta protocolo de transmisión de datos en bus de dos líneas. − El bus se controla mediante un master que se encarga de generar el reloj ( SCL ), el control de acceso al bus y además genera las condiciones de START y STOP mientras el 24LC16B actua como slave. La siguiente figura muestra una configuración típica de esta memoria : 21 Características del bus • Sólo puede iniciarse transferencia de datos cuando el bus está libre. • Durante la transferencia de datos estos deben permanecer estables mientras la línea de reloj esté a nivel alto. Si se producen cambio se interpretan como un Start o un Stop. Operaciones de escritura La escritura comienza por un START, direccionamiento del dispositivo, dirección del byte y finalmente el byte a escribir, después de cada elemento se añade un ACK por parte de la memoria como se indica en la figura. Escritura secuencial Si lo que se desea es escribir un grupo de 16 bytes sólo es necesario enviar la dirección del primero de ellos y a continuación el resto, la memoria posee un contador interno que determina la dirección actual, este se irá incrementando para cada byte. La diferencia respecto a la escritura de un único byte estriba en el hecho del señalizador del STOP, si este no aparece es que se debe escribir sucesivos bytes. La figura muestra el caso. Una escritura incluye un borrado del contenido de la dirección por lo que esta es mucho más lenta que una lectura. 22 Operaciones de lectura Las operaciones de lectura son 3, la lectura de la dirección actual ( almacenada por el contador de dirección ), lectura arbitraria en cualquier posición de la memoria y finalmente la lectura secuencial. Lectura actual Toma la posición actual de la memoria, como puede verse en la figura, después del dato no hay un ACK, ya que este va dirigido al master. Lectura arbitraria En esta lectura se indica la posición a leer la información, hay que destacar que primero se ha de enviar la dirección y despues se recibe el dato, por eso existe un ACK después de la dirección. Lectura secuencial La lectura secuencial toma la dirección actual y va extrayendo los datos uno detrás del otro, hay que tener en cuenta que se lee la página actual y esta no se cambia cuando se llega al final por lo que la lectura como máximo es de 16 23 bytes. LA MEMORIA EPROM 2716 Descripción general La EPROM 2716 contiene características borrables y es eléctricamente reprogramable, es de alta velocidad y proporciona acceso a 16 Kbits de información, esta diseñada para aplicaciones en donde son importantes los cambios rápidos en la tensión. La EPROM 2716 esta empacada en un circuito integrado de 24 terminales, usa una placa transparente en su dorso, lo cual nos permite exponer el chip a rayos ultravioleta ópticos, que se utilizan para borrar la memoria, se le puede depositar una nueva información aun después de estar borrada siguiendo los procedimientos de programación adecuados, esta EPROM 2716 esta constituida con tecnología de alta densidad con compuertas CMOS de canal N. Ventajas ð Tiempo de acceso menor que 250 nseg. ð Bajo consumo de potencia ð Disipación en estado activo: 525 mW máx. ð Disipación en estado inactivo: 132 mW máx. ð Fuente de alimentación de +5 Volts ð Rango de temperatura de −40 hasta +85 grados centígrados ð Características estáticas (no requiere refrescamiento por medio del reloj) ð Entradas y salidas compatibles con la tecnología TTL ð Capacidad de colocarse en tercer estado. OPERACIÓN DEL DISPOSITIVO Existen 5 modos de operación, se debe hacer notar que todas las entradas son TTL independientemente del modo de operación, la fuente de alimentación requiere de +5.0 Volts en la terminal Vcc, la terminal Vpp esta en alta tensión +25 Volts durante 3 modos y en +5 Volts en los otros dos modos de operación. DESCRIPCIÓN DE LAS TERMINALES 24 ð A0−A10: Lineas de direcciones ð D0−D7: Salida de datos ð (CE)' Habilitador de la pastilla ð (OE)' Habilitador de salidas ð PGM Condición de programación ð Vcc Voltaje de alimentación +5.0 Volts ð Vss Terminal de tierra 0.0 Volts ð Vpp Voltaje de programación ð NC No conexión OPERACIÓN DE LECTURA Para leer la memoria se deben hacer las conexiones de las terminales que a continuación se especifican, la terminal Vpp se conecta a Vcc para inhibir con esto la programación, las entradas (OE)' y (CE)' se colocan en tierra y con estas simples conexiones se puede leer la memoria, los datos estarán sobre las terminales D1 − D7, la información se puede visualizar con LED'S quienes indican el dato direccionado por las terminales A0 − A10, cuya capacidad es de (2K X 8), 2048 localidades de 8 bits cada una. MODO DE PROGRAMACIÓN Para programar la memoria se requieren las siguientes conexiones: En la terminal 18 se debe depositar un pulso de Tw = 45 mseg aproximadamente, dicho pulso deberá estar dado por un monoestable. La terminal 20 que es el habilitador de salidas se conecta a la polarización de +5.0 Volts (la alimentación). La terminal 21, voltaje de programación se conecta a un voltaje fijo de +25.0 Volts, la memoria normalmente cuando no esta grabada contiene "unos", por lo tanto en la operación de grabación se procede a depositar ceros. PRECAUCIONES Excediendo de los 25 Volts en la terminal Vpp (pin 21) se dañara la EPROM 2716 y después todos los bits quedaran en el estado uno lógico. La información debe ser introducida usando el modo de programación, depositando solamente ceros lógicos en la localidad seleccionada y con la combinación deseada, aunque ambos unos y ceros pueden ser presentados como datos de entrada en la palabra de información a grabar. La única manera de cambiar los ceros por los unos es borrando totalmente la memoria EPROM 2716 a través de una intensa luz ultravioleta. La EPROM 2716 esta en la modalidad de programación cuando la fuente de alimentación de Vpp esta en +25 Volts y (OE)' en estado lógico alto. Se requiere un capacitor de 0.1 uF dispuesto entre +Vcc y GND para suprimir los estados transitorios de tensión que puedan dañar al dispositivo EPROM 2716. 25 La información debe se programada en 8 bits en paralelo dispuestos en las terminales de salida del chip, los niveles deben ser compatibles con la tecnología TTL. Cuando la dirección y el programa son estables, se debe hacer presente el pulso activo de programación durante 45 mseg. Se puede programar cualquier localidad en cualquier tiempo en forma secuencial o con acceso aleatorio,. El pulso de programación debe tener una duración máxima de 55 mseg. La EPROM 2716 no debe ser programada con una señal de CD en la terminal de programación (CE)'. Se pueden programar varias EPROM 2716 en paralelo con la misma información, debido a la simplicidad de los requerimientos de programación. 26