Una unidad RAM (también llamada disco RAM ) es un bloque de memoria de acceso aleatorio ( almacenamiento primario o memoria volátil ) que el software de una computadora trata como si la memoria fuera una unidad de disco ( almacenamiento secundario ). Las unidades RAM brindan almacenamiento temporal de alto rendimiento para tareas exigentes y protegen los dispositivos de almacenamiento no volátil del desgaste, ya que la RAM no es propensa al desgaste por escritura, a diferencia de la memoria flash no volátil .
A veces se lo denomina unidad de RAM virtual o unidad de RAM de software para distinguirlo de una unidad de RAM de hardware que utiliza hardware separado que contiene RAM, que es un tipo de unidad de estado sólido respaldada por batería .
Históricamente, los dispositivos de almacenamiento masivo basados en memoria primaria se concibieron para cubrir la brecha de rendimiento entre la memoria interna y los dispositivos de almacenamiento secundario. Con la llegada de los dispositivos de estado sólido, esta ventaja perdió gran parte de su atractivo. Sin embargo, los dispositivos de estado sólido sufren desgaste por escrituras frecuentes. Las escrituras en la memoria primaria no sufren este desgaste o lo hacen con un efecto mucho menor. Por lo tanto, los dispositivos RAM ofrecen una ventaja para almacenar datos que cambian con frecuencia, como información temporal o en caché.
El rendimiento de una unidad RAM es generalmente órdenes de magnitud más rápido que otras formas de almacenamiento digital, como SSD , cinta , óptica , disco duro y unidades de disquete . [1] Esta ganancia de rendimiento se debe a múltiples factores, incluido el tiempo de acceso, el rendimiento máximo y las características del sistema de archivos .
El tiempo de acceso a los archivos se reduce considerablemente ya que una unidad RAM es de estado sólido (sin partes móviles). Un disco duro físico, óptico (por ejemplo, CD-ROM , DVD y Blu-ray ) u otro medio (por ejemplo, burbuja magnética , almacenamiento acústico , cinta magnética ) debe mover la información a una posición particular antes de que pueda ocurrir la lectura o escritura. Las unidades RAM pueden acceder a los datos solo con la dirección, lo que elimina esta latencia .
En segundo lugar, el rendimiento máximo de una unidad de RAM está limitado por la velocidad de la RAM, el bus de datos y la CPU del ordenador. Otras formas de medios de almacenamiento están limitadas aún más por la velocidad del bus de almacenamiento, como IDE (PATA), SATA , USB o FireWire . Esta limitación se ve agravada por la velocidad de la mecánica real de los motores, cabezales o sensores de la unidad.
En tercer lugar, el sistema de archivos en uso, como NTFS , HFS , UFS , ext2, etc., utiliza accesos, lecturas y escrituras adicionales a la unidad, que aunque son pequeños, pueden acumularse rápidamente, especialmente en el caso de muchos archivos pequeños frente a pocos archivos más grandes (carpetas temporales de Internet, cachés web, etc.).
Debido a que el almacenamiento se encuentra en la memoria RAM, se trata de una memoria volátil , lo que significa que se perderá en caso de pérdida de energía, ya sea intencional (reinicio o apagado del equipo) o accidental (falla de energía o falla del sistema). Esto es, en general, una debilidad (los datos deben respaldarse periódicamente en un medio de almacenamiento persistente para evitar pérdidas), pero a veces es deseable: por ejemplo, cuando se trabaja con una copia descifrada de un archivo cifrado o se usa la unidad RAM para almacenar los archivos temporales del sistema .
En muchos casos, los datos almacenados en la unidad RAM se crean a partir de datos almacenados permanentemente en otro lugar, para un acceso más rápido , y se vuelven a crear en la unidad RAM cuando se reinicia el sistema.
Además del riesgo de pérdida de datos, la principal limitación de las unidades RAM es la capacidad, que está limitada por la cantidad de RAM instalada. El almacenamiento SSD de varios terabytes se ha vuelto común, pero la RAM todavía se mide en gigabytes.
Las unidades RAM utilizan la memoria normal del sistema como si fuera una partición de un disco duro físico en lugar de acceder al bus de datos que normalmente se utiliza para el almacenamiento secundario. Aunque las unidades RAM suelen ser compatibles directamente con el sistema operativo a través de mecanismos especiales en el núcleo del SO , generalmente es más sencillo acceder a una unidad RAM a través de un controlador de dispositivo virtual . Esto hace que la naturaleza no disco de las unidades RAM sea invisible tanto para el SO como para las aplicaciones.
Generalmente no se necesita respaldo de batería debido a la naturaleza temporal de la información almacenada en la unidad RAM, pero una fuente de alimentación ininterrumpida puede mantener el sistema funcionando durante un breve corte de energía.
Algunas unidades de RAM utilizan un sistema de archivos comprimidos, como cramfs, para permitir el acceso a los datos comprimidos sobre la marcha, sin descomprimirlos primero. Esto resulta conveniente porque las unidades de RAM suelen ser pequeñas debido al mayor precio por byte que el almacenamiento en disco duro convencional.
La primera unidad de RAM de software para microcomputadoras fue inventada y escrita por Jerry Karlin en el Reino Unido en 1979/80. El software, conocido como Silicon Disk System , fue desarrollado posteriormente hasta convertirse en un producto comercial y comercializado por JK Systems Research, que se convirtió en Microcosm Research Ltd cuando Peter Cheesewright de Microcosm Ltd se unió a la empresa . La idea era permitir que las primeras microcomputadoras utilizaran más RAM de la que la CPU podía abordar directamente. Hacer que la RAM conmutada por bancos se comportara como una unidad de disco era mucho más rápido que las unidades de disco, especialmente antes de que los discos duros estuvieran fácilmente disponibles en dichas máquinas. El Silicon Disk se lanzó en 1980, inicialmente para el sistema operativo CP/M y más tarde para MS-DOS .
El Atari 130XE de 128 kB (con DOS 2.5) y el Commodore 128 admiten unidades de RAM de forma nativa, al igual que ProDOS para Apple II . En sistemas con 128 kB o más de RAM, ProDOS crea automáticamente una unidad de RAM denominada /RAM .
IBM agregó una unidad RAM llamada VDISK.SYS a PC DOS (versión 3.0) en agosto de 1984, que fue el primer componente de DOS en usar memoria extendida . VDISK.SYS no estaba disponible en MS-DOS de Microsoft ya que, a diferencia de la mayoría de los componentes de las primeras versiones de PC DOS, fue escrito por IBM. Microsoft incluyó el programa similar RAMDRIVE.SYS en MS-DOS 3.2 (lanzado en 1986), que también podía usar memoria expandida . [2] Se discontinuó en Windows 7. DR-DOS y la familia DR de sistemas operativos multiusuario también vinieron con un disco RAM llamado VDISK.SYS. En DOS multiusuario , el disco RAM tiene por defecto la letra de unidad M: (para unidad de memoria). AmigaOS ha tenido una unidad RAM incorporada desde el lanzamiento de la versión 1.1 en 1985 y todavía la tiene en AmigaOS 4.1 (2010). Apple Computer agregó la funcionalidad al panel de control de memoria de Apple Macintosh con System 7 en 1991 y mantuvo la característica durante la vida de Mac OS 9. Los usuarios de Mac OS X pueden usar las utilidades hdid, newfs (o newfs hfs) y mount para crear, formatear y montar una unidad RAM.
Una innovación de la unidad RAM introducida en 1986 pero que Perry Kivolowitz puso a disposición del público en 1987 [3] [4] para AmigaOS fue la capacidad de la unidad RAM de sobrevivir a la mayoría de las fallas y reinicios. El dispositivo, llamado ASDG Recoverable Ram Disk, sobrevivía a los reinicios asignando memoria dinámicamente en el orden inverso de la asignación de memoria predeterminada (una característica compatible con el sistema operativo subyacente) para reducir la fragmentación de la memoria. Se escribía un "superbloque" con una firma única que podía ubicarse en la memoria al reiniciar. El superbloque y todos los demás "bloques" de disco RRD mantenían sumas de comprobación para permitir la invalidación del disco si se detectaba corrupción. Al principio, el ASDG RRD estaba bloqueado para las placas de memoria ASDG y se usaba como una característica de venta. Más tarde, el ASDG RRD se puso a disposición como shareware con una donación sugerida de 10 dólares. La versión shareware apareció en los discos Fred Fish 58 [5] y 241. [6] El propio AmigaOS obtendría un disco RAM recuperable (llamado "RAD") en la versión 1.3. [7]
Muchos sistemas Unix y similares proporcionan algún tipo de funcionalidad de unidad RAM, como /dev/ram en Linux o md(4) [8] en FreeBSD . Las unidades RAM son particularmente útiles en aplicaciones de alto rendimiento y bajo consumo de recursos para las que a veces se configuran sistemas operativos similares a Unix. También existen algunas distribuciones Linux especializadas "ultraligeras" que están diseñadas para arrancar desde medios extraíbles y almacenarse en un disco RAM durante toda la sesión.
Han existido unidades de RAM que utilizan memoria DRAM dedicada exclusivamente a funcionar como un dispositivo de almacenamiento de latencia extremadamente baja. Esta memoria está aislada del procesador y no se puede acceder a ella directamente de la misma manera que a la memoria normal del sistema. Algunas de las primeras unidades de RAM dedicadas se lanzaron entre 1983 y 1985. [9] [10]
Un ejemplo temprano de una unidad de memoria RAM de hardware fue presentado por Assimilation Process en 1986 para Macintosh. Llamada "Excalibur", era una unidad de memoria RAM externa de 2 MB y se vendía al por menor por entre 599 y 699 dólares estadounidenses. Con una capacidad de memoria RAM expandible en incrementos de 1 MB, se decía que su batería interna era efectiva entre 6 y 8 horas y, algo inusual para la época, se conectaba a través del puerto de disquete de Macintosh. [11] [12]
En 2002, Cenatek produjo la unidad Rocket Drive , de 4 GB como máximo, que tenía cuatro ranuras DIMM para memoria PC133, con un máximo de cuatro gigabytes de almacenamiento. En ese momento, las computadoras de escritorio comunes usaban de 64 a 128 megabytes de memoria PC100 o PC133. Los módulos PC133 de un gigabyte (los más grandes disponibles en ese momento) costaban aproximadamente $1300 (equivalentes a $2202 en 2023). Una unidad Rocket Drive completamente equipada con cuatro GB de almacenamiento habría costado $5600 (equivalentes a $9486 en 2023). [13]
En 2005, Gigabyte Technology produjo la i-RAM , de 4 GB como máximo, que funcionaba esencialmente de manera idéntica a la Rocket Drive, excepto que se actualizó para usar la tecnología de memoria DDR más nueva, aunque también estaba limitada a una capacidad máxima de 4 GB. [14]
En ambos dispositivos, la RAM dinámica requiere alimentación continua para retener los datos; cuando se interrumpe la alimentación, los datos se pierden. En el caso del Rocket Drive, había un conector para una fuente de alimentación externa independiente de la computadora y la opción de una batería externa para retener los datos durante un corte de energía. La i-RAM incluía una pequeña batería directamente en la placa de expansión, que brindaba protección durante 10 a 16 horas.
Ambos dispositivos utilizaban la interfaz SATA 1.0 para transferir datos desde la unidad de RAM dedicada al sistema. La interfaz SATA era un cuello de botella lento que limitaba el rendimiento máximo de ambas unidades de RAM, pero estas unidades seguían ofreciendo una latencia de acceso a los datos excepcionalmente baja y altas velocidades de transferencia sostenidas, en comparación con los discos duros mecánicos.
En 2006, Gigabyte Technology produjo el GC-RAMDISK, max 8GB, que fue la creación de segunda generación para i-RAM. Tiene una capacidad máxima de 8 GB, el doble que la i-RAM. Utilizaba el puerto SATA-II, nuevamente el doble que la i-RAM. Uno de sus puntos fuertes es que se puede utilizar como dispositivo de arranque. [15]
En 2007, ACard Technology produjo el disco RAM ANS-9010 Serial ATA, de 64 GB como máximo. Cita del informe técnico: El ANS-9010 "tiene ocho ranuras DIMM DDR2 y admite hasta 8 GB de memoria por ranura. El ANS-9010 también cuenta con un par de puertos Serial ATA, lo que le permite funcionar como una sola unidad o disfrazarse como un par de unidades que se pueden dividir fácilmente en una matriz RAID 0 aún más rápida". [16]
En 2009, Acard Technology produjo el disco RAM SATA-II SSD dinámico ACARD ANS-9010BA de 5,25" con capacidad máxima de 64 GB. Utiliza un solo puerto SATA-II.
Ambas variantes están equipadas con una o más interfaces para tarjetas CompactFlash ubicadas en el panel frontal, lo que permite copiar los datos no volátiles almacenados en la unidad RAM en la tarjeta CompactFlash en caso de corte de energía o batería de respaldo baja. Dos botones ubicados en el panel frontal permiten al usuario realizar copias de seguridad o restaurar manualmente los datos en la unidad RAM. El usuario no puede acceder a la tarjeta CompactFlash por medios normales, ya que la tarjeta CF está destinada únicamente a realizar copias de seguridad y restaurar la RAM. La capacidad de la tarjeta CF debe ser igual o superior a la capacidad total del módulo RAM para funcionar de manera eficaz como una copia de seguridad confiable.
En 2009, DDRdrive, LLC produjo el DDRDrive X1, que afirma ser la unidad de estado sólido más rápida del mundo. La unidad es una unidad de RAM dedicada DDR de 4 GB principal para uso regular, que puede realizar copias de seguridad y recuperar datos desde una unidad NAND SLC de 4 GB. El mercado previsto es el de mantener y registrar archivos de registro . Si hay una pérdida de energía, los datos se pueden guardar en un SSD interno de 4 GB en 60 segundos, mediante el uso de una batería de respaldo. A partir de entonces, los datos se pueden recuperar en la RAM una vez que se restablece la energía. Una pérdida de energía del host hace que el DDRdrive X1 realice una copia de seguridad de los datos volátiles en un almacenamiento no volátil integrado. [17] [18]