TECNOLOGIA DE MEMORIA 1. 2. INTRODUCCION ¿QUÉ ES LA MEMORIA? 2.1 2.2 ¿Qué aspecto tiene la memoria? Bancos y esquemas de memoria 3. ¿CÓMO TRABAJA LA MEMORIA? 4. LOS DIFERENTES TIPOS DE MODULOS DE MEMORIA 5. FACTORES CARACTERISTICOS DE LA MEMORIA 4.1 4.2 4.3 4.4 4.5 5.1 5.2 5.3 5.4 SIMM de 30 contactos SIMM de 72 contactos Tarjetas PCMCIA de memoria Módulos DIMM Small Outline DIMM (SO-DIMM) Integridad de datos El controlador de memoria Control de paridad ECC Refresco Voltaje Módulos compuestos y no compuestos 6 TIPOS DE MEMORIA 7 8 9 10 LA MEMORIA CACHE LA MEMORIA DE VIDEO MEMORIA NO VOLATIL: ROM EL FUTURO 6.1 6.2 6.3 6.4 FPM (Fast Page Mode) EDO (Extended Data Out) BEDO DRAM (Burst Extended Data Out Dynamic RAM) SDRAM (Synchronous Dynamic RAM) INTRODUCCION Hoy por hoy, independientemente de la memoria RAM de que disponga un ordenador, nunca parece suficiente. Y es que en la actualidad, la memoria se ha convertido en uno de los recursos básicos de un ordenador, más aún teniendo en cuenta las necesidades de las actuales aplicaciones software. Hace unos años, era raro encontrar equipos con más de 1 ó 2 Mb de RAM. Hoy por hoy, cualquier sistema suele disponer de un mínimo de 8 Mb, aunque muchas aplicaciones aconsejan un mínimo de 16 Mb y algunas otras (de alto rendimiento) requieren de 32 Mb en adelante. Para hacernos una idea de cómo han cambiado las cosas, basta recordar una frase del libro “Dentro del PC”, publicado por Peter Norton en 1983: “IBM ha equipado a todos sus ordenadores XT con lo que considera deben ser las características mínimas para un ordenador personal serio. 10 Mb de disco duro y 128 Kb (un octavo de Mb) son capacidades comprensibles para una máquina seria” 1. ¿QUÉ ES LA MEMORIA? En el campo de la informática, se emplea la palabra memoria para referirse comúnmente a la Memoria RAM (Random Access Memory, memoria de acceso aleatorio). Un ordenador utiliza la memoria RAM para almacenar temporalmente instrucciones y datos necesarios para la ejecución de programas. Esto hace posible que la unidad central de proceso (CPU o microprocesador) pueda acceder muy rápidamente a los datos. A menudo alguna gente confunde la memoria con los dispositivos de almacenamiento masivo. El término memoria hace referencia a la cantidad de RAM instalada en el sistema, mientras que el término almacenamiento hace referencia a la cantidad de espacio disponible en el disco duro para almacenamiento físico de datos. Otra diferencia muy importante es que los datos almacenados en RAM desaparecen al desconectar el ordenador de la alimentación eléctrica. Esto no ocurre con los discos duros. Es muy importante, por ello, salvar nuestro trabajo para que pase de memoria a disco duro y así evitemos pérdidas de información. 1.1 ¿Qué aspecto tiene la memoria? La memoria RAM suele estar integrada en forma de circuitos integrados, conocidos como DRAM (Dynamic Random Access Memory, memoria dinámica de acceso aleatorio). El DRAM es el tipo de chip de memoria más común en el mercado. La calidad de estos chips es un factor determinante a la hora de determinar su durabilidad y su tolerancia frente a fallos. La denominación de dinámica indica que para que el chip de memoria mantenga sus datos necesita ser refrescado o actualizado periódicamente. En cuanto a estos chips se les deja sin alimentación eléctrica, los datos se pierden. “Acceso aleatorio” significa que cada celda de memoria del chip puede ser leída o escrita en cualquier orden. Los bits de la DRAM están dispuestos en celdas, cada una de las cuales contiene un número determinado de bits. Las celdas de la DRAM están colocadas en forma de matriz y se accede a ellas mediante una dirección de filas y columnas. Un acceso típico a DRAM comienza por especificar la fila y después la columna. Después, una señal dentro del chip se activa para determinar si el acceso que se está haciendo es de lectura o escritura. Finalmente, el chip DRAM mueve el dato hacia o desde el bus de salida, dependiendo de que sea una lectura o una escritura. TSOP. Los chips de memoria DRAM suelen venir principalmente en tres formas: DIP, SOJ y Los DIP (Dual Inline Package) fue un tipo de encapsulado muy popular en los tiempos en que los circuitos de memoria se pinchaban directamente en la placa. Podían aparecer soldados o incrustados en los zócalos en la placa. Los SOJ (Small Outlined J-Lead) son otro tipo de encapsulado de memoria que se montan directamente sobre la superficie del circuito impreso. Finalmente, los TSOP (Thin, Small Outlined Package) se afianzaron en el mercado con el nacimiento de los módulos SIMM hasta el punto de convertirse actualmente en la forma de encapsulado DRAM más extendida. Uno de las formas más comunes de integración de los chips DRAM es en forma de SIMM (Single In-Line Memory Module, Módulo de memoria simple en línea) y DIMM (Dual In-Line Memory Module, Módulo de memoria dual en línea). Un SIMM consiste en un determinado número de chips DRAM integrados en una placa de circuito impreso que se inserta en un zócalo específico de la placa base. Un DIMM presenta la misma estructura, aunque con un número diferente de contactos, además de otras características que se verán más adelante. Existen dos tipos de SIMM: de 30 y de 72 contactos. Los primeros ya prácticamente están obsoletos. Los DIMM, por su parte, tienen 168 contactos y es hoy por hoy el tipo de memoria que más se integra en las actuales placas base. 1.2 Bancos y esquemas de memoria La memoria se organiza en los ordenadores en lo que se llaman bancos de memoria. El número de bancos así como su configuración varía de un ordenador a otro ya que esto está determinado por la forma en que cada microprocesador recibe la información. Las necesidades del microprocesador son las que determinan el número de zócalos de memoria requeridos en cada banco. Un esquema de bancos es un diagrama de filas y columnas que muestra el número de zócalos de memoria de un sistema. Esta representación visual es una distribución teórica de los bancos que ayuda al usuario a determinar los requerimientos de configuración cuando se añade memoria. 2. ¿CÓMO TRABAJA LA MEMORIA? 2.1 Bits y bytes Nuestro ordenador habla un lenguaje compuesto únicamente por ceros y unos. Esta forma de comunicación se denomina sistema digital binario, o en el caso de los ordenadores, código máquina. Este lenguaje máquina utiliza secuencias de ceros y unos para componer las instrucciones que posteriormente reciben los diferentes dispositivos del ordenador, tales como microprocesador, periféricos, unidades de disco duro, etc. Un bit (BInary digiT) es la mínima unidad de información empleada por un ordenador, y solamente puede tomar valor 0 o 1. Un byte es la agrupación de 8 bits. Los bytes nos sirven para agrupar los caracteres (letras, números y una serie de signos adicionales) según un código estándar internacional denominado ASCII (American Standard Code for Information Interchange). Todos estos símbolos ASCII (hasta un total de 255) son los que se almacenan en memoria y con los que trabaja internamente el ordenador. Internamente, el intercambio de datos entre microprocesador y memoria se hace en agrupaciones de bits denominadas palabra. Por ejemplo, un microprocesador con arquitectura de 32 bits puede leer o escribir en cada momento 32 bits y decimos que tiene una longitud de palabra de 32 bits. A esto se le llama ciclo de bus y es un factor determinante a la hora de medir las prestaciones de un ordenador. 3. LOS DIFERENTES TIPOS DE MODULOS DE MEMORIA 3.1 SIMM’s de 30 contactos Son los SIMM propios de las primeras placas base con micros de 32 bits (386 y 486). Supongamos una de estas placas con zócalos de 30 contactos, cada uno de los cuales soporta 8 bits de datos. Necesitaremos 4 SIMM’s de 30 contactos para conseguir los 32 bits. Típicamente, estas placas tienen 8 zócalos divididos en dos bancos de 4 zócalos cada uno. El microprocesador sólo puede direccionar uno de los dos bancos en cada momento. En algunos ordenadores, el hecho de mezclar SIMM’s de diferente capacidad en el mismo banco, puede producir efectos tales como una mala detección de la cantidad de memoria del sistema, o que el ordenador no arranque. 3.2 SIMM’s de 72 contactos Los SIMM de 72 contactos se desarrollaron para satisfacer los requerimientos de expansión de memoria cada vez mayores. Un SIMM de 72 contactos soporta 32 bits de datos, es decir, cuatro veces el número de bits de datos soportado por los SIMM de 30 contactos. En placas base con micros de 32 bits (Intel 386 y 486) se necesita sólo un SIMM de 72 contactos por banco para proporcionar al microprocesador los 32 bits de datos. 64 bits necesarios. Con los microprocesadores Pentium, al tener 64 bits para comunicaciones externas (aunque internamente sean micros de 32 bits), se necesita utilizar grupos de dos SIMM para proporcionar los 3.3 Memoria en tarjetas PCMCIA Las tarjetas PCMCIA (Personal Computer Memory Card International Association), del tamaño de una tarjeta de crédito, aunque más gruesa, están diseñadas para su uso en ordenadores portátiles, siendo su uso ideal en ordenadores donde el espacio está limitado. Estas tarjetas PCMCIA, se utilizan, entre otras cosas para proporcionar expansión de memoria en este tipo de ordenadores. Existen otros tipos de tarjetas PCMCIA para portátiles, no necesariamente de memoria, tales como las tarjetas modem-fax o las tarjetas Ethernet. 3.4 Módulos DIMM Los módulos DIMM (Dual In-Line Memory Module) son similares a los SIMM, aunque con notables diferencias. Al igual que los SIMM, los DIMM se instalan verticalmente en los sockets de memoria de la placa base. Sin embargo, un DIMM dispone de 168 contactos, la mitad por cada cara, separados entre sí. Los DIMM se instalan en aquellas placas que soportan típicamente un bus de memoria de 64 bits o más. Típicamente, son los módulos que se montan en todas las placas Pentium-II con chipset LX, y hoy por hoy se han convertido en el estándar en memoria. 3.5 Small Outline DIMM (SO-DIMM) Otro tipo de memoria típicamente utilizada en ordenadores portátiles es la llamada SODIMM. Un SO-DIMM es muy parecido a un SIMM de 72 contactos, pero en un tamaño reducido y con una serie de diferencias técnicas. 4. FACTORES CARACTERISTICOS DE LA MEMORIA 4.1 Integridad de datos Uno de los aspectos en el diseño de la memoria implica el asegurar la integridad de los datos en ella almacenados. Actualmente, existen dos métodos principales para asegurar la integridad de los datos: 1. Paridad: ha sido el método más común usado hasta la fecha. Este proceso consiste en añadir un bit adicional por cada 8 bits de datos. Este bit adicional nos indica si el número de unos es par o impar (igual se puede hacer con los ceros. A esto se denomina criterio de paridad par o impar). 2. Códigos de Corrección de Errores (ECC): Es un método más avanzado de control de la integridad de los datos que puede detectar y corregir errores en bits simples. Debido a la competencia de precios, la norma más habitual es la de no introducir métodos de control de la integridad de los datos en la memoria, siendo más caros aquellos módulos que sí incluyen alguno de estos dos métodos de control de errores. El controlador de memoria También conocido como MMU (Memory Manager Unit, unidad de manejo de memoria), es un componente esencial en cualquier ordenador. Simplemente es un chip (actualmente suele venir integrado como parte de otro chip o del microprocesador) cuya función consiste en controlar el intercambio de datos entre microprocesador y memoria. El controlador de memoria determina el funcionamiento del control de errores, si es que existe. Es muy importante determinar la necesidad de introducir o no un sistema de memoria con control de integridad. Generalmente esto se implementa en grandes servidores y ordenadores de alto rendimiento donde la integridad de datos es un factor importante. Control de Paridad Cuando se implementa un sistema de paridad en un sistema informático, se almacena un bit de paridad por cada 8 bits de datos. Existen dos métodos de control de paridad: paridad par y paridad impar, dependiendo de que aquello que se controle sea el número de ceros o de unos en cada grupo de ocho bits en memoria. El método de control de paridad tiene sus limitaciones. Por ejemplo, un sistema de control de paridad, puede detectar errores, pero no corregirlos. Incluso puede darse el caso de que varios bits sean erróneos y el sistema no detecte error alguno. ECC Este es un método que se implementa en grandes servidores y equipos de altas prestaciones. La importancia de este método es que es capaz de detectar y corregir errores de 1 bit. Todo esto ocurre sin que el usuario tenga constancia de ello. Cuando se detectan múltiples errores en varios bits, el sistema acaba por devolver un error de paridad en memoria. 4.2 Refresco Un módulo de memoria está fabricado a base de celdas eléctricas. El proceso de refresco recarga esas celdas, que se distribuyen en el chip en forma de filas. La tasa de refresco hace referencia al número de filas que se deben refrescar. Dos tasas de refresco típicas son las de 2 y 4 Kb. Unos componentes DRAM especialmente diseñados son aquellos que emplean tecnología de autorefresco, que hace posible que los componentes se refresquen a sí mismos. Esta tecnología de autorefresco, que se integra dentro del propio chip, reduce dramáticamente el consumo de energía y se emplea frecuentemente en ordenadores portátiles. 4.3 Voltaje Las memorias de ordenador operan típicamente a 5 o a 3,3 voltios. Hasta hace poco, el estándar eran los 5 voltios. Actualmente, los chips operan a 3,3 voltios, trabajan más rápido y consumen menos energía. 4.4 Módulos compuestos y no compuestos El termino compuesto y no compuesto hace referencia al número de chips usados en un módulo de memoria determinado. Un módulo no compuesto es aquel que emplea pocos chips. Estos chips deben tener una muy alta densidad de integración. Esto hace posible integrar mayor cantidad de memoria en el mismo módulo, cuando antes, con los módulos compuestos se necesitaba un mayor número de chips para conseguir la misma cantidad de memoria. 5. TIPOS DE MEMORIA 5.1 FPM (Fast Page Mode) El Fast Page Mode DRAM es un tipo de memoria más rápida que la DRAM estándar gracias a su habilidad para trabajar con páginas. Una página se puede describir como la sección de memoria disponible dentro de la misma fila. En cada fila de memoria nos encontramos con bastantes columnas de bits. Con la memoria FPM sólo se necesita saber la dirección de la fila que indica la dirección de página. De esta forma, en accesos sucesivos a la misma página sólo tendremos que seleccionar la dirección de la columna, lo que ahorra tiempo en el acceso a memoria. 5.2 EDO (Extended Data Out) Es una de las innovaciones que surgieron en la tecnología de memoria. En una placa base diseñada para soportar memoria EDO, esta memoria permite al microprocesador acceder a ella de un 10 a un 15 % más rápidamente en comparación con la antigua tecnología FPM. La memoria EDO trabaja de forma parecida a la FPM, es decir, mediante páginas, pero la EDO mejora considerablemente los ciclos de tiempos, ya que permite al controlador de memoria acceder a una nueva columna mientras se lee el dato de la dirección actual. Pero la EDO tiene dos características más que la hacen especial: Su diseño de memoria ofrece un ancho de banda mayor y una frecuencia de acceso simplificada. Por ejemplo, mientras que una memoria FPM estándar de 60 ns. presenta un ciclo de tiempo de 40 ns, una EDO de 60 ns. presenta un ciclo de tan sólo 25 ns. 5.3 BEDO DRAM (Burst Extended Data Out Dynamic RAM) Representa un paso más en la evolución de la memoria EDO, al incluir una etapa pipeline de segmentación encauzada y un contador burst de 2 bits. En términos de porcentaje, la memoria BEDO es el doble de rápida que la FPM, y del orden de un 30.35 % más rápida que la EDO. En la siguiente tabla se resumen las frecuencias para los distintos tipos de memoria DRAM con diferentes tiempos de acceso: Tiempo de acceso 70 ns 60 ns 50 ns FPM 25 Mhz 28 Mhz 33 Mhz EDO 33 Mhz 40 Mhz 50 Mhz BEDO 50 Mhz 60 Mhz 66 Mhz 5.4 SDRAM (Synchronous Dynamic RAM) Representa la última innovación tecnológica en memoria. La memoria SDRAM se implementa en los módulos DIMM y utiliza un reloj para sincronizar la lectura y la escritura en un chip de memoria. Este reloj está sincronizado con el reloj interno del microprocesador, lo que hace que el rendimiento en lectura/escritura entre microprocesador y memoria se dispare considerablemente. El interés principal por la SDRAM estriba en el hecho de que son capaces de alcanzar frecuencias de accesos superiores a los 100 Mhz. 6 LA MEMORIA CACHE La caché es una memoria especial de alta velocidad, diseñada para acelerar el procesamiento de instrucciones del microprocesador, el cual, puede acceder a los datos almacenados en caché mucho más rápidamente que a aquellos datos almacenados en la memoria RAM. A modo de ejemplo, un Pentium a 100 Mhz, tarda 180 nanosegundos en leer un dato de la RAM, mientras que tan sólo tarda 45 nanosegundos en leerlo de la caché. Los tipos de memoria caché incluyen la caché de nivel 1 (L1, la que está incluida en el microprocesador) y la caché de nivel 2 (L2, la que se incluye generalmente en la placa base). A esto también se le conoce como caché interna y externa. En cuanto a la caché de nivel 2 (L2), existen dos formas de organización típicas: writeback y writetrough. Estas dos formas se pueden elegir en BIOS, siendo la más aconsejable la writeback. La memoria caché puede funcionar de forma síncrona o asíncrona, según el tipo, pero los chips síncronos son más caros. Como alternativa intermedia, la caché que se suele implantar en todas las placas base es la denominada burst pipelined, que ofrece unas características similares a la caché síncrona, pero es más barata. 7 LA MEMORIA DE VIDEO La RAM de vídeo de las diferentes tarjetas gráficas varía en calidad y cantidad. La cantidad no tiene mucho que explicar: a mayor cantidad de RAM de vídeo, mayor número de colores simultáneos en pantalla y mayores resoluciones, así como mayores capacidades gráficas en aplicaciones 3D. En cuanto a los diferentes tipos de RAM de vídeo analizaremos cada una de las existentes. • DRAM (Dynamic RAM): También denominada Fast Page o FPM es la misma que empleaban los ordenadores 486 y la primera que comenzó a usarse en gráficos. Cada celdilla de memoria se carga o no eléctricamente. La carga significa 1 y la descarga un 0. Lo de dinámica significa que la memoria necesita ser refrescada varias veces por segundo para conservar su contenido, y durante este refresco no puede ser accedida. Esta memoria sólo puede hacer una cosa cada vez (leerse o escribirse, pero no ambas cosas simultáneamente). Es la más barata pero la que menos prestaciones ofrece. • VRAM: Es el tipo más común de memoria presente en la mayoría de tarjetas gráficas actuales. Esta es una memoria de doble puerta que permite escribir y leer simultáneamente, lo que puede hacer doblar el ancho de banda. Para ello, esta memoria necesita un controlador especializado. Por otra parte, no es un tipo de memoria que difiera mucho de la DRAM. • EDO RAM (Extended Data Out RAM): Es algo más cara que la DRAM pero tiene una frecuencia de reloj de 40-50 Mhz y permite un menor tiempo de acceso, lo que incrementa su ancho de banda (105 Mb/s, frente a los 80 Mb/s de la DRAM). Por otra parte no hay más diferencia. Se puede considerar una mejora de la DRAM. • CDRAM y 3D RAM: Mitsubishi diseñó inicialmente la CDRAM (Cached DRAM) y a partir de ahí se creó un tipo de memoria optimizada para renderización de gráficos 3D con la incorporación de una ALU (Unidad Aritmético Lógica) dentro del chip, una unidad de comparación y acceso serie, buffers de vídeo y otras funciones: la 3D RAM. Esta también es una memoria de doble puerta. Actualmente, la memoria CDRAM se utiliza para el almacenamiento de texturas, y la 3DRAM para operaciones como Zbuffering. • MDRAM (Multibank Dynamic Random Access Memory): Emplea la misma tecnología que la DRAM estándar, pero está configurada en un máximo de 32 bancos, cada uno de ellos con su propia estructura de filas y columnas. Esto significa que varios procesos simultáneos pueden acceder de una forma más rápida a la memoria, acelerando el refresco de la pantalla. Esta memoria se organiza alrededor de un bus común de alta velocidad por el que puede fluir una gran cantidad de datos. • SGRAM (Sinchronous Graphic RAM) / SDRAM (Sinchronous DRAM): Son memorias de altas prestaciones de reciente aparición en el mercado. Ambas son tipos de memoria síncronas, lo que hacen que se minimicen los retardos de acceso. • WRAM (Windows RAM): Es un tipo de memoria especialmente diseñada para aplicaciones gráficas. Se puede describir como una VGA de doble puerta y direccionamiento por bloques. Parte de la ventaja de que los sistemas operativos con interfaz gráfica tienden a trabajar con numerosas áreas rectangulares del mismo color. En lugar de tener que direccionar estos rectángulos pixel a pixel, puesto que son homogéneos, esta memoria permite asignar un mismo valor de color a un bloque completo de pixels. Esto hace que además emplee menos componentes de silicio, con el abaratamiento de su coste. 8 MEMORIA NO VOLATIL: ROM Hasta ahora hemos hablado de memorias volátiles, que pierden la información cuando se les interrumpe el suministro eléctrico. Hay otro tipo de memorias que no pierden la información: son las denominadas ROM (Read Only Memory, o memorias de solo lectura). Este tipo de memoria es la que suele albergar la BIOS (sistema básico de entrada/salida) de cualquier placa base. En cuanto se enciende el ordenador, el microprocesador busca en la ROM BIOS y ejecuta el programa en ella almacenado, que lo obliga a realizar una serie de operaciones iniciales de comprobación. Después le indica que busque en el primer sector (sector 0) del disco duro o cualquier otro dispositivo de almacenamiento, el arranque del sistema operativo. Debido a que los tiempos de acceso a una memoria ROM suelen ser bastante altos, generalmente se utiliza una técnica consistente en pasar estos contenidos a la RAM, mucho más rápida, y ejecutarlo desde allí. A esta técnica se la denomina shadowing. Las actuales ROM en realidad no son memorias de sólo lectura, sino que son de tipo FLASH EPROM, es decir, que se les puede reprogramar el contenido, y pueden ser actualizadas. 9 EL FUTURO En los próximos años veremos aparecer toda una serie de nuevas tecnologías de memoria, acorde con la aparición de nuevos microprocesadores más rápidos y aplicaciones que necesiten de una ejecución ágil. Entre otros diseños, pronto verán la luz la SDRAM II, también denominada SDRAM DDR (Double Data Rate, doble tasa de datos), que no será sino una evolución de la actual memoria SDRAM. También veremos el Direct RAMBUS o RDRAM, un diseño exclusivo desarrollado por la compañía RAMBUS y que resulta extremadamente rápido y utiliza un canal de banda ancha reducido para transmitir datos a una velocidad diez veces más rápida que las memorias DRAM estándar, con frecuencias cercanas a los 500 Mhz. En la misma línea de investigación, encontramos otras dos variantes, la Concurrent RDRAM y la Direct RDRAM. La primera está basada en el diseño estándar de la RDRAM, el cual ha sido mejorado para aumentar su velocidad y rendimiento. El segundo tipo es parecido, pero incorpora aún más novedades tecnológicas que lo hacen más rápido que la memoria RDRAM concurrente. Estos tipos de memoria todavía no se utilizan de forma estándar en placas base, aunque ya se utilizan en consolas de videojuegos (Nintendo 64) y en algunas tarjetas de Creative Labs. Finalmente, la memoria SLDRAM será el competidor más directo de la RDRAM el próximo año 1999 cuando se lancen al mercado. La SLDRAM es el resultado de un consorcio de 12 empresas fabricantes de chips DRAM y compañías de hardware. Básicamente es una ampliación en el diseño de la actual arquitectura SDRAM, que permite extender el actual diseño de 4 bancos a un total de 16 bancos.