La memoria de acceso aleatorio ( RAM ; / r æ m / ) es una forma de memoria electrónica 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 . [1] [2] Un dispositivo de memoria de acceso aleatorio permite que los elementos de datos se lean o escriban 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 y cintas magnéticas ), donde el tiempo requerido para leer y escribir elementos de datos varía significativamente dependiendo de sus ubicaciones físicas en el medio de grabación, debido a limitaciones mecánicas como las velocidades de rotación del medio y el movimiento del brazo.
En la tecnología actual, la memoria de acceso aleatorio adopta la forma de chips de circuitos integrados (CI) con celdas de memoria MOS (metal-óxido-semiconductor) . La RAM normalmente se asocia con tipos de memoria volátiles en los que la información almacenada se pierde si se corta la energía. Los dos tipos principales de memoria volátil de semiconductores de acceso aleatorio son la memoria estática de acceso aleatorio (SRAM) y la memoria dinámica de acceso aleatorio (DRAM).
También se ha desarrollado la memoria RAM no volátil [3] y otros tipos de memorias no volátiles permiten el acceso aleatorio para operaciones de lectura, pero no permiten operaciones de escritura o tienen otros tipos de limitaciones. Entre ellas se incluyen la mayoría de los tipos de memorias flash ROM y NOR .
El uso de RAM de semiconductores se remonta a 1965, cuando IBM introdujo el chip SRAM SP95 monolítico (de un solo chip) de 16 bits para su computadora System/360 Modelo 95 , y Toshiba utilizó celdas de memoria DRAM bipolares para su calculadora electrónica Toscal BC-1411 de 180 bits , ambas basadas en transistores bipolares . Si bien ofrecía velocidades más altas que 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 dominante en ese momento. [4] En 1966, el Dr. Robert Dennard inventó la arquitectura DRAM moderna en la que hay un solo transistor MOS por capacitor. [5] El primer chip IC DRAM comercial, el 1K Intel 1103 , se introdujo en octubre de 1970. La memoria de acceso aleatorio dinámico sincrónico (SDRAM) se reintrodujo con el chip Samsung KM48SL2000 en 1992.
Las primeras computadoras usaban relés , contadores mecánicos [6] o líneas de retardo para las funciones de memoria principal. Las líneas de retardo ultrasónicas eran dispositivos seriales que solo podían reproducir datos en el orden en que se escribían. La memoria de tambor se podía expandir a un costo relativamente bajo, pero la recuperación eficiente de elementos de memoria requiere conocimiento de la disposición física del tambor para optimizar la velocidad. Los pestillos construidos a partir de tubos de vacío de triodo y, más tarde, de transistores discretos , se usaban para memorias más pequeñas y rápidas, como registros . Dichos registros eran relativamente grandes y demasiado costosos para usarlos con grandes cantidades de datos; generalmente, solo se podían 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 Williams . Almacenaba datos como puntos cargados eléctricamente en la cara 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 por primera vez un programa el 21 de junio de 1948. [7] De hecho, en lugar de que la memoria del tubo Williams estuviera diseñada para el Baby, el Baby fue un banco de pruebas para demostrar la confiabilidad de la memoria. [8] [9]
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 matriz de anillos magnetizados. Al cambiar el sentido de la magnetización de cada anillo, se podían almacenar datos 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 fue la forma estándar de memoria de computadora hasta que fue reemplazada por la memoria de semiconductores en circuitos integrados (CI) a principios de la década de 1970. [10]
Antes del desarrollo de circuitos de memoria de solo lectura (ROM) integrados, la memoria de acceso aleatorio permanente (o de solo lectura ) se construía a menudo utilizando matrices de diodos controladas por decodificadores de direcciones o planos de memoria con núcleo enrollado especialmente . [ cita requerida ]
La memoria de semiconductores apareció en la década de 1960 con la memoria bipolar, que utilizaba transistores bipolares . Aunque era más rápida, no podía competir con el precio más bajo de la memoria de núcleo magnético. [11]
En 1957, Frosch y Derick lograron fabricar los primeros transistores de efecto de campo de dióxido de silicio en Bell Labs, los primeros transistores en los que el drenaje y la fuente estaban adyacentes en la superficie. [12] Posteriormente, un equipo demostró un MOSFET funcional en Bell Labs en 1960. [13] [14]
Esto condujo al desarrollo de la memoria de semiconductor de óxido de metal (MOS) por John Schmidt en Fairchild Semiconductor en 1964. [10] [15] Además de velocidades más altas, la memoria de semiconductor MOS era más barata y consumía menos energía que la memoria de núcleo magnético. [10] El desarrollo de la tecnología de circuito integrado MOS de compuerta de silicio (MOS IC) por Federico Faggin en Fairchild en 1968 permitió la producción de chips de memoria MOS . [16] 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. [10]
La memoria de acceso aleatorio estática bipolar integrada (SRAM) fue inventada por Robert H. Norman en Fairchild Semiconductor en 1963. [17] Fue seguida por el desarrollo de MOS SRAM por John Schmidt en Fairchild en 1964. [10] 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. [18] El uso comercial de SRAM comenzó en 1965, cuando IBM introdujo el chip de memoria SP95 para el System/360 Model 95. [ 11]
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, lo que aumentó enormemente la densidad de la memoria a costa de la volatilidad. Los datos se almacenaban en la pequeña capacidad de cada transistor y debían actualizarse periódicamente cada pocos milisegundos antes de que la carga pudiera perderse.
La calculadora electrónica Toscal BC-1411 de Toshiba , que se presentó en 1965, [19] [20] [21] utilizaba una forma de DRAM bipolar de condensadores, que almacenaba datos de 180 bits en celdas de memoria discretas , que consistían en transistores bipolares de germanio y condensadores. [20] [21] Si bien ofrecía velocidades más altas que 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 dominante en ese momento. [22] Los condensadores también se habían utilizado para esquemas de memoria anteriores, como el tambor de la computadora Atanasoff-Berry , el tubo Williams y el tubo Selectron .
En 1966, el Dr. Robert Dennard inventó la arquitectura DRAM moderna para la cual hay un solo transistor MOS por capacitor. [18] Mientras examinaba las características de la tecnología MOS, descubrió que era capaz de construir capacitores , y que almacenar una carga o ninguna carga en el capacitor MOS podría representar el 1 y el 0 de un bit, mientras que el transistor MOS podría controlar la escritura de la carga en el capacitor. Esto lo llevó al desarrollo de una celda de memoria DRAM de un solo transistor. [18] En 1967, Dennard presentó una patente bajo IBM para una celda de memoria DRAM de un solo transistor, basada en tecnología MOS. [23] El primer chip IC DRAM comercial fue el Intel 1103 , que se fabricó en un proceso MOS de 8 μm con una capacidad de 1 kbit , y se lanzó en 1970. [10] [24] [25]
Las primeras DRAM solían estar sincronizadas con el reloj de la CPU (clocked) y se utilizaban con los primeros microprocesadores. A mediados de la década de 1970, las DRAM pasaron al diseño asíncrono, pero en la década de 1990 volvieron al funcionamiento sincrónico. [26] [27] En 1992, Samsung lanzó KM48SL2000, que tenía una capacidad de 16 Mbit . [28] [29] y se produjo en masa en 1993. [28] El primer chip de memoria DDR SDRAM ( Double Data Rate SDRAM) comercial fue el chip DDR SDRAM de 64 Mbit de Samsung , lanzado en junio de 1998. [30] GDDR (Gráficos DDR) es una forma de DDR SGRAM (RAM de gráficos sincrónicos), que fue lanzado por primera vez por Samsung como un chip de memoria de 16 Mbit en 1998. [31]
Las dos formas de RAM modernas más utilizadas son la RAM estática (SRAM) y la RAM dinámica (DRAM). En la SRAM, se almacena un bit de datos utilizando el estado de una celda de memoria de seis transistores , normalmente utilizando seis MOSFET. Esta forma de RAM es más cara de producir, pero generalmente es más rápida y requiere menos energía dinámica que la DRAM. En las computadoras modernas, la SRAM se utiliza a menudo como memoria caché para la CPU . La DRAM almacena un bit de datos utilizando un par de transistores y condensadores (normalmente un MOSFET y un condensador MOS , respectivamente), [32] que juntos forman una celda DRAM. El condensador mantiene una carga alta o baja (1 o 0, respectivamente), y el transistor actúa como un interruptor que permite que el circuito de control en el chip lea el estado de carga del condensador 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 corta la energía del sistema. Por el contrario, la memoria de solo lectura (ROM) almacena datos habilitando o deshabilitando permanentemente transistores seleccionados, de modo que la memoria no se pueda alterar. Las variantes de ROM que se pueden escribir (como EEPROM y flash NOR ) comparten propiedades tanto de la ROM como de la 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 un nombre un tanto inapropiado, ya que no es de acceso aleatorio; se comporta de manera muy similar a una unidad de disco duro, aunque un poco más lento. Además, a diferencia de los CD-RW o DVD-RW , los DVD-RAM no necesitan borrarse antes de volver a usarse.
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 voltaje alto) y reiniciarse para almacenar un 0 lógico (nivel de voltaje bajo). Su valor se mantiene/almacena hasta que se modifica mediante el proceso de configuración/reinicio. Se puede acceder al valor de 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 la SRAM requiere muy poca energía cuando no se accede a ella, pero es costosa y tiene baja densidad de almacenamiento.
Un segundo tipo, la DRAM, se basa en un condensador. La carga y descarga de este condensador puede almacenar un "1" o un "0" en la celda. Sin embargo, la carga de este condensador se pierde lentamente y debe renovarse periódicamente. Debido a este proceso de renovación, la DRAM utiliza más energía, pero puede lograr mayores densidades de almacenamiento y menores costos unitarios en comparación con la SRAM.
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 y, por cada combinación de bits que se pueda 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 de RAM de 4 bits de ancho 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 está accediendo. La RAM suele ser direccionable mediante bytes, aunque también es posible hacer que la RAM sea direccionable mediante palabras. [33] [34]
Se pueden 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 denominar a todo este conjunto de memoria como "RAM", aunque los diversos subsistemas pueden tener tiempos de acceso muy diferentes , lo que viola el concepto original detrás del término de acceso aleatorio en RAM. Incluso dentro de un nivel de jerarquía como DRAM, la organización específica de filas, columnas, bancos, rangos , canales o intercalaciones de los componentes hace que el tiempo de acceso sea variable, aunque no en la medida en que lo sea el tiempo de acceso a un medio de almacenamiento giratorio o una cinta. El objetivo general de utilizar una jerarquía de memoria es obtener el tiempo de acceso promedio más rápido posible al tiempo que 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 el disco duro lento en la parte inferior).
En muchos ordenadores personales modernos, la RAM se presenta en forma de módulos fácilmente actualizables, llamados módulos de memoria o módulos DRAM, del tamaño de unos cuantos chicles. Estos pueden reemplazarse rápidamente si se dañan o cuando las necesidades cambiantes exigen 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 de la placa base , así como en los discos duros, CD-ROM y otras partes del sistema informático.
Además de servir como almacenamiento temporal y espacio de trabajo para el sistema operativo y las aplicaciones, la RAM se utiliza de muchas otras maneras.
La mayoría de los sistemas operativos modernos emplean un método para ampliar la capacidad de la RAM, conocido como "memoria virtual". Una parte del disco duro del ordenador se reserva para un archivo de paginación o una partición de trabajo , y la combinación de la RAM física y el archivo de paginación forman la memoria total del sistema. (Por ejemplo, si un ordenador tiene 2 GB (1024 3 B) de RAM y un archivo de paginación de 1 GB, el sistema operativo tiene 3 GB de memoria total disponible). Cuando el sistema se queda sin memoria física, puede " cambiar " 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 un mal funcionamiento y, en general, perjudica el rendimiento general del sistema, principalmente porque los discos duros son mucho más lentos que la RAM.
El software puede "particionar" una parte de la memoria RAM de una computadora, lo que le permite actuar como un disco duro mucho más rápido, llamado disco RAM . Un disco RAM pierde los datos almacenados cuando se apaga la computadora, a menos que la memoria esté configurada para tener una fuente de batería de respaldo o que 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 al inicializarse.
A veces, el contenido de un chip ROM relativamente lento se copia a una memoria de lectura/escritura para permitir tiempos de acceso más cortos. Luego, el chip ROM se desactiva mientras 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 de las computadoras personales típicas a menudo tiene una opción llamada "usar BIOS shadow" o similar. Cuando está habilitada, las funciones que dependen de los datos de la ROM del BIOS usan en su lugar ubicaciones de DRAM (la mayoría también puede alternar el sombreado de la ROM de la tarjeta de video u otras secciones de ROM). Dependiendo del sistema, esto puede no resultar en un aumento del rendimiento y puede causar incompatibilidades. Por ejemplo, algunos hardware pueden ser inaccesibles para el sistema operativo si se usa RAM shadow. En algunos sistemas, el beneficio puede ser hipotético porque el BIOS no se usa después del arranque a favor del acceso directo al hardware. La memoria libre se reduce por el tamaño de las ROM shadow. [35]
El " muro de la memoria" es la creciente disparidad de velocidad entre la CPU y el tiempo de respuesta de la memoria (conocido como latencia de la memoria ) fuera del chip de la CPU. Una razón importante para esta disparidad es el limitado ancho de banda de comunicación más allá de los límites del chip, que también se conoce como muro del ancho de banda . De 1986 a 2000, la velocidad de la CPU mejoró a una tasa anual del 55%, mientras que el tiempo de respuesta de la memoria fuera del chip solo mejoró 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. [36]
Otra razón para la disparidad es el enorme aumento en el tamaño de la memoria desde el comienzo de la revolución de la PC en la década de 1980. Originalmente, las PC contenían menos de 1 mebibyte de RAM, que a menudo tenía un tiempo de respuesta de 1 ciclo de reloj de CPU, lo que significa que requería 0 estados de espera. Las unidades de memoria más grandes son inherentemente más lentas que las más pequeñas del mismo tipo, simplemente porque las señales tardan más en atravesar un circuito más grande. Construir una unidad de memoria de muchos gibibytes con un tiempo de respuesta de un ciclo de reloj es difícil o imposible. Las CPU de hoy a menudo todavía tienen un mebibyte de memoria caché de 0 estados de espera, pero reside en el mismo chip que los núcleos de la CPU debido a las limitaciones de ancho de banda de la comunicación de chip a chip. También debe construirse a partir de RAM estática, que es mucho más cara que la RAM dinámica utilizada para memorias más grandes. La RAM estática también consume mucha más energía.
Las mejoras en la velocidad de la CPU se han ralentizado significativamente, en parte debido a importantes barreras físicas y en parte porque los diseños actuales de CPU ya han chocado contra el muro de la memoria en cierto sentido. Intel resumió estas causas en un documento de 2005. [37]
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 genera un exceso de consumo de energía y calor... En segundo lugar, las ventajas de las velocidades de reloj más altas se ven anuladas en parte por la latencia de la memoria, ya que los tiempos de acceso a la memoria no han podido seguir el ritmo de las frecuencias de reloj crecientes. En tercer lugar, para ciertas aplicaciones, las arquitecturas seriales 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 ), socavando aún más cualquier ganancia que los aumentos de frecuencia podrían comprar de otra manera. Además, en parte debido a las limitaciones en los medios de 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 creciendo 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 abordan.
Los retrasos de RC en la transmisión de señales también se observaron en "Clock Rate versus IPC: The End of the Road for Conventional Microarchitectures" [38] que proyectó una mejora máxima del rendimiento promedio anual de la CPU del 12,5 % entre 2000 y 2014.
Un concepto diferente es la brecha de rendimiento entre el procesador y la memoria, que se puede abordar mediante circuitos integrados 3D que reducen la distancia entre los aspectos lógicos y de memoria que están más separados en un chip 2D. [39] El diseño del subsistema de memoria requiere un enfoque en la brecha, que se está ampliando con el tiempo. [40] 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, acelerando la ejecución de esas operaciones o instrucciones en los casos en que se las llama con frecuencia. Se han desarrollado múltiples niveles de almacenamiento en caché para lidiar con la brecha cada vez mayor, y el rendimiento de las computadoras modernas de alta velocidad depende de la evolución de las técnicas de almacenamiento en caché. [41] Puede haber hasta un 53% de diferencia entre el crecimiento de la velocidad del procesador y la velocidad de retraso del acceso a la memoria principal. [42]
Los discos duros de estado sólido han seguido aumentando su velocidad, desde ~400 Mbit/s vía SATA3 en 2012 hasta ~7 GB/s vía NVMe / PCIe en 2024, cerrando la brecha entre las velocidades de la RAM y del disco duro, aunque la RAM sigue siendo un orden de magnitud más rápida, con una DDR5 de 8000 MHz de un solo carril capaz de alcanzar 128 GB/s, y la GDDR moderna aún más rápida. Las unidades de estado sólido rápidas, baratas y no volátiles han reemplazado algunas funciones que antes realizaba la RAM, como almacenar ciertos datos para su disponibilidad inmediata en granjas de servidores : se puede conseguir 1 terabyte de almacenamiento SSD por 200 dólares, mientras que 1 TB de RAM costaría miles de dólares. [43] [44]
El i1103 se fabricó mediante un proceso P-MOS de compuerta de silicio de 6 máscaras con características mínimas de 8 μm. El producto resultante tenía un
tamaño de celda de memoria de 2400 μm
2, un tamaño de chip de poco menos de 10 mm
2
y se vendía por alrededor de 21 dólares.
La primera DRAM sincrónica comercial, la Samsung KM48SL2000 de 16 Mbit, emplea una arquitectura de banco único que permite a los diseñadores de sistemas realizar fácilmente la transición de sistemas asincrónicos a sincrónicos.
{{cite web}}
: CS1 maint: archived copy as title (link).{{cite book}}
: |website=
ignorado ( ayuda )El anuncio de la memoria DRAM de 1 M en 1984 dio inicio a la era de los megabytes.
{{cite news}}
: CS1 maint: unfit URL (link)