私は普段使いPCとして VAIO Z(VPCZ1)を利用しているが、このモデルはRAID 0で4基のSSDを1基に見せかけ、ただでさえ高速なSSDをさらに凌駕する性能を発揮している。そして、64-bit版Windows 7を利用しているので、メインメモリの8GBもトリッキーなテクニックを要することなくOSレベルで活用できている。この二つの理由のため、RAMディスク(メモリディスク等、様々な呼び名があるが、ここではメインメモリを仮想ディスクとみなして利用するものを指す)を使う理由を見出せていない。
ただ、ついこの間までは 32-bit OSだったため、搭載した物理メモリも4GBまでしか使えず、WindowsとPCの組み合わせにおいては4GBのうち1GB弱も使用しないため、この「余った」物理メモリを有効に使う手段としてRAMディスクで利用したり、またHDDはどうしても高速化に限界があることからRAMディスクそのものにも存在意義はあった。
そう、存在意義なのである。
そもそもRAMディスクは、私の経験で最初に導入したものは、I/Oデータ機器さんから発売されていたPC-9800シリーズのCバス(拡張スロット)に接続する2MB(メガバイトである。けっして書き間違いではない)の拡張RAMディスクボードだった。搭載するDRAMチップの数が多いため、平面的に貼り付けては面積が足りず、専用のDRAMチップ(いわゆる足が片側だけにあって、立てて搭載できた)で実装面積を稼いだのだった。当時のDRAMチップの容量は64kbytesだったので、32個のチップで2MBとなる。今では「たかが」2MBであるが、このRAMボードを使っていた頃のPC-9801VM2は256KB(0.25MB。イマドキのGB表記にすると0.00025GB)だったことを思い起こせば、実に8倍。当時の外部記憶メディアの2HDフロッピィディスク(=1.2MB)と比べても大きな大きな容量だったのだ。
けっして速いとは言えないPC-9801VM2のCバスに接続したRAMボードだが、フロッピィディスクや当時高価でなかなか手を出せなかったHDDと比べ、アクセス速度は光のように速く(感じただけでそんなわけはない)、当時は超高速アクセスを実現できた唯一のデバイスだった。これが私のRAMディスク初体験だが、これを導入した目的は何か。ずばり、仮名漢字変換速度向上のためである。当時の仮名漢字変換(日本語FEPで実現)は、変換機構は時代と共に大きく進化しているが、基本的な部分、日本語辞書にアクセスして候補を読み出すという基本的部分は何等変わっていない。現在は、HDDがそれなりの速度となっているのであまり大きな問題とはならないが、当時、日本語辞書はフロッピィディスクに置かれていた。欧米のIBM PCは1フロッピィディスクドライブであるのが当たり前だが、我が国においてはこの日本語辞書のために2つのフロッピィディスクドライブを搭載することが求められていた。HDDなどないので、もう一つのフロッピィディスクドライブにはアプリケーションソフトウェア及びMS-DOSが入っており、他ソフトウェアを使う際は、フロッピィディスクをゲーム機のように入れ替えて利用していたのだ(もちろん、当時のアプリケーションソフトウェアはフロッピィディスクにプロテクトがかけられているものがほとんどだったので、HDDにインストールすることもままならなかったのだが)。
こういう時代において、アクセス速度が求められていた中、登場したのがRAMディスクだったのである。もちろん、フロッピィディスクへの日本語辞書アクセスの遅さに辟易していた私は、6万円ほどした2MBのRAMボードを購入した。今は亡き…、いや今もあるが浮川社長が去ったジャストシステムが、ちょうどこの頃は一太郎バージョン3で一世を風靡しており、PC-9801シリーズ周辺機器を取り扱ったのもこの時期である。一太郎とセットでの使用を前提とした拡張RAMボードやハンディスキャナ等を扱っていたが、ハードウェア販売に慣れていない(代理店業務としては慣れていたのだろうが)ことからか、あっという間に消え去ったのも懐かしい。
と、昔話を語り出すときりがないので、RAMディスクに話を戻し、かつては仮名漢字変換処理において必須とも言うべきRAMディスクは、拡張ボードという外付け的なものから、80386のプロテクトモード(及び仮想86モード)を利用した仮想EMSメモリ等をRAMディスク代わりにすることが普及し、拡張ボードタイプはあっという間に消滅した。我が国においては、仮名漢字変換処理をMS-DOSのデバイスドライバタイプ(日本語FEP)としてコンベンショナルメモリを圧迫していたことから、仮想RAMディスク以外にも80386の機能(仮想86モードを利用したメモリ再配置機能)は必須であり、欧米諸国よりも80386以上を搭載したものが求められた(欧米では我が国がなぜ高価な386を使っていたのか理解不能だったのだ→286で十分じゃね?みたいな)。つまり、日本語処理の土台としてRAMディスクも求められていたのである。
この状況に変化の兆しが見えるのは、HDDの普及と高速化である。今ではほとんど話題にのぼらなくなったが、特にMobile PC(ノートPC)においてはHDDの運転休止・再開によるアクセス遅延などを除けば、RAMディスクは必須というポジションから外れ、80386(IA-32)のプロテクトモードをそのまま利用できるようになってからは、なおのことRAMディスクは使われなくなっていた。なぜなら、RAMディスクにメインメモリを割り当てるよりも、そのままプロテクトモード用メモリとして使った方が効果的だからである。この頃の思い出話として、何が何でもRAMディスクの方が速いからと、たったの3.6MBしかないメインメモリのうち、2MBをRAMディスクとして割り当て、残り1.6MBをWindows 3.0(もちろんリアルモード以外)で使用していた話がある。その人は、MS-DOS時代(リアルモード時代)と同じようにRAMディスクが高速化のみに寄与すると錯覚し、Windows 3.0でプロテクトモードとしてメインメモリを使うなど想いも及ばなかったのだった。少ないメインメモリのため、HDDへのスワッピングが頻発し、メインメモリとしてそのまま3.6MB使えばいいのにと見ていたが、頑なな姿勢を取り続けるような人だったので見守るだけとしていたのだ。状況、環境が変われば最適解も変わる。単にそれだけのことだが、特に変化の速いPC界においては顕著だろう。
と、またまた横道に逸れてしまった(笑)。必須でなくなったRAMディスクが再び脚光を浴びるようになったのは、32-bit(80386、IA-32)のメモリアドレスの壁に到達したからである(正確にはWindowsで予約済み以外の上限に到達)。仮想的なRAMディスクは、16-bitから32-bitへの移行時に大きく普及したことも同じ理由だが、32-bitから64-bitへの移行時においても「余剰」メモリをどう活用するかという視点から流行りだしたのである。
だが、16-bitから32-bitへの移行を過ぎて、32-bit環境だけを使うようになってからはプロテクトモードメモリとして活用したように、それは64-bit環境だけを使うようになれば同じ道を辿ることになる。さらには、RAMディスクに匹敵するだけの、もっといえば人が遅いと感じない程度の速度を実現できさえすれば、RAMディスクなど求めなくなる。それが、冒頭で述べた「このモデルはRAID 0で4基のSSDを1基に見せかけ、ただでさえ高速なSSDをさらに凌駕する性能を発揮している。そして、64-bit版Windows 7を利用しているので、メインメモリの8GBもトリッキーなテクニックを要することなくOSレベルで活用できている。この二つの理由のため、RAMディスク(メモリディスク等、様々な呼び名があるが、ここではメインメモリを仮想ディスクとみなして利用するものを指す)を使う理由を見出せていない」という結論に至ったのであるが、いらなくなったというのは言い過ぎだろうかと感じつつ、今回はここまで。
昔は起動時にRAMディスクをつくって、「FEPの辞書を転送し、
終了時に、辞書をHDDに書き戻す」という使い方をしていました。
なんと一太郎Ver5の時代です。
(バッチファイルを書きました(^^;)
起動中必要で高速にアクセスしたいものを置いて、終了時は変更を
書き戻すという使用方法は今でも有効かな?
投稿情報: 志葉 京兵 | 2011/01/25 13:56