Memoria de acceso aleatorio (RAM)

Compartir Imprimir Citar

La memoria de acceso aleatorio (RAM, Random-access memory) es una forma de memoria de computadora que se puede leer y cambiar en cualquier orden, generalmente se usa para almacenar datos de trabajo y código de máquina. Un dispositivo de memoria de acceso aleatorio permite leer o escribir elementos de datos en casi la misma cantidad de tiempo, independientemente de la ubicación física de los datos dentro de la memoria, en contraste con otros medios de almacenamiento de datos de acceso directo (como discos duros, CD- RW, DVD-RW y las antiguas cintas magnéticas y memoria de tambor), donde el tiempo requerido para leer y escribir elementos de datos varía significativamente dependiendo de sus ubicaciones físicas en el soporte de grabación, debido a limitaciones mecánicas como la velocidad de rotación del soporte y el movimiento del brazo.

La RAM contiene circuitos de multiplexación y demultiplexación para conectar las líneas de datos al almacenamiento direccionado para leer o escribir la entrada. Por lo general, la misma dirección accede a más de un bit de almacenamiento, y los dispositivos RAM a menudo tienen múltiples líneas de datos y se dice que son dispositivos de "8 bits" o "16 bits", etc.

En la tecnología actual, la memoria de acceso aleatorio toma la forma de chips de circuito integrado (IC) con celdas de memoria MOS (semiconductor de óxido de metal). La RAM normalmente se asocia con tipos de memoria volátiles (como los módulos de memoria dinámica de acceso aleatorio (DRAM)), donde la información almacenada se pierde si se desconecta la alimentación, aunque también se ha desarrollado RAM no volátil. Existen otros tipos de memorias no volátiles que permiten el acceso aleatorio para operaciones de lectura, pero no permiten operaciones de escritura o tienen otro tipo de limitaciones. Estos incluyen la mayoría de los tipos de ROM y un tipo de memoria flash llamada NOR-Flash.

Los dos tipos principales de memoria de semiconductor volátil de acceso aleatorio son la memoria estática de acceso aleatorio (SRAM) y la memoria dinámica de acceso aleatorio (DRAM). Los usos comerciales de la RAM de semiconductores se remontan a 1965, cuando IBM introdujo el chip SP95 SRAM para su computadora System/360 Model 95, y Toshiba usó celdas de memoria DRAM para su calculadora electrónica Toscal BC-1411, ambas basadas en transistores bipolares. La memoria MOS comercial, basada en transistores MOS, se desarrolló a fines de la década de 1960 y desde entonces ha sido la base de todas las memorias de semiconductores comerciales. El primer chip DRAM IC comercial, el Intel 1103, se introdujo en octubre de 1970. La memoria dinámica sincrónica de acceso aleatorio (SDRAM) debutó más tarde con el chip Samsung KM48SL2000 en 1992.

Historia

Las primeras computadoras usaban relés, contadores mecánicos o líneas de retardo para funciones de memoria principal. Las líneas de retardo ultrasónicas eran dispositivos en serie que solo podían reproducir datos en el orden en que fueron escritos. La memoria del tambor se podía expandir a un costo relativamente bajo, pero la recuperación eficiente de los elementos de la memoria requería el conocimiento del diseño físico del tambor para optimizar la velocidad. Los pestillos construidos con triodos de tubos de vacío y, más tarde, con transistores discretos, se utilizaron para memorias más pequeñas y rápidas, como los registros. Dichos registros eran relativamente grandes y demasiado costosos para grandes cantidades de datos; en general, solo se pueden proporcionar unas pocas docenas o unos pocos cientos de bits de dicha memoria.

La primera forma práctica de memoria de acceso aleatorio fue el tubo de Williams que comenzó en 1947. Almacenaba datos como puntos cargados eléctricamente en la superficie de un tubo de rayos catódicos. Dado que el haz de electrones del CRT podía leer y escribir los puntos del tubo en cualquier orden, la memoria era de acceso aleatorio. La capacidad del tubo Williams era de unos pocos cientos a alrededor de mil bits, pero era mucho más pequeño, más rápido y más eficiente energéticamente que el uso de pestillos de tubo de vacío individuales. Desarrollado en la Universidad de Manchester en Inglaterra, el tubo Williams proporcionó el medio en el que se implementó el primer programa almacenado electrónicamente en la computadora Manchester Baby, que ejecutó con éxito un programa por primera vez el 21 de junio de 1948. De hecho, en lugar de diseñar la memoria del tubo Williams para el Bebé, el Bebé fue un banco de pruebas para demostrar la confiabilidad de la memoria.

La memoria de núcleo magnético se inventó en 1947 y se desarrolló hasta mediados de la década de 1970. Se convirtió en una forma generalizada de memoria de acceso aleatorio, basada en una serie de anillos magnetizados. Al cambiar el sentido de la magnetización de cada anillo, los datos podrían almacenarse con un bit almacenado por anillo. Dado que cada anillo tenía una combinación de cables de dirección para seleccionarlo y leerlo o escribirlo, era posible acceder a cualquier ubicación de memoria en cualquier secuencia. La memoria de núcleo magnético era la forma estándar de sistema de memoria de computadora hasta que fue desplazada por la memoria de semiconductores MOS (metal-óxido-silicio) de estado sólido en los circuitos integrados (CI) a principios de la década de 1970.

Antes del desarrollo de los circuitos integrados de memoria de solo lectura (ROM), la memoria de acceso aleatorio permanente (o de solo lectura) a menudo se construía utilizando matrices de diodos impulsadas por decodificadores de direcciones, o planos de memoria de cuerda de núcleo especialmente enrollados.

La memoria de semiconductores comenzó en la década de 1960 con la memoria bipolar, que usaba transistores bipolares. Si bien mejoró el rendimiento, no pudo competir con el precio más bajo de la memoria de núcleo magnético.

Memoria RAM

La invención del MOSFET (transistor de efecto de campo de semiconductor de óxido de metal), también conocido como transistor MOS, por Mohamed M. Atalla y Dawon Kahng en Bell Labs en 1959, condujo al desarrollo del semiconductor de óxido de metal (MOS) por John Schmidt en Fairchild Semiconductor en 1964. Además de un mayor rendimiento, la memoria de semiconductores MOS era más barata y consumía menos energía que la memoria de núcleo magnético. El desarrollo de la tecnología de circuito integrado MOS de puerta de silicio (MOS IC) por parte de Federico Faggin en Fairchild en 1968 permitió la producción de chips de memoria MOS. La memoria MOS superó a la memoria de núcleo magnético como la tecnología de memoria dominante a principios de la década de 1970.

Una memoria de acceso aleatorio estática bipolar integrada (SRAM) fue inventada por Robert H. Norman en Fairchild Semiconductor en 1963. Fue seguida por el desarrollo de MOS SRAM por John Schmidt en Fairchild en 1964. SRAM se convirtió en una alternativa a la memoria de núcleo magnético, pero requería seis transistores MOS para cada bit de datos. El uso comercial de SRAM comenzó en 1965, cuando IBM introdujo el chip de memoria SP95 para el System/360 Model 95.

La memoria dinámica de acceso aleatorio (DRAM) permitió reemplazar un circuito de bloqueo de 4 o 6 transistores por un solo transistor para cada bit de memoria, aumentando considerablemente la densidad de la memoria a costa de la volatilidad. Los datos se almacenaban en la pequeña capacitancia de cada transistor y tenían que actualizarse periódicamente cada pocos milisegundos antes de que la carga pudiera escaparse. La calculadora electrónica Toscal BC-1411 de Toshiba, que se introdujo en 1965, utilizaba una forma de DRAM bipolar capacitiva, que almacenaba datos de 180 bits en celdas de memoria discretas, que consistían en condensadores y transistores bipolares de germanio. Si bien ofrecía un rendimiento mejorado con respecto a la memoria de núcleo magnético, la DRAM bipolar no podía competir con el precio más bajo de la memoria de núcleo magnético entonces dominante.

La tecnología MOS es la base de la DRAM moderna. En 1966, el Dr. Robert H. Dennard del Centro de Investigación IBM Thomas J. Watson estaba trabajando en la memoria MOS. Mientras examinaba las características de la tecnología MOS, descubrió que era capaz de construir capacitores, y que almacenar una carga o no cargar en el capacitor MOS podía representar el 1 y el 0 de un bit, mientras que el transistor MOS podía controlar la escritura de la carga en el capacitor. condensador. Esto lo llevó al desarrollo de una celda de memoria DRAM de un solo transistor. En 1967, Dennard presentó una patente ante IBM para una celda de memoria DRAM de un solo transistor, basada en la tecnología MOS. El primer chip DRAM IC comercial fue el Intel 1103, que se fabricó en un proceso MOS de 8 µm con una capacidad de 1 kbit y se lanzó al mercado en 1970.

La memoria dinámica síncrona de acceso aleatorio (SDRAM) fue desarrollada por Samsung Electronics. El primer chip SDRAM comercial fue el Samsung KM48SL2000, que tenía una capacidad de 16 Mbit. Fue presentado por Samsung en 1992 y producido en masa en 1993. El primer chip de memoria comercial DDR SDRAM (SDRAM de doble velocidad de datos) fue el chip DDR SDRAM de 64 Mbit de Samsung, lanzado en junio de 1998. GDDR (DDR de gráficos) es una forma de DDR SGRAM (RAM de gráficos síncronos), que Samsung lanzó por primera vez como un chip de memoria de 16 Mbit en 1998.

Tipos

Las dos formas más utilizadas de RAM moderna son la RAM estática (SRAM) y la RAM dinámica (DRAM). En SRAM, un bit de datos se almacena usando el estado de una celda de memoria de seis transistores, generalmente usando seis MOSFET (transistores de efecto de campo de semiconductores de óxido de metal). Esta forma de RAM es más costosa de producir, pero generalmente es más rápida y requiere menos potencia dinámica que la DRAM. En las computadoras modernas, SRAM se usa a menudo como memoria caché para la CPU. DRAM almacena un poco de datos usando un par de transistores y capacitores (típicamente un capacitor MOSFET y MOS, respectivamente),que juntos forman una celda DRAM. El capacitor tiene una carga alta o baja (1 o 0, respectivamente), y el transistor actúa como un interruptor que permite que el circuito de control del chip lea el estado de carga del capacitor o lo cambie. Como esta forma de memoria es menos costosa de producir que la RAM estática, es la forma predominante de memoria de computadora utilizada en las computadoras modernas.

Tanto la RAM estática como la dinámica se consideran volátiles, ya que su estado se pierde o se restablece cuando se desconecta la alimentación del sistema. Por el contrario, la memoria de solo lectura (ROM) almacena datos al habilitar o deshabilitar permanentemente los transistores seleccionados, de modo que la memoria no se pueda alterar. Las variantes grabables de ROM (como EEPROM y NOR flash) comparten propiedades tanto de ROM como de RAM, lo que permite que los datos persistan sin energía y se actualicen sin necesidad de equipo especial. La memoria ECC (que puede ser SRAM o DRAM) incluye circuitos especiales para detectar y/o corregir fallas aleatorias (errores de memoria) en los datos almacenados, utilizando bits de paridad o códigos de corrección de errores.

En general, el término RAM se refiere únicamente a dispositivos de memoria de estado sólido (ya sea DRAM o SRAM), y más específicamente a la memoria principal en la mayoría de las computadoras. En el almacenamiento óptico, el término DVD-RAM es algo inapropiado ya que, a diferencia de los CD-RW o DVD-RW, no es necesario borrarlo antes de volver a utilizarlo. Sin embargo, un DVD-RAM se comporta como una unidad de disco duro, aunque algo más lento.

Celda de memoria

La celda de memoria es el componente fundamental de la memoria de la computadora. La celda de memoria es un circuito electrónico que almacena un bit de información binaria y debe configurarse para almacenar un 1 lógico (nivel de alto voltaje) y restablecerse para almacenar un 0 lógico (nivel de bajo voltaje). Su valor se mantiene/almacena hasta que se modifica mediante el proceso de configuración/reposición. Se puede acceder al valor en la celda de memoria leyéndolo.

En SRAM, la celda de memoria es un tipo de circuito flip-flop, generalmente implementado mediante FET. Esto significa que SRAM requiere muy poca energía cuando no se accede a ella, pero es costosa y tiene una baja densidad de almacenamiento.

Un segundo tipo, DRAM, se basa en un condensador. La carga y descarga de este capacitor puede almacenar un "1" o un "0" en la celda. Sin embargo, la carga en este condensador se filtra lentamente y debe actualizarse periódicamente. Debido a este proceso de actualización, la DRAM usa más energía, pero puede lograr mayores densidades de almacenamiento y costos unitarios más bajos en comparación con la SRAM.

Direccionamiento

Para ser útiles, las celdas de memoria deben ser legibles y escribibles. Dentro del dispositivo RAM, se utilizan circuitos de multiplexación y demultiplexación para seleccionar celdas de memoria. Normalmente, un dispositivo RAM tiene un conjunto de líneas de dirección A0... An, y para cada combinación de bits que se puede aplicar a estas líneas, se activa un conjunto de celdas de memoria. Debido a este direccionamiento, los dispositivos RAM prácticamente siempre tienen una capacidad de memoria que es una potencia de dos.

Por lo general, varias celdas de memoria comparten la misma dirección. Por ejemplo, un chip RAM 'ancho' de 4 bits tiene 4 celdas de memoria para cada dirección. A menudo, el ancho de la memoria y el del microprocesador son diferentes, para un microprocesador de 32 bits, se necesitarían ocho chips de RAM de 4 bits.

A menudo se necesitan más direcciones de las que puede proporcionar un dispositivo. En ese caso, se utilizan multiplexores externos al dispositivo para activar el dispositivo correcto al que se accede.

Jerarquía de memoria

Uno puede leer y sobrescribir datos en la RAM. Muchos sistemas informáticos tienen una jerarquía de memoria que consta de registros de procesador, cachés SRAM integrados, cachés externos, DRAM, sistemas de paginación y memoria virtual o espacio de intercambio en un disco duro. Muchos desarrolladores pueden referirse a este grupo completo de memoria como "RAM", aunque los diversos subsistemas pueden tener tiempos de acceso muy diferentes, violando el concepto original detrás del acceso aleatorio.término en RAM. Incluso dentro de un nivel de jerarquía como DRAM, la organización específica de fila, columna, banco, rango, canal o entrelazado de los componentes hace que el tiempo de acceso sea variable, aunque no en la medida en que el tiempo de acceso a un medio de almacenamiento giratorio o una cinta sea variable.. El objetivo general de usar una jerarquía de memoria es obtener el rendimiento de acceso promedio más alto posible mientras se minimiza el costo total de todo el sistema de memoria (generalmente, la jerarquía de memoria sigue el tiempo de acceso con los registros rápidos de la CPU en la parte superior y los registros lentos del disco duro). en el fondo).

En muchas computadoras personales modernas, la memoria RAM viene en forma de módulos fácilmente actualizables llamados módulos de memoria o módulos DRAM del tamaño de unas cuantas barras de chicle. Estos se pueden reemplazar rápidamente en caso de que se dañen o cuando las necesidades cambiantes exijan más capacidad de almacenamiento. Como se sugirió anteriormente, también se integran cantidades más pequeñas de RAM (principalmente SRAM) en la CPU y otros circuitos integrados en la placa base, así como en discos duros, CD-ROM y varias otras partes del sistema informático.

Otros usos de la RAM

Además de servir como almacenamiento temporal y espacio de trabajo para el sistema operativo y las aplicaciones, la memoria RAM se utiliza de muchas otras formas.

Memoria virtual

La mayoría de los sistemas operativos modernos emplean un método para ampliar la capacidad de RAM, conocido como "memoria virtual". Una parte del disco duro de la computadora se reserva para un archivo de paginación o una partición temporal, y la combinación de RAM física y el archivo de paginación forman la memoria total del sistema. (Por ejemplo, si una computadora tiene 2 GB (1024 B) de RAM y un archivo de página de 1 GB, el sistema operativo tiene 3 GB de memoria total disponibles). Cuando el sistema se queda sin memoria física, puede "intercambiar" porciones de RAM al archivo de paginación para hacer espacio para nuevos datos, así como para leer la información intercambiada previamente en la RAM. El uso excesivo de este mecanismo da como resultado una paliza y, en general, obstaculiza el rendimiento general del sistema, principalmente porque los discos duros son mucho más lentos que la RAM.

Disco RAM

El software puede "particionar" una parte de la RAM de una computadora, lo que le permite actuar como un disco duro mucho más rápido que se llama disco RAM. Un disco RAM pierde los datos almacenados cuando la computadora se apaga, a menos que la memoria esté configurada para tener una fuente de batería de reserva o los cambios en el disco RAM se escriban en un disco no volátil. El disco RAM se vuelve a cargar desde el disco físico tras la inicialización del disco RAM.

RAM sombra

A veces, el contenido de un chip ROM relativamente lento se copia en la memoria de lectura/escritura para permitir tiempos de acceso más cortos. Luego, el chip ROM se desactiva mientras que las ubicaciones de memoria inicializadas se cambian en el mismo bloque de direcciones (a menudo protegidas contra escritura). Este proceso, a veces llamado shadowing, es bastante común tanto en computadoras como en sistemas integrados.

Como ejemplo común, el BIOS en las computadoras personales típicas a menudo tiene una opción llamada "usar BIOS sombra" o similar. Cuando están habilitadas, las funciones que dependen de los datos de la ROM del BIOS utilizan ubicaciones de DRAM (la mayoría también puede alternar el sombreado de la ROM de la tarjeta de video u otras secciones de la ROM). Según el sistema, es posible que esto no resulte en un mayor rendimiento y puede causar incompatibilidades. Por ejemplo, parte del hardware puede ser inaccesible para el sistema operativo si se utiliza RAM oculta. En algunos sistemas, el beneficio puede ser hipotético porque el BIOS no se usa después del arranque en favor del acceso directo al hardware. La memoria libre se reduce por el tamaño de las ROM sombreadas.

Desarrollos recientes

Se están desarrollando varios tipos nuevos de RAM no volátil, que conservan los datos mientras están apagados. Las tecnologías utilizadas incluyen nanotubos de carbono y enfoques que utilizan magnetorresistencia de túnel. Entre la MRAM de primera generación, se fabricó un chip de 128 kbit (128 × 2 bytes) con tecnología de 0,18 µm en el verano de 2003. En junio de 2004, Infineon Technologies dio a conocer un prototipo de 16 MB (16 × 2 bytes) nuevamente basado en 0,18 µm. tecnología. Hay dos técnicas de segunda generación actualmente en desarrollo: la conmutación asistida térmicamente (TAS) que está siendo desarrollada por Crocus Technology y el par de transferencia de espín (STT) en el que están trabajando Crocus, Hynix, IBM y varias otras compañías.Nantero construyó un prototipo de memoria funcional de nanotubos de carbono de 10 GB (10 × 2 bytes) en 2004. Sin embargo, aún está por verse si algunas de estas tecnologías pueden eventualmente tomar una participación significativa en el mercado de DRAM, SRAM o tecnología de memoria flash.

Desde 2006, están disponibles las "unidades de estado sólido" (basadas en memoria flash) con capacidades que superan los 256 gigabytes y un rendimiento muy superior al de los discos tradicionales. Este desarrollo ha comenzado a desdibujar la definición entre la memoria tradicional de acceso aleatorio y los "discos", reduciendo drásticamente la diferencia de rendimiento.

Algunos tipos de memoria de acceso aleatorio, como "EcoRAM", están diseñados específicamente para granjas de servidores, donde el bajo consumo de energía es más importante que la velocidad.

Muro de la memoria

El "muro de la memoria" es la creciente disparidad de velocidad entre la CPU y la memoria fuera del chip de la CPU. Una razón importante de esta disparidad es el ancho de banda de comunicación limitado más allá de los límites del chip, que también se conoce como muro de ancho de banda. De 1986 a 2000, la velocidad de la CPU mejoró a una tasa anual del 55 %, mientras que la velocidad de la memoria solo mejoró en un 10 %. Dadas estas tendencias, se esperaba que la latencia de la memoria se convirtiera en un cuello de botella abrumador en el rendimiento de la computadora.

Las mejoras en la velocidad de la CPU se redujeron significativamente en parte debido a las principales barreras físicas y en parte porque los diseños actuales de la CPU ya han llegado al límite de la memoria en algún sentido. Intel resumió estas causas en un documento de 2005.

En primer lugar, a medida que las geometrías de los chips se reducen y las frecuencias de reloj aumentan, la corriente de fuga del transistor aumenta, lo que provoca un consumo excesivo de energía y calor... En segundo lugar, las ventajas de velocidades de reloj más altas se anulan en parte por la latencia de la memoria, ya que los tiempos de acceso a la memoria han disminuido. no ha podido seguir el ritmo de las frecuencias de reloj cada vez mayores. En tercer lugar, para ciertas aplicaciones, las arquitecturas en serie tradicionales se están volviendo menos eficientes a medida que los procesadores se vuelven más rápidos (debido al llamado cuello de botella de Von Neumann), lo que socava aún más las ganancias que de otro modo podrían obtener los aumentos de frecuencia. Además, en parte debido a las limitaciones en los medios para producir inductancia dentro de los dispositivos de estado sólido, los retrasos de resistencia-capacitancia (RC) en la transmisión de señales están aumentando a medida que se reducen los tamaños de las características, lo que impone un cuello de botella adicional que los aumentos de frecuencia no solucionan.

Los retrasos de RC en la transmisión de la señal también se observaron en "Clock Rate versus IPC: The End of the Road for Conventional Microarchitectures", que proyectó un máximo de 12,5% de mejora anual promedio en el rendimiento de la CPU entre 2000 y 2014.

Un concepto diferente es la brecha de rendimiento entre el procesador y la memoria, que puede abordarse mediante circuitos integrados 3D que reducen la distancia entre la lógica y los aspectos de la memoria que están más separados en un chip 2D. El diseño del subsistema de memoria requiere un enfoque en la brecha, que se amplía con el tiempo. El método principal para cerrar la brecha es el uso de cachés; pequeñas cantidades de memoria de alta velocidad que albergan operaciones e instrucciones recientes cerca del procesador, lo que acelera la ejecución de esas operaciones o instrucciones en los casos en que se solicitan con frecuencia. Se han desarrollado múltiples niveles de almacenamiento en caché para hacer frente a la creciente brecha, y el rendimiento de las computadoras modernas de alta velocidad se basa en la evolución de las técnicas de almacenamiento en caché.Puede haber una diferencia de hasta un 53% entre el crecimiento de la velocidad del procesador y la velocidad de retraso del acceso a la memoria principal.

Las unidades de disco duro de estado sólido han seguido aumentando su velocidad, desde ~400 Mbit/s a través de SATA3 en 2012 hasta ~3 GB/s a través de NVMe/PCIe en 2018, cerrando la brecha entre la RAM y las velocidades del disco duro, aunque la RAM continúa ser un orden de magnitud más rápido, con DDR4 3200 de un solo carril capaz de 25 GB/s, y GDDR moderno aún más rápido. Las unidades de estado sólido rápidas, económicas y no volátiles han reemplazado algunas funciones que anteriormente realizaba la RAM, como almacenar ciertos datos para disponibilidad inmediata en las granjas de servidores: se puede obtener 1 terabyte de almacenamiento SSD por $ 200, mientras que 1 TB de RAM costaría miles de dólares