パスワードを忘れた? アカウント作成
25131 story
ハードウェアハック

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, 参考になる)

    by Anonymous Cat (27860) on 2008年05月13日 2時32分 (#1342888)
    メモリ4G越えの場合はKB888575 [microsoft.com]にある「仕様」で
    休止状態(S4)が無効なのがつらいですね。
    デフォルトでは無効だけど、設定で有効に出来るとかだと良かったのですが。

    メモリ4Gでは休止状態が使えている(もちろん中身は破損)人と使えていない人がいるみたいですが、
    PCIメモリリソースがメモリ領域の一部を押し上げて4Gを超えていると判断されたのか
    それともGavotte Ramdiskのバージョンの違い等が理由なのか気になるところです。

    --
    単なる臆病者の Anonymous Cat です。略してACです。
  • by Anonymous Coward on 2008年05月10日 9時52分 (#1341804)
    そのうちEMMとかも出てきそうだな
    • そういえば、20年ほど昔から外付けRAMディスクってのはあったけど、今の容量からして、やっと使い物になる世界になりつつあるのかなぁ…と、懐かしく思い出したりも。
      もう一回、IOデータやメルコが大々的にやってくれないかなぁ。RAMの容量アップや価格が下がっただけでなく、バックアップ向けのバッテリーも技術的に進化したんだしさ。

      #その頃、アメリカのとある企業が、ビット化けする不良品のRAMチップだけで不良箇所を管理制御した、「当時としては格安」の外付けRAMディスクってのもあったけど、不良品チップの確保が難しくて、一般的な商品化に至らなかったとか。
      --

      /* Kachou Utumi
      I'm Not Rich... */
      親コメント
      • RAMディスクってのはあくまでも、メインメモリ空間にシステム起動後に確保するものであって、
        メインメモリ空間外のDRAMをバッテリーでバックアップして使うのは、
        シリコンディスク、というべきではないかと。
        親コメント
      • by Anonymous Coward
        USB RAMディスクが欲しいかも。
        メモリは市販のものを買ってきてその「USB RAMディスク」の上に載せる、っていう体裁の。

        …意味無いか。
        • > メモリは市販のものを買ってきてその「USB RAMディスク」の上に載せる

          ほぼタイトルオンリーですが、そういう使い方ができればバカ売れするでしょう。
          特に、公称1GBしかメモリが載らないAtom搭載機では、絶大な威力を発揮しそうです。

          問題はサイズかな…
          デスクトップ用のDIMMだとバカみたいなサイズになりますし、
          microDIMMだと入手性が悪くて高価。さてどうしよう。
          親コメント
      • 1.Windows XP SP3.1 で、MS自身が32bitモード時の管理外領域のRAMDISK機能の実装
        2.BIOSレベルで任意にRAMDISK割り当てとSDカード自動退避機能のあるマザー
        3.ノースチップにDRAMインターフェース復活してRAMDISKできるマザー

        DRAMメーカーも値下がりを嘆く以前に、こういう製品を出すように圧力かけないと
    • by Anonymous Coward on 2008年05月12日 18時51分 (#1342663)
      ATOKの辞書をRAMドライブにコピーして使ってましたね
      親コメント
  • by Anonymous Coward on 2008年05月12日 23時04分 (#1342794)
    32bitパソコンは32bitぶん以上のメモリを積んでもどうやっても認識せず無意味、
    というかそもそも積めるようにもなってない、

    …と今の今まで思い込んでいました orz
    CPU側にもPC側にも色々あって、32bit以上を積めれる奴もあるんですね。なるほど。めもめも。

    あと似たような話として先日知ったのが、
    スワップファイルのサイズは32bitぶんを超えれないんですね。
    てっきり認識できるディスクの範囲なら際限なく殖やせるんかと思ってた。
    (つまり十分高速なRAMディスクがあれば際限なくウハウハだと)
    • by MISSION (13232) on 2008年05月12日 23時33分 (#1342806) 日記
       Linuxとかのkernl configをやれば設定の中に32bit kernelでも64GBまで(だったかな)扱えるモードがあることに気がつくんですけど……最近はLinuxユーザーでもやったことある人少ないらしいからなぁ。
      # BSDでどうなっているかは、今動くマシン持ってないので不明。でも多分同じ様な設定はあるでしょう。

       たしかx86にはセグメント:オフセットの様な方式でシステム全体で扱えるメモリサイズを増やせるモードがあって、上記の設定はコレを使うようにしているはずなんだけど、このRAMDISKドライバもそこら辺をうまく使えるようにしているのかな?
      --
      ここは自由の殿堂だ。床につばを吐こうが猫を海賊呼ばわりしようが自由だ。- A.バートラム・チャンドラー 銀河辺境シリーズより
      親コメント
      • by Deasuke (34806) on 2008年05月13日 11時09分 (#1342978) 日記
        >たしかx86にはセグメント:オフセットの様な方式でシステム全体で扱えるメモリサイズを増やせるモードがあって
        歴史的には(16ビット時代)x86は16ビットのレジスタ二つを4ビットずらして加算することで20ビットのアドレッシングを可能にしていましたよね。(4ビットずらして加算する方がセグメントレジスタ、アセンブリだとCS:とかDS:とかES:とか書くやつ)。それがそのまま32ビットになったので、IA32のアドレッシングは、32ビットのレジスタを4ビットずらして加算することで36ビットが可能で、アドレッシング可能な空間は36ビット = 64GBな訳です。

        --
        Best regards, でぃーすけ
        親コメント
        • by Anonymous Coward
          でたらめを事実かのように書くなと。
          • by Anonymous Coward
            >でたらめを事実かのように書くなと。

            Z80しか知らない私にはどこがでたらめかよく分からないので
            正しい事実が知りたいです。
            • PAEによるアドレス拡張は、MMU上で行われています。

              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もの広大な実メモリ空間を実現しています。
              親コメント
              • by Anonymous Coward
                PC-8801はメモリウィンドウ、GRAM切替、高速テキストRAM切替、128k拡張RAM切替。
              • by Anonymous Coward
                バンク切り替えか
            • by Anonymous Coward
              上のAC氏とは別人ですが、資料を見ずに記憶だけで書いているので、少々あやふやですが
              セグメントレジスタ(プロテクトモードではセレクタと呼ぶ)は今でも16ビットのはずです。プロテクトモードでは
              セレクタの内容をディスクプリタテーブルへのオフセットとみなします。その指定された場所から
              物理アドレスのオフセットやサイズ、その他が記述されたデータ構造を読み出してユーザープログラムのアドレスと
              物理アドレスの変換を行います。

              ページングを考慮してませんし、用語も正確ではありませんが、ともかくセグメントレジスタの値を
              直接アドレスに加算しているのではなく、間接的に利用していることは確かです。
  • by Anonymous Coward on 2008年05月13日 11時32分 (#1342989)
    2003 Server x64で使おうと思ったが,Install RamdiskでFailedとエラーが出る.
    • by Anonymous Coward
      なぜ x64 環境にこのソフトがいるのか説明してほしいのですが?
      • x64でメインメモリが広大なら、Windowsや各アプリが何でもかんでもメモリに飛ばしてくれる訳ではありません。
        そこまでユーザーとHDDの距離は離れてませんよ。
        ですから「32bitだと4GB以上が無駄になるから残りをRAMディスクとして活用しよう」ではなく、
        「ユーザーが能動的にHDDを使う場面で代わりにRAMディスクを使う」という使い方も多くの場面で有効なのです。
        --
        =-=-= The Inelegance(無粋な人) =-=-=
        親コメント
      • by Anonymous Coward
        4GB以上とかそういう問題じゃなく単にRAMディスクが作りたかっただけです。

        x64対応な無料なRAMディスク作成ツールってこれとあと一つしか見当たらないんで。

        作っちゃダメなの?
        • by Anonymous Coward
          メモリが無駄だとか言うのではなく作ってみたかっただけならそれでいいと思います。
          RAMディスクを作ったらだめと言うわけではないです。

          勝手にエラーの理由を想像すると、OS上でメインメモリとして認識するからRAMディスク用に設定できないんじゃないですか?
typodupeerror

身近な人の偉大さは半減する -- あるアレゲ人

読み込み中...