RAMディスク
RAMディスクの最新ニュースをまとめて検索!
RAMディスク(ラムディスク)は、ランダムアクセスメモリ (RAM) による外部記憶装置である。なお「ディスク」とは、外部記憶装置の代表であるハードディスクからの連想であり、実際はディスクではなく、ディスク的な特徴もない。
実現の仕方により、大きく2種類に分かれる。
- ハードウェアレベル
- RAMを搭載した専用のハードウェアを用意し、OSからはハードディスク等の通常の外部記憶装置とまったく同じに見える(実際は追加のデバイスドライバを必要とする製品もある)。シリコンディスク(ソリッドステートディスク、半導体ディスク)の一種であり、近年のFlashメモリを使ったFlash SSDと同じ原理である。
- ソフトウェアレベル
- 専用のハードウェアは持たず、デバイスドライバにより主記憶装置(メインメモリ)の一部を仮想化した外部記憶装置として使う。仮想ディスク (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ドライブなどと呼ばれていた。
後にノートパソコンでも80286、80386機が登場すると、以下に述べる主記憶を使ったより一般的なRAMディスクへと移行した。
[編集] ソフトウェアによるRAMディスク
[編集] 概要
OSが起動した後、あるいは起動過程において、専用のデバイスドライバ等が主記憶の一部を確保し、OSが利用可能なファイルシステムとして利用する仕組みのことで、一般ユーザにおいて単にRAMディスクと言えばこれを意味する。
外部記憶装置であるFDDやHDDなどに比べた場合、主記憶を利用したRAMディスクのほうが大幅に高速に動作する。このため、FDDからMS-DOSを起動して利用していた時代には、RAMディスクにかな漢字変換の辞書を置くことが一般的だった。これはMS-DOSが直接利用できるメモリーが1MBでしかなく、追加されたメモリーの多くを間接的に利用せざるを得なかった影響もある。
その後、高速なHDDとキャッシュメモリの普及によって、RAMディスクを使わずとも問題なく快適に利用できるため、上記のようなRAMディスクの利用は廃れた。しかしながらRAMディスクの利便性(高速なアクセス、HDDの消耗やFAT系ファイルシステムでの断片化の抑制)などを認識し、細々とながら利用するユーザーがいた。さらに2008年頃からメモリの価格下落により大容量化が進み、一部では脚光を浴びるようになってきた。詳しくはWindows 95/NT以降で記述する。
[編集] 8ビットパソコン
8ビットのパソコンの中には、RAMディスクを実現できる拡張ボードをオプションで備えるものがあった、また、グラフィック画面を低解像度に制限する替わりにグラフィックVRAMの一部をRAMディスク化する手法も存在した。SHARPのX1シリーズがその一例。
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]である。
[編集] システム起動イメージ
詳細は「initrd」を参照
Linuxでは、起動時の初期段階で、RAMディスクイメージをマウントすることで、起動処理のために必要なデバイスドライバーを読み込んだりする仕組みを持っている。
この仕組みは、FDやCDから起動するLinuxシステムでも重要な役割りを持っている。
- ファイルシステムのイメージファイルを圧縮する。
- 圧縮済みのイメージファイルをFDに保存する。
- 圧縮済みのイメージファイルをラムディスクに展開する。
この手順によって、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標準では対応しないが、マイクロソフトによるWindows 2000/XP用サンプルドライバ[4]や、サードパーティー製の有料/無料ドライバが複数存在する。
HDDに比べて格段に高速なアクセスにより、上手く活用すればパフォーマンスを向上させることができる。特に大量のディスクアクセスを必要とする作業(画像処理アプリケーションや圧縮ファイルの展開など)で一時フォルダとして使うと大きな効果を発揮する。またウェブブラウザのキャッシュファイルなどを置けば、アクセス速度に加えてHDDにファイルを残さないことでセキュリティ面の効果もある。
メインメモリの容量が十分でない環境では逆にパフォーマンスを低下させる場合があるが、GBクラスのメモリが安価に入手できる近年ではその心配は少なくなった。また32bitのWindowsでは3.2GBを超えるメモリを認識できないため、余っている容量(OS管理外領域)をRAMディスクとして有効利用する方法が確立され[5]、アイ・オー・データ機器のRamPhantom3の様に市販される物も出てきた。
近年登場したSSDや、それを搭載したネットブックの普及により、(HDDと比較すれば)極端に少ない二次記憶容量を節約する目的、また書き込み回数の上限がHDDと比較して少ないと言われるSSDへの無用な負荷を避ける目的としてにわかにRAMディスクの需要が増してきている[6]。
[編集] 脚注
- ^ TownsOSではSETUP.EXP
- ^ JF: Linux Kernel 2.6 Documentation: tmpfs.txt
- ^ JF: Linux Kernel 2.6 Documentation ramfs-rootfs-initramfs.txt
- ^ Windows 2000 の Ramdisk.sys サンプル ドライバ
- ^ 32bit Windowsの管理外領域をRAM Diskに使う、インプレス PC Watch、2008年5月12日
- ^ Eee PC発売記念(?) この小さいマシンでゲームを動かしてみよう――その2:Windows XPを頑張って軽快にしてみる、4Gamer.net、2008年1月23日
[編集] 関連項目
最終更新 2009年11月9日 (月) 21:56 (日時は個人設定で未設定ならばUTC)。
【RAMディスク】変更履歴

