OXY NOTES

メーカー製パソコンでは32bit OSの管理外メモリは使えない

軽い気持ちで導入するべきでないRAMディスク管理ソフト

64bit OSが全盛の時代ですが、まだ32bit OSを利用している方も多いはず。

べ、別に32bitだって使えるCPUは同じだし、SSDにすればエンコードでもしない限り速度変わらないし、メモリの上限が3GBだって全然不便してないし…|ω・`)チラッチラッ

という状態で、メモリの件に関しては非常に気になっていました。

特に貧乏性の私が気になったのが、4GBのメモリを積んでいるのに最大でも3GB程度しか認識されないという点です。

このメインメモリとして利用できない部分を「管理外領域メモリ」と言います。この領域はOSに認識されません。

そこで「管理外領域メモリ」をRAMディスクとして認識させるソフト利用して有効活用しよう。というのがよくある話なんですが、実はこれ落とし穴があります

なぜかあまり解説されませんが、実は「管理外領域メモリ」を有効活用するにはいくつかの条件があるからです。

このページではその条件を紹介します。


まずはCPUがPAEに対応しているか調べる

PAE(Physical Address Extension)とは、32bit OSで4GBを超えるメモリを扱えるようにする機能です。別名「物理アドレス拡張PAE」と呼ばれます。
PAEを有効にすると最大で64GBまでメモリを認識することができます。

Intel製のCPUの場合「Socket 775以降のCPU」、AMD製のCPUの場合「Socket 754以降CPU」であれば対応しています。
Intelで言えばPentium4のPrescott以降で、2004年以降のCPUであれば対応していることになります。

確実に調べたい場合はCoreinfoというCPUの情報を書き出してくれるプログラムを利用します。「Coreinfoの公式ページ」にアクセスしてダウンロードしてください。

解凍した「Coreinfo.exe」をCドライブ直下に移動します。

スタート>プログラム名を入力して実行」で「cmd」と入力してエンター。コマンドプロンプトを起動します。
(行頭の>はコマンドプロンプトを表す文字です。実際には入力しないようにしてください)

>cd C:¥
>coreinfo | findstr "PAE"

Coreinfo v3.31 - Dump information on system CPU and memory topology
Copyright (C) 2008-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
PAE             *       Supports > 32-bit physical addresses

7行目のPAEの欄に「*(アスタリスク)」がありますが、これが有効なことを示す表示です。無効な場合は「」となっています。


PAEを有効にする

再びコマンドプロンプトを立ち上げブートローダでPAEを有効にします。
(この方法はVistaの方法です。NT系OSの場合は異なるのでマニュアル等をご覧ください。)

>bcdedit

Windows ブート マネージャ
--------------------------------
identifier              {bootmgr}
device                  unknown
description             Windows Boot Manager
locale                  ja-JP
inherit                 {globalsettings}
default                 {current}
resumeobject            {cef94374-7352-11e1-8da6-806e6f6e6555}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30
resume                  No

Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows Vista (TM) Home Premium
recoverysequence        {572bcd56-ffa7-1155-aae0-0007e994107d}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {cef94236-7352-11e1-8da6-806e6f6e6555}

以上のようにブートマネージャとブートローダの情報が表示されます。
ブートローダの項目に「pae」の項目がなければとPAEは無効な状態です。「bcdedit /set pae forceenable」と入力して有効にします。

>bcdedit /set pae forceenable
この操作を正しく終了しました。

再び確認します。

>bcdedit
(省略)
Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows Vista (TM) Home Premium
recoverysequence        {572bcd56-ffa7-1155-aae0-0007e994107d}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {cef94236-7352-11e1-8da6-806e6f6e6555}
pae                     ForceEnable

無事paeの項目が加わっています。
ちなみに「ForceEnable」とは強制的に有効にするという意味です。


メモリーリマッピング機能を有効にする

メモリーリマッピング(Memory Remapping)とはメモリホールと呼ばれるOSからアクセスすることのできないメモリ空間をremapメモリ領域へ置き換える機能です。

メモリホールとはPCIメモリアドレス範囲のことで、BIOSやハードウエア(主にビデオメモリ)に関する情報を扱うために予め取られる空間です。

32bit OSでは扱える最大4GBの領域にPCIメモリアドレス範囲が含まれるため、OSでは約3GB程度しかメモリを認識することができません。

上の図からわかるようにPAEでメモリ空間を拡張していないと、有効にリマッピングできません。
詳しい原理はわかりませんが(2GBの部分からリマップする?)メモリーリマッピングを単体で行うと、使えるはずだった3GB程のメモリが2GB程度しか認識しなくなります

以上のことから32bit OSに4GBのメモリを積み、OS管理外メモリを使うにはメモリーリマッピングが必須です。
自作PC等の方は、BIOSの設定でメモリーリマッピングを有効にしてRAMディスクとして利用できます。BIOSの表記はマザーボードによって異なるので、マニュアルを参照してください。

題名にもあるように問題はメーカー製のパソコンの場合です。
BIOSにメモリーリマッピングの項目がないことが多く、設定ができません。そのためどんなRAMメモリ用のソフトを使ってもOS管理外メモリを使えるようにはなりません

また、RAMディスクを作成できたとしても、それは本来使える3GBのメモリから切り取って作ったRAMディスクです。実メモリが減った分スワップしやすくなり、逆に動作が遅くなることもあります。

どうしても有効にRAMディスクを利用したいなら、PAEを有効にした上で、4GB以上の実メモリを積む必要があります。(RAMディスクのためだけにメモリを増設するくらいならグレードが上のSSDでも選んだほうがよっぽど効果的ですが…)

以上のことを理解せずにWeb上にあふれるRAMディスク管理ソフトを導入すると、様々な不具合が出て、最悪の場合OSが起動しなくなることもあります。
というよりも、私は動作しなくなりました(´;ω;`)ウッ…。いくつかのソフトをインストールして動作テストを行っている最中に突如ブルースクリーンに…。そのままOSが起動することはありませんでした。
悪いことにTrueCryptでドライブを暗号化していたので、データの救出にも非常に苦労しました。

ここまで読んでいただいた皆さんなら納得していただけると思いますが、ソフトの「インストールするだけ簡単!」などの宣伝文句に騙されないようにしてください。

少しでも時間短縮しようと思って導入したソフトのお陰で、何時間も無駄にしてたら世話無いですねw