こんばんは。
Ramdisk作成ソフトウェアに関して、前回の続きです。
今日からは文体を少し変えます。「である調」は書くのがしんどいので「ですます調」にします。些細なコトなんですけどね、慣れですかね...。

前回のお話はこちら。
Windows7でRamdiskを使う。(その1)


前回は「結論から言ってしまえば、VSuite Ramdiskに決まり」ってとこまで書きました。
今回は以下の内容を書きます。
(1)チップセット内蔵グラフィックス環境で発生する問題
(2)Ramdisk作成ソフトの選定理由

---------------------------------------------------

(1)内蔵グラフィックス環境で発生する問題
「グラフィックスで使用するメモリをどこから確保するか」によって、Ramdiskとの競合が起きることがあります。

まず、ビデオカードをマザーボードに刺している環境では、グラフィックス用のメモリは、通常ビデオカード上に搭載されており、OSが使用するメモリとは別のメモリになります。

これがチップセット内蔵グラフィックスの環境になると、グラフィックス用の専用メモリを持たず、メインメモリの一部をあらかじめグラフィックス用のメモリとして割り当てるようになります。
いわゆる UMA(Unified Memory Architecture)もしくは、SMA(Shared Memory Architecture) と呼ばれる機能で、ほとんどの場合、BIOS設定画面から割り当てる容量を指定できるようになっています。
この割当てはOSが起動する前の段階で行われるため、OSには単に搭載メモリが減っているように見えます。

(Intelの最近のチップセットでは、利用状況に会わせて動的にメモリを割り当てる方式となっているため、BIOSに割り当て容量の設定項目はありません。Intelのチップセットで同じような問題が起きるのかどうかは、すいませんがわかりません。)

PCのメモリは先頭から4GBまでをOSが使用します。正確には搭載ボードの数などにもよりますが、4GBより少なく3.5GB程度になります。
OSが使用するメモリの後ろがOSが使用していない「管理外領域」で、ここをRamdisk作成ソフトが使用します。
以下の図はメモリの配置を示したものです。
通常のメモリ状態

グラフィックスカードを差しているPCでは上記の通りなので、Ramdiskでは、OSが使用するメモリのすぐ後ろから使うことができます。

しかし、チップセット内蔵グラフィックス環境では、UMAによりOSの使用するメモリの後ろにビデオメモリを確保します。
Ramdisk作成ソフトウェアがグラフィックス用のメモリを避けて使用してくれないと、Ramdiskでビデオメモリを破壊することになりOSが起動しなくなります。
グラフィックス内蔵チップ環境でのメモリの状態
(※OSが起動しない状態になった場合、OSをセーフモードで起動してRamdisk作成ソフトウェアをアンインストールすることで復旧できます。しかし、環境によってはセーフモードでも起動しない場合があるとか...((((;゜Д゜)))怖いですねぇ)


(2)Ramdisk作成ソフトの選定理由

さて、私がRamdisk作成ソフトウェアに求める条件は次の条件になります。
...かなり厳しいものだと思います。

(a) 内蔵グラフィックスの環境でも動作する(公式対応が望ましい)。
使えなければ全く話にならないわけですから。

(b) OSのキャッシュファイル保存先として使用できる。
メモリが4GBならOSキャッシュをアクセスする機会は殆ど無いと思いますが、OSインストールドライブのSSDには空きが少ないのでキャッシュファイルはRamdiskに逃したい。

(c) 32bit/64bit Windows 7 両対応
今は32bitを使ってますが近いうちに64bitに切り替え予定。既にファイルサーバでは64bit版Windows7が稼働中。
※64bitOSになると、搭載メモリのすべてがOS管理下になります。8BGメモリがあっても全て使うことなんて無いので、OS管理下のメモリの一部(2~3GB)をRamdiskにできると便利です。
また、ご察しの通り64bitでは内蔵グラフィックスの問題は発生しないです。RamdiskがOS管理下のメモリを使用するのですから。


(d) スリープ、休止してもRamdiskのデータが消えないこと。
シャットダウン時も消えないのがベストですが、...どうせワークファイルしか置かないから最悪消えてもいいや。


さて、以上の厳しい条件で、各ソフトウェアを比較すると、結局VSuite Ramdiskが全ての条件を満たしていたので採用!となったわけです。VSuite Ramdiskしか残らなかったと言うことなんですが、逆に言えば、VSuite Ramdiskも条件を満たせなかったら、他のソフトを探さなければいけなかったということに...。

各ソフトの比較
比較表
※1 インターネット上の情報。旧バージョンでは自PC環境で動作しないことを確認。
※2 正式サポート。
※3 32bit版と64bit版は別製品だが、64bit版を買えば32bit版のアクティベートコードも付いてくるので両方使える


------------------------------------------------------

続いては、参考までに、私の環境におけるVSuite Ramdiskの設定を載せておきます。設定の参考にしてください。

(1)OS管理外領域の利用設定
[Options]画面で「Enable OS Invisible Physical Memory」をチェックします。
これでOS管理外領域を使用できるようになります。
(1)Option

(2)作成したRamdiskの一覽
メモリ交換前に使っていた1GBx2枚も追加して、搭載メモリを合計10GBにしました。OSキャッシュ用に2GB、データ・ブラウザキャッシュ用に4GBを割り当てました。
(3)Ramdisk一覽

(3)Ramdiskの設定
4GBのRamdiskの設定情報画面です。「Use OS Invisible Memory」をONにして、OS管理外の領域に割り当ててあります。
「Enable Image File」をONにすると、シャットダウンしてもデータが保持できるのですが、サスペンド・休止状態でのデータ保持機能と同時に使用すると、イメージファイルの容量が2倍(6GBx2 = 12GB)も必要になるので、シャットダウン時のデータ保持は諦めました。
ここだけトホホの仕様ですね...。
(4)ramdisk設定

(4)スリープ・休止状態でのデータ保持設定
[Options]画面の[Change IM Setting]ボタンを押して、[IM Setting]画面で「Support IM Hibernation」をONに設定します。
この設定をすると、Cドライブ直下に休止状態でRamdiskの状態を保持するためのイメージファイル「imhiberfil.sys」(約4GB)が作成されます。Cドライブの空き容量に注意です。
(2)IMSetting#1

(5)内蔵グラフィックス環境における競合回避設定
[Options]画面の[Change IM Setting]ボタンを押して、[IM Setting]画面で「Reserve First」をONにし、メモリサイズを指定します。
これはグラフィックス用に割り当てられているメモリサイズを指定します。
VSuite Ramdiskは、OSの管理領域後ろ+指定サイズの位置からRamdiskを割り当てます。かなり余裕を持たせて640MBを指定しました。
(2)IMSetting#2

ram(3)


---------------------------------------------------------------
...さて、大変長くなりましたが、Ramdiskに関することはとりあえずこれで一旦終了です。

使っていて、なにかトラブルが発生したら、また記載することにします。