32bitOS管理外のメモリ領域を活用する

同業の平澤氏が書いた記事に興味深いのがあってボクもやってみた。

ram04l.jpg

【特別レポート】
32bit Windowsの管理外領域をRAM Diskに使う

http://pc.watch.impress.co.jp/docs/2008/0512/ramdisk.htm

うちの原稿書きマシンは3GBメモリを搭載しているんだけどビデオカードを3枚も挿している関係で2.3GBしか物理メモリとして利用できなくなってしまっている。ははは

これは、32ビットWindowsだと、32ビットMAXの4GBのデッドエンドアドレスから、アドレス空間がシステムI/O領域にマップされていってしまうのが原因。

普通のPCはビデオカードは1枚だから全4GBのうち後ろ1GBくらいまでの割り当てで済んでしまうんだけど、うちのはビデオカードを3枚も挿しているから、さらに2~3GB目のアドレス空間までシステムI/O領域の浸食が始まっているというひどい状況。前述したように3GB搭載してるのにWindows Vistaからは物理メモリ2.3GBと認識(笑)

この浸食されたアドレス空間のメモリは32ビットWindowsから見るとI/O領域になってしまっているのでメモリとして利用できない。
つまり、メモリを搭載しているのにまったく活用されていないということなのだ。
これを回避するには64ビットWindowsを使えってことなんだけど、いかんせん、手厚い環境移行がサポートされていないから、実質、現実的な解決策とは言いにくい。

んで、この記事は、ここで紹介されているGavotte Ramdiskドライバを使うと、搭載したのに使われていないそのメモリ領域を仮想ディスクとして使えるぜ、ということを報告している。

実際にやってみたけど、うん、手順は簡単。
記事ではWindows VistaでのPAE有効化のさせ方が書いていないけど、Windows VistaでのPAE有効化はコマンドラインから

C:\>bcdedit /set pae forceenable

とすればOK。

ちなみにWindows VistaではBoot.iniの仕組みはなくなっている(参考)

あとは、展開したアーカイブに含まれるram4g.regをダブルクリックしてramdisk.exeを実行すればインストール完了。

これまで見えていなかった768MBがRAMDISKとして確保された。やった!

一応うちではIEの一時ファイル、ページファイルに割り当てて使ってるけど、IEを20個くらい開いて仕事している自分としては、なかなかに快適。ハードディスクの赤ランプ点灯が明らかに減ったよ。

しかし、21世紀になってI/O空間にぶら下がったメモリをRAMDISKとして使うとは思わなかった。

ちなみに、Gavotte Ramdiskの動作原理だけど、PAE(物理アドレス拡張モード)時から有効になるAddress Windowing Extensionsを利用しているということなのかな。
この仕組みはWindows Vistaからは標準で組み込んで欲しかった気がするけど、マイクロソフトとしては32ビット版Windowsを極力使いにくくして64ビット版に移行してもらいたい思惑があるから、そうも行かなかったのかも?
しかし、こういう裏テクが普及するとさらに32ビット版Windowsが延命しそうだなー。

あくまでも場繋ぎではあるけど、少なくとも今の状況をちょっと改善することは出来るし。

一般 | comments (0) | trackbacks (0)