RAMディスク

出典: フリー百科事典『ウィキペディア(Wikipedia)』

RAMディスクラム-)は、Random Access Memory(RAM) を利用した外部記憶装置。あるいは主記憶の一部を外部記憶装置(ディスクドライブ)のように利用する仕組み。狭義には後者のみを指し、前者はフラッシュディスクなども合わせて半導体ディスク、シリコンディスク、ソリッドステートディスクとも総称される。後者のことは、仮想ディスク(VDISK、Virtual Disk)とも呼ばれる。

目次

[編集] 特徴

テープドライブフロッピーディスクハードディスクドライブなどの装置には、媒体の回転やアクセスヘッドの移動など機械的な駆動部が多く、振動、騒音、発熱、摩耗などの問題がある。また、ヘッドを目的の位置に移動するのに時間を要する点や読み書き自体の速度において主記憶に比べると遅い装置だと言える。

RAMディスクは、揮発性を持つ半導体メモリを使い、非常に高速で、振動、騒音、摩耗などの欠点を持たない記憶機能を提供する。 また、発熱についてもHDDに比べれば小さい。一方、RAMを用いることから記録した情報を保持するには常に外部からの電源供給が必要であり、また磁気ならびに光を用いる各種記録媒体に比べると情報量当たりの価格が高いという欠点がある。よって、アプリケーションの作業領域といった一時的な記憶媒体として用いるのが一般的である。

なお、フラッシュディスクや各種メモリカードなども同様に半導体メモリを記憶媒体として利用しているが、それらはフラッシュメモリを採用しており、電源を切っても情報が保持される点でRAMディスクと区別される。

[編集] 外部記憶装置としてのRAMディスク

[編集] 概要

工業用コンピューターシステムにおいて、HDDのような機械的な駆動部を持つ装置は耐久性などの問題が大きかった。 こういった分野に対して、対振動性や防塵密封運用での耐熱性の高い装置として、半導体だけでファイルシステムを提供する装置が生まれた。 IDE(ATA),SATAやSCSIに対応した装置があり、コンピューター側からは、単にHDDと同様に認識され、システムの起動装置としても問題なく利用できる。

ただし、HDDなどと比べると、生産数の少なさもあり、非常に高価なものとなっている。

SRAMを使うことで、RAMとしての高い書き換え性能と書き換え耐久性を持ちながら、長期間の電源遮断でもHDDに準ずるデータ保持を実現している。 SRAM以外のメモリーを利用するものもあるが、それぞれに長所短所がある。 本来HDD代替として作られていないメモリーを流用するためのIDE変換といった技術もある。

また、一般市場向けにも、汎用拡張スロットに増設するRAMディスク専用の拡張メモリ製品が古くから存在している。 別途購入という点で割高感があることや、近年ではHDDやキャッシュメモリによって十分実用的な性能が得られることから、あまり広く普及してはいないが、それでも2005年にGIGABYTEがi-RAMと称する製品を発表するなど、綿々と受け継がれている分野でもある。

[編集] 初期のノートパソコンの例

初期のノートパソコンでは、技術的な制約により、外部記憶装置はFDD1基を備えるのみであった。 しかし、当時のMS-DOS用のアプリケーションは、FDD2基を前提としているものが多かった。 また、日本語環境の場合はかな漢字変換辞書の存在もあり、FDD1基ですべてをまかなうことは困難であった。

そのため、当時のノートパソコンでは、主記憶とは別にフロッピーディスク1枚分の容量のRAMディスク専用メモリを搭載し、フロッピーディスク互換のRAMディスクとして使えるようになっているものが一般的であった。 このようなものはRAMドライブなどと呼ばれていた。

後にノートパソコンでも8028680386機が登場すると、以下に述べる主記憶を使ったより一般的なRAMディスクへと移行した。

[編集] 主記憶を転用するRAMディスク

[編集] 概要

OSが起動した後、あるいは起動過程において、専用のデバイスドライバ等が主記憶の一部を確保し、OSが利用可能なファイルシステムとして利用する仕組みのことで、一般ユーザにおいて単にRAMディスクと言えばこれを意味する。

外部記憶装置であるFDDやHDDなどに比べた場合、主記憶を利用したRAMディスクのほうが大幅に高速に動作する。 このため、FDDからMS-DOSを起動して利用していた時代には、RAMディスクにかな漢字変換の辞書を置くことが一般的だった。 これはMS-DOSが直接利用できるメモリーが1MBでしかなく、追加されたメモリーの多くを間接的に利用せざるを得なかった影響もある。

現在では、高速なHDDとキャッシュメモリによって、RAMディスクを使わずとも問題なく快適に利用できるため、RAMディスクはあまり使用されなくなっている。 そのため、現在ではRAMディスクの利用目的は、LHA,ZIP等の圧縮ファイル等のプレビュー等の目的などにしか使われていない。この利用方法は、FAT系ファイルシステムではファイル断片化を防ぐ意味もあった。

[編集] 8ビットパソコン

8ビットのパソコンの中には、RAMディスクを実現できる拡張ボードをオプションで備えるものがあった、また、グラフィック画面を低解像度に制限する替わりにグラフィックVRAMの一部をRAMディスク化する手法も存在した。SHARPX1シリーズがその一例。

8ビットパソコンでは、通常利用されていたDISK-BASIC環境ではファイル管理が貧弱で、またドライバの組み込みなどの柔軟性がほとんどないことから、RAMディスクはCP/Mなどの汎用OS環境で利用することが一般的であった。

[編集] MS-DOS

基本的には、デバイスドライバの読み込みをCONFIG.SYSなどに記述してシステム起動時にRAMディスクを設定する。

バンクメモリやハードウェアEMSメモリなどの頃から、大手サードパーティがPC-9801用に提供するメモリモジュールには、それを管理するためのソフトウェアが付属していた。 その中にそのメモリモジュールやメモリ増設ボードに合わせたRAMディスクドライバも含まれていた。

MS-DOSバージョン4や5の時代になると、386機が一般的となり、プロテクトメモリを利用するRAMディスクドライバが標準で付属するようになった。

FMRシリーズFM TOWNSではRAMディスクドライバはIO.SYSに予め組み込まれており、SETUP.EXE[1]でRAMディスクドライブを設定するだけでRAMディスクが利用できた。

[編集] Linux

LinuxでRAMディスク機能を提供するカーネルモジュールはtmpfs[2]やramfs[3]である。

[編集] システム起動イメージ

Linuxでは、起動時の初期段階で、RAMディスクイメージをマウントすることで、起動処理のために必要なデバイスドライバーを読み込んだりする仕組みを持っている。

この仕組みは、FDやCDから起動するLinuxシステムでも重要な役割りを持っている。

  1. ファイルシステムのイメージファイルを圧縮する。
  2. 圧縮済みのイメージファイルをFDに保存する。
  3. 圧縮済みのイメージファイルをラムディスクに展開する。

この手順によって、FDに収まらないシステムを問題無く稼働させることができる。

また、システムのルートファイルシステムをRAMディスクに移すことによって、起動に使ったFDやCD-ROMを抜き取ってしまうこともできる。

[編集] FreeBSD

FreeBSDにも、主記憶をRAMディスク化するドライバが標準で備わっている。

  • MFS (Memory File System) - 古くからあるもの。FreeBSD 5.0で廃止。
  • md (memory disk) - FreeBSD 4.0で導入。なおFreeBSD 5.0では主記憶の他にスワップ領域も指定可能となり、またvnドライバの統合により通常ファイルをマウントする機能も備えた。
    • mdの大規模使用の実例として、2ちゃんねるの実況系掲示板で特定スレッド(すなわち1つのdatファイル)に対する大量の細切れアクセスを捌く用途で用いられている。

[編集] Windows 95/NT以降

OS標準では対応しないが、サードパーティー製の有料/無料ドライバが複数存在する。

一時ファイルやWebブラウザのキャッシュファイルなどを置くことで、HDDに比べて格段に高速なアクセスによりパフォーマンスを向上させることができる。HDDへの負荷を減らす効果や、HDDにファイルを残さないことでセキュリティ面の効果もある。

メインメモリの容量が十分でない環境では逆にパフォーマンスを低下させる場合があるが、GBクラスのメモリが安価に入手できる近年ではその心配は少なくなった。また32bitのWindowsでは3.2GBを超えるメモリを認識できないため、余っている容量(OS管理外領域)をRAMディスクとして有効利用する試みもある[4]

[編集] 脚注

  1. ^ TownsOSではSETUP.EXP
  2. ^ JF: Linux Kernel 2.6 Documentation: tmpfs.txt
  3. ^ JF: Linux Kernel 2.6 Documentation ramfs-rootfs-initramfs.txt
  4. ^ 32bit Windowsの管理外領域をRAM Diskに使うインプレス PC Watch、2008年5月12日

[編集] 関連項目