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 utilizada para almacenar datos de trabajo y código de máquina . [1] [2] 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, a diferencia de otros medios de almacenamiento de datos de acceso directo (como como discos duros y cintas magnéticas ), donde el tiempo necesario para leer y escribir elementos de datos varía significativamente dependiendo de su ubicación física en el medio de grabación, debido a limitaciones mecánicas como las velocidades de rotación de los medios y el movimiento del brazo.
En la tecnología actual, la memoria de acceso aleatorio toma la forma de chips de circuito integrado (IC) con celdas de memoria MOS (semiconductores de óxido metálico) . La RAM normalmente se asocia con tipos de memoria volátiles donde la información almacenada se pierde si se corta la energía. Los dos tipos principales de memoria semiconductora volátil 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 RAM no volátil [3] y otros tipos de memorias no volátiles permiten 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 memoria flash ROM y NOR .
El uso de RAM semiconductora 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 usó celdas de memoria DRAM discretas para su Toscal BC-1411 de 180 bits. Calculadora electrónica , 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 entonces dominante. [4] La memoria basada en transistores MOS se desarrolló a finales de la década de 1960 y fue la base de todas las primeras memorias semiconductoras comerciales. El primer chip DRAM IC comercial, el 1K Intel 1103 , se introdujo en octubre de 1970. La memoria dinámica de acceso aleatorio síncrona (SDRAM) debutó más tarde con el chip Samsung KM48SL2000 en 1992.
Las primeras computadoras usaban relés , contadores mecánicos [5] o líneas de retardo para las funciones de la 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 podría ampliarse a un costo relativamente bajo, pero la recuperación eficiente de elementos de la memoria requiere conocimiento de la disposición física del tambor para optimizar la velocidad. Los pestillos construidos con tubos de vacío triodos y, más tarde, con transistores discretos , se utilizaron para memorias más pequeñas y rápidas, como los registros . Esos registros eran relativamente grandes y demasiado costosos para utilizarlos con grandes cantidades de datos; por lo general, sólo se pueden proporcionar unas pocas docenas o unos cientos de bits de dicha memoria.
La primera forma práctica de memoria de acceso aleatorio fue el tubo Williams a partir de 1947. 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 usar 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. [6] De hecho, en lugar de Como la memoria del tubo Williams se diseñó para el Baby, el Baby fue un banco de pruebas para demostrar la confiabilidad de la memoria. [7] [8]
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, leerlo o escribirlo, era posible acceder a cualquier ubicación de la 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 semiconductora MOS ( óxido de metal-silicio ) de estado sólido en los circuitos integrados (CI) a principios de la década de 1970. [9]
Antes del desarrollo de los circuitos integrados de memoria de sólo lectura (ROM), la memoria de acceso aleatorio permanente (o de sólo lectura ) a menudo se construía utilizando matrices de diodos impulsadas por decodificadores de direcciones o planos de memoria de núcleo especialmente enrollados . [ cita necesaria ]
La memoria semiconductora comenzó en la década de 1960 con la memoria bipolar, que utilizaba transistores bipolares . Aunque era más rápido, no podía competir con el precio más bajo de la memoria de núcleo magnético. [10]
La invención del MOSFET (transistor de efecto de campo semiconductor de óxido metálico), también conocido como transistor MOS, por Mohamed M. Atalla y Dawon Kahng en Bell Labs en 1959, [11] condujo al desarrollo de transistores de efecto de campo semiconductores de óxido metálico. Memoria semiconductora (MOS) por John Schmidt en Fairchild Semiconductor en 1964. [9] [12] Además de velocidades más altas, la memoria semiconductora MOS era más barata y consumía menos energía que la memoria de núcleo magnético. [9] El desarrollo de la tecnología de circuito integrado MOS de puerta de silicio (MOS IC) por Federico Faggin en Fairchild en 1968 permitió la producción de chips de memoria MOS . [13] La memoria MOS superó a la memoria de núcleo magnético como tecnología de memoria dominante a principios de la década de 1970. [9]
Robert H. Norman inventó una memoria de acceso aleatorio estática bipolar integrada (SRAM) en Fairchild Semiconductor en 1963. [14] Fue seguida por el desarrollo de MOS SRAM por John Schmidt en Fairchild en 1964. [9] 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. [15] El uso comercial de SRAM comenzó en 1965, cuando IBM introdujo el chip de memoria SP95 para el System/360 Modelo 95 . [10]
La memoria dinámica de acceso aleatorio (DRAM) permitió reemplazar un circuito de cierre de 4 o 6 transistores por un solo transistor para cada bit de memoria, lo que aumentó considerablemente la densidad de la memoria a costa de la volatilidad. Los datos se almacenaban en la pequeña capacitancia de cada transistor y debían 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, [16] [17] [18] utilizaba una forma de DRAM bipolar capacitiva, que almacenaba datos de 180 bits en celdas de memoria discretas , que consistían en transistores y condensadores bipolares de germanio. . [17] [18] 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 entonces dominante. [19]
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 condensadores , y que almacenar una carga o ninguna carga en el condensador 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 condensador. Esto lo llevó a desarrollar una celda de memoria DRAM de un solo transistor. [15] En 1967, Dennard presentó una patente ante IBM para una celda de memoria DRAM de un solo transistor, basada en la tecnología MOS. [20] 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ó en 1970. [9] [21] [22]
La memoria dinámica de acceso aleatorio síncrona (SDRAM) fue desarrollada por Samsung Electronics . El primer chip SDRAM comercial fue el Samsung KM48SL2000, que tenía una capacidad de 16 Mbit . [23] Fue introducido por Samsung en 1992, [24] y producido en masa en 1993. [23] El primer chip de memoria DDR SDRAM ( SDRAM de doble velocidad de datos ) comercial fue el chip DDR SDRAM de 64 Mbit de Samsung , lanzado en junio de 1998. [25] 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. [26]
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 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 potencia dinámica que la DRAM. En las computadoras modernas, la SRAM se usa a menudo como memoria caché para la CPU . La DRAM almacena un bit de datos utilizando un par de transistores y condensadores (normalmente un condensador MOSFET y MOS , respectivamente), [27] 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 del 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 reinicia cuando se corta la energía del sistema. Por el contrario, la memoria de sólo lectura (ROM) almacena datos habilitando o deshabilitando permanentemente transistores seleccionados, de modo que la memoria no se puede modificar. Las variantes grabables de ROM (como EEPROM y NOR flash ) comparten propiedades de ROM y 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 los 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 almacenamiento óptico, el término DVD-RAM es un nombre poco apropiado ya que no es acceso aleatorio; se comporta de manera muy similar a una unidad de disco duro aunque algo más lento. Además, a diferencia del CD-RW o DVD-RW , no es necesario borrar el DVD-RAM antes de volver a utilizarlo.
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 restablecerse para almacenar un 0 lógico (nivel de voltaje bajo). Su valor se mantiene/almacena hasta que lo cambia el proceso de configuración/reinicio. 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 la 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, 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 actualizarse periódicamente. Debido a este proceso de actualizació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 que sean útiles, las celdas de memoria deben poder leerse y escribirse. 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 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.
Normalmente 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.
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 integradas , cachés externos , DRAM , sistemas de paginación y memoria virtual o espacio de intercambio en un disco duro. Muchos desarrolladores pueden referirse a todo este conjunto de memoria como "RAM", aunque los distintos subsistemas pueden tener tiempos de acceso muy diferentes , violando el concepto original detrás del término de acceso aleatorio en RAM. Incluso dentro de un nivel jerárquico como DRAM, la fila, columna, banco, rango , canal u organización intercalada específica de los componentes hacen que el tiempo de acceso sea variable, aunque no en la medida en que el tiempo de acceso a los medios de almacenamiento rotativos o a una cinta sea variable. . El objetivo general de utilizar una jerarquía de memoria es obtener el tiempo de acceso promedio más rápido posible y al mismo tiempo minimizar 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 el fondo).
En muchas computadoras personales modernas, la RAM viene en una 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 de la placa base , así como en los discos duros, CD-ROM y varias 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 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 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 " intercambiar "porciones de RAM al archivo de paginación para dejar espacio para nuevos datos, así como para leer información previamente intercambiada en la RAM. El uso excesivo de este mecanismo produce problemas y generalmente dificulta 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 RAM de una computadora, permitiéndole 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é dispuesta para tener una fuente de batería de reserva, o que los cambios en el disco RAM se escriban en un disco no volátil. El disco RAM se recarga desde el disco físico tras la inicialización del disco RAM.
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 las ubicaciones de memoria inicializadas se cambian en el mismo bloque de direcciones (a menudo protegidas contra escritura). Este proceso, a veces llamado sombreado , es bastante común tanto en computadoras como en sistemas integrados .
Como ejemplo común, el BIOS de las computadoras personales típicas suele tener una opción llamada "usar BIOS oculto" o similar. Cuando están habilitadas, las funciones que dependen de datos de la ROM del BIOS usan 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, es posible que esto no resulte en un mayor rendimiento y puede causar incompatibilidades. Por ejemplo, es posible que parte del hardware sea inaccesible para el sistema operativo si se utiliza RAM oculta. En algunos sistemas, el beneficio puede ser hipotético porque el BIOS no se utiliza después del arranque y se prefiere el acceso directo al hardware. La memoria libre se reduce según el tamaño de las ROM ocultas. [28]
El "muro de la memoria" es la creciente disparidad de velocidad entre la CPU y el tiempo de respuesta de la memoria (conocida como latencia de 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, lo 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 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. [29]
Otra razón de la disparidad es el enorme aumento en el tamaño de la memoria desde el inicio de la revolución de las PC en los años 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 la 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 actuales a menudo todavía tienen un mebibyte de memoria caché de estado de espera 0, 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 desaceleraron significativamente, en parte debido a importantes barreras físicas y en parte porque los diseños actuales de CPU ya han tocado el muro de la memoria en cierto sentido. Intel resumió estas causas en un documento de 2005. [30]
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 quedan anuladas en parte por la latencia de la memoria, ya que los tiempos de acceso a la memoria tienen No hemos podido seguir el ritmo del aumento de las frecuencias de reloj. 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 cualquier ganancia que de otra manera los aumentos de frecuencia podrían generar. 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 los tamaños de las características se reducen, imponiendo 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" [31] , 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 puede abordarse 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. [32] El diseño del subsistema de memoria requiere centrarse en la brecha, que se está ampliando con el tiempo. [33] El principal método para cerrar la brecha es el uso de cachés ; pequeñas cantidades de memoria de alta velocidad que alberga operaciones e instrucciones recientes cerca del procesador, acelerando 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 abordar esta 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é. [34] Puede haber hasta un 53% de diferencia entre el crecimiento en la velocidad del procesador y el retraso en la velocidad de acceso a la memoria principal. [35]
Los discos duros de estado sólido han seguido aumentando en 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 las velocidades de RAM y de disco duro, aunque la RAM continúa será un orden de magnitud más rápido, con DDR4 3200 de un solo carril con capacidad de 25 GB/s y una GDDR moderna aún más rápida. Las unidades de estado sólido no volátiles , rápidas y económicas han reemplazado algunas funciones que antes realizaba la RAM, como almacenar ciertos datos para su disponibilidad inmediata en granjas de servidores : se puede obtener 1 terabyte de almacenamiento SSD por 200 dólares, mientras que 1 TB de RAM costaría miles de dólares. de dólares. [36] [37]
El i1103 se fabricó en un proceso P-MOS de puerta 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 2.400 μm 2 , un tamaño de matriz de poco menos de 10 mm 2 y se vendió por alrededor de 21 dólares.
La primera DRAM síncrona comercial, la Samsung KM48SL2000 de 16 Mbit, emplea una arquitectura de banco único que permite a los diseñadores de sistemas realizar una transición sencilla de sistemas asíncronos a síncronos.
{{cite web}}
: CS1 maint: archived copy as title (link).{{cite book}}
: |website=
ignorado ( ayuda )El anuncio de 1M DRAM en 1984 inició la era de los megabytes.
{{cite news}}
: CS1 maint: unfit URL (link)