Введение

RAM используется для эмуляции вторичной памяти.
Виртуальные диски эмулируются программным обеспечением.

RAM-диск (также называемый диском RAM) – это блок памяти с произвольным доступом (первичной памяти или энергозависимой памяти), который программное обеспечение компьютера воспринимает как дисковый накопитель (вторичную память). RAM-диски обеспечивают высокопроизводительное временное хранилище для ресурсоемких задач и защищают энергонезависимые устройства хранения от износа, поскольку RAM не подвержена износу при записи, в отличие от энергонезависимой флэш-памяти. В некотором смысле они являются обратными виртуальной памяти: RAM-диск использует энергозависимую быструю память, как если бы это была энергонезависимая медленная память. Виртуальная память работает наоборот. Иногда его называют виртуальным RAM-диском или программным RAM-диском, чтобы отличить его от аппаратного RAM-диска, который использует отдельное оборудование, содержащее RAM, являющееся типом твердотельного накопителя с резервным питанием от батареи. Исторически устройства массового хранения на основе первичной памяти создавались для уменьшения разрыва в производительности между внутренней памятью и устройствами вторичной памяти. С появлением твердотельных накопителей это преимущество в значительной степени утратило свою актуальность. Однако твердотельные накопители подвержены износу при частых операциях записи. Запись в первичную память происходит либо не так интенсивно, либо оказывает гораздо меньшее влияние. Поэтому RAM-диски предлагают преимущество для хранения часто изменяющихся данных, таких как временная или кэшированная информация.

Выступление

Производительность RAM-диска обычно на несколько порядков выше, чем у других форм цифрового хранения, таких как SSD, магнитные ленты, оптические диски, жесткие диски и дискеты. Этот прирост производительности обусловлен множеством факторов, включая время доступа, максимальную пропускную способность и характеристики файловой системы. Время доступа к файлам значительно сокращается, поскольку RAM-диск является твердотельным накопителем (не имеет движущихся частей). Физический жесткий диск, оптические носители (например, CD-ROM, DVD и Blu-ray) или другие среды хранения (например, магнитные пузырьки, акустическое хранилище, магнитная лента) должны переместить информацию в определенную позицию перед началом чтения или записи. RAM-диски могут получать доступ к данным, используя только адрес, что устраняет эту задержку. Во-вторых, максимальная пропускная способность RAM-диска ограничена скоростью оперативной памяти, шины данных и процессора компьютера. Другие формы носителей информации дополнительно ограничены скоростью шины хранения, такой как IDE (PATA), SATA, USB или FireWire. Усугубляет это ограничение скорость работы фактических механических компонентов – двигателей, головок или оптических сенсоров. В-третьих, используемая файловая система, такая как NTFS, HFS, UFS, ext2 и т.д., выполняет дополнительные обращения, чтения и записи на диск, которые, хотя и незначительны по объему, могут быстро накапливаться, особенно при большом количестве мелких файлов по сравнению с небольшим числом крупных файлов (временные интернет-папки, веб-кэши и т.п.). Поскольку хранилище находится в оперативной памяти, это энергозависимая память, что означает, что данные будут потеряны при отключении питания, будь то намеренное (перезагрузка или выключение компьютера) или случайное (отключение электроэнергии или сбой системы). В общем случае, это является недостатком (данные необходимо периодически резервировать на постоянный носитель, чтобы избежать потери), но иногда это может быть полезно: например, при работе с расшифрованной копией зашифрованного файла или использовании RAM-диска для хранения временных файлов системы. Во многих случаях данные, хранящиеся на RAM-диске, создаются из данных, постоянно хранящихся в другом месте, для более быстрого доступа, и воссоздаются на RAM-диске при перезагрузке системы. Помимо риска потери данных, основным ограничением RAM-дисков является емкость, которая определяется объемом установленной оперативной памяти. Многотерабайтные SSD-накопители стали обычным явлением, но объем оперативной памяти по-прежнему измеряется в гигабайтах. RAM-диски используют обычную системную память, как если бы это был раздел на физическом жестком диске, а не обращаются к шине данных, обычно используемой для вторичного хранения. Хотя операционные системы часто могут поддерживать RAM-диски напрямую через специальные механизмы в ядре ОС, обычно проще получить доступ к RAM-диску через виртуальный драйвер устройства. Это делает недисковую природу RAM-дисков невидимой как для ОС, так и для приложений. Обычно не требуется резервное питание от батареи из-за временного характера информации, хранящейся на RAM-диске, но источник бесперебойного питания (UPS) может поддерживать работу системы во время кратковременного отключения электроэнергии. Некоторые RAM-диски используют сжатую файловую систему, такую как cramfs, чтобы обеспечить доступ к сжатым данным «на лету», без предварительной распаковки. Это удобно, поскольку RAM-диски часто имеют небольшой объем из-за более высокой стоимости за байт по сравнению с традиционными жесткими дисками.

История и особенности операционной системы

Первый программный RAM-диск для микрокомпьютеров был изобретен и написан Джерри Карлином в Великобритании в 1979–1980 годах. Программное обеспечение, известное как Silicon Disk System, было далее разработано в коммерческий продукт и продавалось компанией JK Systems Research, которая стала Microcosm Research Ltd, когда к ней присоединился Питер Чизурайт из Microcosm Ltd. Идея заключалась в том, чтобы позволить ранним микрокомпьютерам использовать больше оперативной памяти, чем процессор мог напрямую адресовать. Использование банков переключаемой оперативной памяти, эмулирующей дисковый накопитель, было значительно быстрее, чем работа с обычными дисководами, особенно до широкой доступности жестких дисков на таких машинах. Silicon Disk был выпущен в 1980 году, сначала для операционной системы CP/M, а затем для MS DOS. 128 КБ Atari 130XE (с DOS 2.5) и Commodore 128 поддерживают RAM-диски, как и ProDOS для Apple II. На системах с 128 КБ или более оперативной памяти ProDOS автоматически создает RAM-диск с названием IBM добавила RAM-диск с именем VDISK.SYS в PC DOS (версия 3.0) в августе 1984 года, который стал первым компонентом DOS, использующим расширенную память. VDISK.SYS не был доступен в MS DOS от Microsoft, поскольку, в отличие от большинства компонентов ранних версий PC DOS, он был разработан IBM. Microsoft включила аналогичную программу RAMDRIVE.SYS в MS DOS 3.2 (выпущенную в 1986 году), которая также могла использовать расширенную память. Особенностью RAM-диска, разработанного Перри Киволовицем для AmigaOS, была его способность переживать большинство сбоев и перезагрузок. Устройство, названное ASDG Recoverable Ram Disk, выживало после перезагрузок благодаря динамическому выделению памяти в обратном порядке от стандартного (функция, поддерживаемая базовой ОС), что уменьшало фрагментацию памяти. Был записан "суперблок" с уникальной сигнатурой, который можно было найти в памяти после перезагрузки. Суперблок и все остальные "блоки" диска RRD поддерживали контрольные суммы для обеспечения недействительности диска в случае обнаружения повреждений. Первоначально ASDG RRD был привязан к платам памяти ASDG и использовался как конкурентное преимущество. Позже ASDG RRD стал доступен как shareware с рекомендуемым пожертвованием в размере 10 долларов. Shareware-версия появилась на дисках 58 и 241 Фреда Фиша. В версии 1.3 AmigaOS также получила восстанавливаемый RAM-диск (называемый "RAD"). Многие Unix и Unix-подобные системы предоставляют некоторую форму функциональности RAM-диска, например, tmpfs в Linux или md(4) в FreeBSD. RAM-диски особенно полезны в высокопроизводительных приложениях с ограниченными ресурсами, для которых часто настраиваются Unix-подобные операционные системы. Существуют также несколько специализированных "ультралегких" дистрибутивов Linux, предназначенных для загрузки со съемных носителей и хранения на RAM-диске в течение всего сеанса.

Специальные аппаратные накопители RAM

Существуют диски RAM, использующие память DRAM, предназначенную исключительно для функционирования в качестве запоминающего устройства с крайне низкой задержкой. Эта память изолирована от процессора и не имеет к ней прямого доступа, как обычная системная память. Некоторые из первых выделенных RAM-дисков были выпущены в 1983–1985 годах. Ранний пример аппаратного RAM-диска был представлен компанией Assimilation Process в 1986 году для Macintosh. Названный "Excalibur", это был внешний RAM-диск объемом 2 МБ, который продавался по цене от 599 до 699 долларов США. Благодаря расширяемой емкости памяти с шагом в 1 МБ, его внутренняя батарея, как утверждалось, обеспечивала работу в течение 6–8 часов, и, что было необычно для того времени, он подключался через порт для дискет Macintosh. В 2002 году Cenatek выпустила Rocket Drive объемом до 4 ГБ, который имел четыре слота DIMM для памяти PC133 с максимальной емкостью до четырех гигабайт. В то время обычные настольные компьютеры использовали 64–128 мегабайт памяти PC100 или PC133. Один гигабайт модулей PC133 (самый большой доступный на тот момент) стоил около 1300 долларов (1300,0 в 2002 году эквивалентно приблизительно <расчетной сумме> в последние годы). Полностью оснащенный Rocket Drive с четырьмя гигабайтами памяти стоил бы 5600 долларов (5600,0 в 2002 году эквивалентно приблизительно <расчетной сумме> в последние годы). В 2005 году Gigabyte Technology выпустила i RAM объемом до 4 ГБ, который функционировал по существу идентично Rocket Drive, за исключением обновления для использования новой технологии памяти DDR, хотя и с ограничением максимальной емкости до 4 ГБ. Для обоих этих устройств динамическая RAM требует непрерывного питания для сохранения данных; при отключении питания данные стираются. Для Rocket Drive был предусмотрен разъем для внешнего блока питания, отдельного от компьютера, а также возможность подключения внешней батареи для сохранения данных при отключении электроэнергии. i RAM включал небольшую батарею непосредственно на плате расширения, обеспечивающую защиту в течение 10–16 часов. Оба устройства использовали интерфейс SATA 1.0 для передачи данных с выделенного RAM-диска в систему. Интерфейс SATA был узким местом, ограничивающим максимальную производительность обоих RAM-дисков, но эти диски по-прежнему обеспечивали исключительно низкую задержку доступа к данным и высокую устойчивую скорость передачи по сравнению с механическими жесткими дисками. В 2006 году Gigabyte Technology выпустила GC RAMDISK объемом до 8 ГБ, являющуюся вторым поколением i RAM. Его максимальная емкость составляет 8 ГБ, что вдвое больше, чем у i RAM. Он использовал порт SATA II, также вдвое превышающий пропускную способность i RAM. Одним из его главных преимуществ является возможность использования в качестве загрузочного устройства. В 2007 году ACard Technology выпустила диск ANS 9010 Serial ATA RAM объемом до 64 ГБ. Цитата из технического отчета: ANS 9010 "имеет восемь слотов DDR2 DIMM и поддерживает до 8 ГБ памяти на слот. ANS 9010 также оснащен парой портов Serial ATA, что позволяет ему функционировать как один диск или маскироваться под пару дисков, которые можно легко разделить на еще более быстрый RAID 0-массив". В 2009 году Acard Technology выпустила динамический SSD SATA II RAM Disk ACARD ANS 9010BA 5,25", объемом до 64 ГБ. Он использует один порт SATA II. Оба варианта оснащены одним или несколькими интерфейсами карт CompactFlash, расположенными на передней панели, что позволяет копировать энергонезависимые данные, хранящиеся на RAM-диске, на карту CompactFlash в случае отключения электроэнергии и разряда батареи резервного питания. Две кнопки, расположенные на передней панели, позволяют пользователю вручную создавать резервные копии / восстанавливать данные на RAM-диске. Сама карта CompactFlash не доступна пользователю обычными средствами, поскольку карта CF предназначена исключительно для резервного копирования и восстановления данных RAM. Емкость карты CF должна соответствовать или превышать общую емкость модулей RAM, чтобы эффективно работать в качестве надежной резервной копии. В 2009 году DDRdrive, LLC выпустила DDRDrive X1, которая, как утверждается, является самым быстрым твердотельным накопителем в мире. Диск представляет собой основной 4 ГБ DDR-диск, предназначенный для регулярного использования, который может создавать резервные копии и восстанавливать данные с 4 ГБ SLC NAND-накопителя. Целевой рынок – хранение и запись журналов. В случае потери питания данные могут быть сохранены на внутреннем 4 ГБ SSD в течение 60 секунд с помощью резервного питания от батареи. После восстановления питания данные можно вернуть в RAM. Отключение питания от хоста приводит к тому, что DDRdrive X1 создает резервную копию энергозависимых данных на встроенный энергонезависимый накопитель.