domingo, 11 de septiembre de 2011

MEMORIA RAM

MEMORIA RAM
La memoria de acceso aleatorio (en inglés: random-access memory, cuyo acrónimo es RAM) es la memoria desde donde el procesador recibe las instrucciones y guarda los resultados.

Historia

Integrado de silicio de 64 bits sobre un sector de memoria de núcleo (finales de los 60).
La historia está marcada por la necesidad del volumen de datos. Originalmente, los datos eran programados por el usuario con movimientos de interruptores. Se puede decir que el movimiento de datos era bit a bit. Las necesidades apuntaron a una automatización y se crearon lo que se denomina byte de palabra. Desde una consola remota, se trasladaban los interruptores asignándoles valores de letra, que correspondían a una orden de programación al microprocesador. Así, si se deseaba programar una orden NOT con dos direcciones distintas de memoria, solo se tenía que activar el grupo de interruptores asociados a la letra N, a la letra O y a la letra T. Seguidamente, se programaban las direcciones de memoria sobre las cuales recibirían dicho operador lógico, para después procesar el resultado. Los interruptores evolucionaron asignándoles una tabla de direccionamiento de 16x16 bytes, en donde se daban 256 valores de byte posibles (la actual tabla ASCII). En dicha tabla, se traducen lo que antes costaba activar 8 interruptores por letra, a una pulsación por letra (de cara al recurso humano, un ahorro en tiempos. Una sola pulsación, predisponía 1 byte en RAM... o en otras palabras, cambiaba la posición de 8 interruptores con una sola pulsación). Se usó el formato de máquina de escribir, para representar todo el alfabeto latino, necesario para componer palabras en inglés; así como los símbolos aritméticos y lógicos que permitían la escritura de un programa directamente en memoria RAM a través de una consola o teclado.
En origen, los programadores no veían en tiempo real lo que tecleaban, teniendo que imprimir de cuando en cuando el programa residente en memoria RAM y haciendo uso del papel a la hora de ir modificando o creando un nuevo programa. Dado que el papel era lo más accesible, los programas comenzaron a imprimirse en un soporte de celulosa más resistente, creando lo que se denominó Tarjeta perforada. Así pues, los programas constaban de una o varias tarjetas perforadas, que se almacenaban en archivadores de papel con las típicas anillas de sujeción. Dichas perforaciones, eran leídas por un dispositivo de entrada, que no era muy diferente al teclado y que constaba de pulsadores que eran activados o desactivados, dependiendo de si la tarjeta en la posición de byte, contenía una perforación o no. Cada vez que se encendía la máquina, requería de la carga del programa que iba a ejecutar.
Dado que los datos en memoria son de 0 o 1, que esas posiciones físicamente representan el estado de un conmutador, que la estimulación del conmutador evolucionó a pulsos electromagnéticos, el almacenamiento de los programas era cuestión de tiempo que su almacenamiento pasara del papel a un soporte lógico, tal como las cintas de almacenamiento. Las cintas eran secuenciales, y la composición de la cinta era de un material magnetoestático; bastaba una corriente Gauss para cambiar las polaridades del material. Dado que el material magnético puede tener polaridad norte o sur, era ideal para representar el 0 o el 1. Así, ahora, cargar un programa no era cuestión de estar atendiendo un lector de tarjetas en el cual se debían de ir metiendo de forma interminable tarjetas perforadas que apenas podían almacenar apenas unos bytes. Ahora, los dispositivos electromagnéticos secuenciales requerían la introducción de la cinta y la pulsación de una tecla para que se cargara todo el programa de inicio a fin, de forma secuencial. Los accesos aleatorios no aparecieron hasta la aparición del disco duro y el Floppy. Con estos medios, un cabezal lector se deslizaba por la superficie en movimiento,

TIPOS DE MEMORIAS

Uno de los primeros tipos de memoria RAM fue la memoria de núcleo magnético, desarrollada entre 1949 y 1952 y usada en muchos computadores hasta el desarrollo de circuitos integrados a finales de los años 60 y principios de los 70. Antes que eso, las computadoras usaban relés y líneas de retardo de varios tipos construidas con tubos de vacío para implementar las funciones de memoria principal con o sin acceso aleatorio.
En 1969 fueron lanzadas una de las primeras memorias RAM basadas en semiconductores de silicio por parte de Intel con el integrado 3101 de 64 bits de memoria y para el siguiente año se presentó una memoria DRAM de 1 Kibibyte, referencia 1103 que se constituyó en un hito, ya que fue la primera en ser comercializada con éxito, lo que significó el principio del fin para las memorias de núcleo magnético. En comparación con los integrados de memoria DRAM actuales, la 1103 es primitiva en varios aspectos, pero tenía un desempeño mayor que la memoria de núcleos.
En 1973 se presentó una innovación que permitió otra miniaturización y se convirtió en estándar para las memorias DRAM: la multiplexación en tiempo de la direcciones de memoria. MOSTEK lanzó la referencia MK4096 de 4 Kb en un empaque de 16 pines,2 mientras sus competidores las fabricaban en el empaque DIP de 22 pines. El esquema de direccionamiento3 se convirtió en un estándar de facto debido a la gran popularidad que logró esta referencia de DRAM. Para finales de los 70 los integrados eran usados en la mayoría de computadores nuevos, se soldaban directamente a las placas base o se instalaban en zócalos, de manera que ocupaban un área extensa de circuito impreso. Con el tiempo se hizo obvio que la instalación de RAM sobre el impreso principal, impedía la miniaturización , entonces se idearon los primeros módulos de memoria como el SIPP, aprovechando las ventajas de la construcción modular. El formato SIMM fue una mejora al anterior, eliminando los pines metálicos y dejando unas áreas de cobre en uno de los bordes del impreso, muy similares a los de las tarjetas de expansión, de hecho los módulos SIPP y los primeros SIMM tienen la misma distribución de pines.
A finales de los 80 el aumento en la velocidad de los procesadores y el aumento en el ancho de banda requerido, dejaron rezagadas a las memorias DRAM con el esquema original MOSTEK, de manera que se realizaron una serie de mejoras en el direccionamiento como las siguientes:
Módulos formato SIMM de 30 y 72 pines, los últimos fueron utilizados con integrados tipo EDO-RAM.
  • FPM-RAM (Fast Page Mode RAM)
Inspirado en técnicas como el "Burst Mode" usado en procesadores como el Intel 486,4 se implantó un modo direccionamiento en el que el controlador de memoria envía una sola dirección y recibe a cambio esa y varias consecutivas sin necesidad de generar todas las direcciones. Esto supone un ahorro de tiempos ya que ciertas operaciones son repetitivas cuando se desea acceder a muchas posiciones consecutivas. Funciona como si deseáramos visitar todas las casas en una calle: después de la primera vez no seria necesario decir el número de la calle únicamente seguir la misma. Se fabricaban con tiempos de acceso de 70 ó 60 ns y fueron muy populares en sistemas basados en el 486 y los primeros Pentium.
  • EDO-RAM (Extended Data Output RAM)
Lanzada en 1995 y con tiempos de accesos de 40 o 30 ns suponía una mejora sobre su antecesora la FPM. La EDO, también es capaz de enviar direcciones contiguas pero direcciona la columna que va utilizar mientras que se lee la información de la columna anterior, dando como resultado una eliminación de estados de espera, manteniendo activo el búffer de salida hasta que comienza el próximo ciclo de lectura.
  • BEDO-RAM (Burst Extended Data Output RAM)
Fue la evolución de la EDO RAM y competidora de la SDRAM, fue presentada en 1997. Era un tipo de memoria que usaba generadores internos de direcciones y accedía a más de una posición de memoria en cada ciclo de reloj, de manera que lograba un desempeño un 50% mejor que la EDO. Nunca salió al mercado, dado que Intel y otros fabricantes se decidieron por esquemas de memoria sincrónicos que si bien tenían mucho del direccionamiento MOSTEK, agregan funcionalidades distintas como señales de reloj.

CARACTERISTICAS
Se utiliza como memoria de trabajo para el sistema operativo, los programas y la mayoría del software. Es allí donde se cargan todas las instrucciones que ejecutan el procesador y otras unidades de cómputo. Se denominan "de acceso aleatorio" porque se puede leer o escribir en una posición de memoria con un tiempo de espera iguEntre las características sobresalientes del controlador de memoria, está la capacidad de manejar la tecnología de canal doble (Dual Channel), tres canales, o incluso cuatro para los procesadores venideros; donde el controlador maneja bancos de memoria de 128 bits. Aunque el ancho del bus de datos del procesador sigue siendo de 64 bits, el controlador de memoria puede entregar los datos de manera intercalada, optando por uno u otro canal, reduciendo las latencias vistas por el procesador. La mejora en el desempeño es variable y depende de la configuración y uso del equipo. Esta característica ha promovido la modificación de los controladores de memoria, resultando en la aparición de nuevos chipsets (la serie 865 y 87al para cualquier posición, no siendo necesario seguir un orden para acceder a la información de la manera más rápida posible.

COMPONENTES
La memoria RAM contenida en los módulos, se conecta a un controlador de memoria que se encarga de gestionar las señales entrantes y salientes de los integrados DRAM. Algunas señales son las mismas que se utilizan para utilizar cualquier memoria: Direcciones de las posiciones, datos almacenados y señales de control. El controlador de memoria debe ser diseñado basándose en una tecnología de memoria, por lo general soporta solo una, pero existen excepciones de sistemas cuyos controladores soportan dos tecnologías (por ejemplo SDR y DDR o DDR1 y DDR2), esto sucede en las épocas transitorias de una nueva tecnología de RAM. Los controladores de memoria en sistemas como PC y servidores se encuentran embebidos en el llamado "North Bridge" o "Puente Norte" de la placa base; o en su defecto, dentro del mismo procesador (en el caso de los procesadores desde AMD Athlon 64 e Intel Core i7) y posteriores; y son los encargados de manejar la mayoría de información que entra y sale del procesador.
Las señales básicas en el módulo están divididas en dos buses y un conjunto misceláneo de líneas de control y alimentación. Entre todas forman el bus de memoria:
  • Bus de datos: Son las líneas que llevan información entre los integrados y el controlador. Por lo general están agrupados en octetos siendo de 8,16,32 y 64 bits, cantidad que debe igualar el ancho del bus de datos del procesador. En el pasado, algunos formatos de modulo, no tenían un ancho de bus igual al del procesador.En ese caso había que montar módulos en pares o en situaciones extremas, de a 4 módulos, para completar lo que se denominaba banco de memoria, de otro modo el sistema no funciona. Esa es la principal razón de haber aumentar el número de pines en los módulos, igualando el ancho de bus de procesadores como el Pentium de 64 bits a principios de los 90.
  • Bus de direcciones: Es un bus en el cual se colocan las direcciones de memoria a las que se requiere acceder. No es igual al bus de direcciones del resto del sistema, ya que está multiplexado de manera que la dirección se envía en dos etapas.Para ello el controlador realiza temporizaciones y usa las líneas de control. En cada estándar de módulo se establece un tamaño máximo en bits de este bus, estableciendo un límite teórico de la capacidad máxima por módulo.
  • Señales misceláneas: Entre las que están las de la alimentación (Vdd, Vss) que se encargan de entregar potencia a los integrados. Están las líneas de comunicación para el integrado de presencia que da información clave acerca del módulo. También están las líneas de control entre las que se encuentran las llamadas RAS (row address strobe) y CAS (column address strobe) que controlan el bus de direcciones y las señales de reloj en las memorias sincrónicas SDRAM.
Entre las características sobresalientes del controlador de memoria, está la capacidad de manejar la tecnología de canal doble (Dual Channel), tres canales, o incluso cuatro para los procesadores venideros; donde el controlador maneja bancos de memoria de 128 bits

No hay comentarios:

Publicar un comentario