Windows XP 32ビット版で4GB以上のメモリを活用するGavotte Ramdiskの使い方 23
ストーリー by nabeshin
利用してみました 部門より
利用してみました 部門より
cck 曰く、
Windows XP 32ビット版を使っていると、OSのメモリ制限の壁によって搭載したメモリの一部が使われないままになっているかもしれません。かといって64ビットはソフトの互換性の問題であまり使いたくない。そんな時により多くのメモリを有効活用できるGavotte RamdiskというRAMディスクドライバが話題になっています。
※この操作はシステムに不具合を引き起こす可能性がある為、コンピュータに詳しくない人は実行するべきではありません。
使い方の手順は以下の通りです。
- 1. 上記サイトからrramdisk.zipをダウンロードして展開
- 2. msconfigコマンドを起動してboot.iniに「/PAE」オプションを追加する。既に「/NoExecute=OptIn」や「/fastdetect」オプションが付いている場合はそれらを消さずに半角スペースを空けて「/PAE」を記述する
- 3. 手順1で展開しておいたフォルダの中にあるram4g.regを実行
- 4. 同様にフォルダ内のRRAMDISK.INFをインストールする(INFファイルの右クリックから実行)
- 5. コンピュータを再起動
- 6. フォルダ内のramdisk.exeを起動して「Install Ramdisk」ボタンをクリックする
- 7. Disk Sizeに3.8GBと入力する(システム搭載メモリが8GBの場合。搭載メモリ量-OS利用量から少し余裕を持った値が良いと思われる)
- 8. Drive Letterはを任意に設定(R:\とした)
- 9. Media Typeに「Fixed Media」を選択
- 10. [Apply]と[OK]ボタンをクリックすると、RAMディスクがマイコンピュータに追加される
- 以上の作業によって、作成されたRAMディスクはデフォルトでFAT32でフォーマット済みの状態になっているので、普段使っているソフトのTEMPフォルダを置いたり、NTFSでフォーマットし直してスワップファイルを置いたりすると良いかもしれません。なお、RAMディスクはコンピュータを再起動(スタンバイ含む)したり電源を切ると内容が消えてしまうので、大事なデータを保存してはいけません。保存しても安全なブラウザのキャッシュファイル置き場などに使うようにしましょう。また、BIOSによっては動作しないようです。
私の実験したシステム
CPU AMD Phenom X4 9850BE メモリ 6GB(2+2+1+1GB) マザーボード ASUS M2N-E (1401) OS Windows XP SP3 32ビット日本語版
休止状態 (スコア:2, 参考になる)
休止状態(S4)が無効なのがつらいですね。
デフォルトでは無効だけど、設定で有効に出来るとかだと良かったのですが。
メモリ4Gでは休止状態が使えている(もちろん中身は破損)人と使えていない人がいるみたいですが、
PCIメモリリソースがメモリ領域の一部を押し上げて4Gを超えていると判断されたのか
それともGavotte Ramdiskのバージョンの違い等が理由なのか気になるところです。
単なる臆病者の Anonymous Cat です。略してACです。
DOS時代に戻ったようだ (スコア:0)
Re:DOS時代に戻ったようだ (スコア:2, 参考になる)
もう一回、IOデータやメルコが大々的にやってくれないかなぁ。RAMの容量アップや価格が下がっただけでなく、バックアップ向けのバッテリーも技術的に進化したんだしさ。
#その頃、アメリカのとある企業が、ビット化けする不良品のRAMチップだけで不良箇所を管理制御した、「当時としては格安」の外付けRAMディスクってのもあったけど、不良品チップの確保が難しくて、一般的な商品化に至らなかったとか。
/* Kachou Utumi
I'm Not Rich... */
Re:DOS時代に戻ったようだ (スコア:1)
メインメモリ空間外のDRAMをバッテリーでバックアップして使うのは、
シリコンディスク、というべきではないかと。
Re: (スコア:0)
メモリは市販のものを買ってきてその「USB RAMディスク」の上に載せる、っていう体裁の。
…意味無いか。
USB接続DDR2 SDRAMスロット = 超高速ReadyBoostメモリ? (スコア:1)
ほぼタイトルオンリーですが、そういう使い方ができればバカ売れするでしょう。
特に、公称1GBしかメモリが載らないAtom搭載機では、絶大な威力を発揮しそうです。
問題はサイズかな…
デスクトップ用のDIMMだとバカみたいなサイズになりますし、
microDIMMだと入手性が悪くて高価。さてどうしよう。
安けりゃ欲しいパーツ (スコア:0)
2.BIOSレベルで任意にRAMDISK割り当てとSDカード自動退避機能のあるマザー
3.ノースチップにDRAMインターフェース復活してRAMDISKできるマザー
DRAMメーカーも値下がりを嘆く以前に、こういう製品を出すように圧力かけないと
Re:DOS時代に戻ったようだ (スコア:1, 参考になる)
今の今まで知らなかったorz (スコア:0)
というかそもそも積めるようにもなってない、
…と今の今まで思い込んでいました orz
CPU側にもPC側にも色々あって、32bit以上を積めれる奴もあるんですね。なるほど。めもめも。
あと似たような話として先日知ったのが、
スワップファイルのサイズは32bitぶんを超えれないんですね。
てっきり認識できるディスクの範囲なら際限なく殖やせるんかと思ってた。
(つまり十分高速なRAMディスクがあれば際限なくウハウハだと)
Re:今の今まで知らなかったorz (スコア:3, 参考になる)
# BSDでどうなっているかは、今動くマシン持ってないので不明。でも多分同じ様な設定はあるでしょう。
たしかx86にはセグメント:オフセットの様な方式でシステム全体で扱えるメモリサイズを増やせるモードがあって、上記の設定はコレを使うようにしているはずなんだけど、このRAMDISKドライバもそこら辺をうまく使えるようにしているのかな?
ここは自由の殿堂だ。床につばを吐こうが猫を海賊呼ばわりしようが自由だ。- A.バートラム・チャンドラー 銀河辺境シリーズより
Re:今の今まで知らなかったorz (スコア:2, 参考になる)
歴史的には(16ビット時代)x86は16ビットのレジスタ二つを4ビットずらして加算することで20ビットのアドレッシングを可能にしていましたよね。(4ビットずらして加算する方がセグメントレジスタ、アセンブリだとCS:とかDS:とかES:とか書くやつ)。それがそのまま32ビットになったので、IA32のアドレッシングは、32ビットのレジスタを4ビットずらして加算することで36ビットが可能で、アドレッシング可能な空間は36ビット = 64GBな訳です。
Best regards, でぃーすけ
Re: (スコア:0)
Re: (スコア:0)
Z80しか知らない私にはどこがでたらめかよく分からないので
正しい事実が知りたいです。
Re:今の今まで知らなかったorz (スコア:2, 参考になる)
IA32はアーキテクチャ上の、ソフトウェア側から見たメモリアドレス空間は4GBしかありませんが、
MMUによってこの仮想メモリ空間と、実際のメモリアドレスとの対応を取るようにしています。
たとえば、12345678 番地へのメモリアクセスをしようとした場合、
上位20ビットがページ番号で、下位12ビット(4kバイト)がページ内のアドレスになります。
つまり、これは「ページ12345」の「678番地」へのアクセスです。
もし、ページテーブル12345番の値が9abcdだったとしたら、ソフトウェアから見た「12345678番地」へのメモリアクセスは
実メモリ「9abcd678番地」へのアクセスとなります。これがMMUの仕組み。
元々のIA32では、このページテーブルは20ビットのデータしか持ってませんでしたが、
ページテーブルが20ビットより多くのデータを持つようになっていれば、実メモリは4GB以上にアクセスできるわけです。
IA32にそういう仕様拡張を施したのがPAEです。
PAEの場合、ページテーブルのデータが52ビットに増えているので、MMU変換後の実アドレスとしては52bit+12bit=64bit=16エクサバイトのアドレスが指定できます。実際には、そこまでの大きさのメモリを管理できるだけのページテーブルを作ることができませんし、そもそもCPUから出ているアドレスバスが36bit=64GB分しかありませんけど、アーキテクチャ的にはそこまで拡張されてるってことです。
Z80時代の人なら、MB-S1 とか、MZ-2500 を想像すれば分かりやすいかな。
CPU自体はソフトウェアアーキテクチャ的に64KBしかアクセスできませんが、
MMUを通すことで512KBもの広大な実メモリ空間を実現しています。
Re: (スコア:0)
Re: (スコア:0)
Re: (スコア:0)
セグメントレジスタ(プロテクトモードではセレクタと呼ぶ)は今でも16ビットのはずです。プロテクトモードでは
セレクタの内容をディスクプリタテーブルへのオフセットとみなします。その指定された場所から
物理アドレスのオフセットやサイズ、その他が記述されたデータ構造を読み出してユーザープログラムのアドレスと
物理アドレスの変換を行います。
ページングを考慮してませんし、用語も正確ではありませんが、ともかくセグメントレジスタの値を
直接アドレスに加算しているのではなく、間接的に利用していることは確かです。
x64環境 (スコア:0)
Re: (スコア:0)
Re:x64環境 (スコア:1)
そこまでユーザーとHDDの距離は離れてませんよ。
ですから「32bitだと4GB以上が無駄になるから残りをRAMディスクとして活用しよう」ではなく、
「ユーザーが能動的にHDDを使う場面で代わりにRAMディスクを使う」という使い方も多くの場面で有効なのです。
=-=-= The Inelegance(無粋な人) =-=-=
Re: (スコア:0)
x64対応な無料なRAMディスク作成ツールってこれとあと一つしか見当たらないんで。
作っちゃダメなの?
Re: (スコア:0)
RAMディスクを作ったらだめと言うわけではないです。
勝手にエラーの理由を想像すると、OS上でメインメモリとして認識するからRAMディスク用に設定できないんじゃないですか?