web-dev-qa-db-ja.com

一部のプログラムは、32ビットシステムで実際に「使用不可」RAMにアクセスできますか?

質問

32ビットシステム(XPを含む)で「使用できないRAM」にアクセスできることを目的としたいくつかのプログラム(特にRAMドライブソフトウェア)を見てきました。彼らが実際にできるかどうか、もしそうなら、どうやってそれを行うことができるのか疑問に思います。

テクニカル

32ビットWindowsシステムにインストールされるRAMの量を制限する方法はいくつかあります(ここでは簡略化)。

  • 2:2(2GB)仮想アドレス空間

    Windowsがアドレス空間をパーティション分割する の方法のため、プログラムは最大2GBのサイズのメモリブロックしか割り当てることができません。 /3GBスイッチは、比率を2:2から3:1に変更することで、これをある程度軽減できます。

  • 3.xGB-4GB

    ハードウェアアドレスマッピング( [〜#〜] mmio [〜#〜] )により、アドレス空間の一部は 他のデバイスによってアップ インストール(または組み込み)で使用されますシステム。メモリの再マッピングは、それをサポートするシステムでこれに役立つ場合があります。

  • 4GB以上

    32ビットポインタは最大2つまでしか指すことができないため32 アドレスの場合、最大4GB相当のデータのみを指すことができます。 PAEモード を使用すると、より大きなポインタと「ページ」を使用することでこれを支援できます(プロテクトモードはリアルモードよりも優れていると考えられていたため、皮肉なことに、古い16ビットDOSセグメント:オフセットメモリスキームとよく似ています)。 )。

  • Microsoftのマーケティング制限

    ハードウェアとソフトウェアの数学的制限に加えて、MicrosoftはWindows(* 64ビットバージョンを含む)にも 人為的な制限を課す して、さまざまな目的と価格でさまざまなエディションを販売できるようにしています。

詳細と例

私の質問は、Windowsまたは通常のプログラム(メモ帳など)がこれらのいずれかによってどのように影響を受けるかについてではありません。私はすでにこれらの制限とそれらの典型的な回避策(Windows7カーネルを Windows Server 2003カーネルに似ている にする ロシア語パッチ を含む)に精通していますが、私はそうではありませんそれらを再ハッシュすることに興味があります。

私の質問は、これらの制限の1つ以上を克服できると主張するプログラムについてです。

他のプログラムがこのような主張をしているのを見たことがあると思いますが、一部のRAMドライブソフトウェアはそうしていると確信しています。いくつかの例には、 RaxcoDATARam 、および Gavotte が含まれます。私は以前、そのような主張をしたRAMドライブプログラムをいくつか試しましたが(Gavotteもその1つだったと思います)、実際に追加のメモリにアクセスすることはできませんでした。

請求

Raxcoは次のように主張しています。

RamDisk Plusは、4GBを超える非表示のRAM)RAMディスクを作成できるだけでなく、3.2GBから4GBのアクセスできないメモリを使用することもできます。

そして後で彼らはそれについて言及します:

これは、Windowsが4GBを超える非表示のRAMを報告した場合にのみ実行できることに注意してください。

これらのプログラムのほとんどとは異なり、どの制限を克服するかについて曖昧ではないため、最初のステートメントは適切です。

ただし、これらのプログラムのほとんどと同様に、追加のメモリにアクセスするために何が必要か(ハードウェアおよびソフトウェアに関して)はあいまいであり、その動作や副作用(たとえば)については何も述べていません。 、単に/3GBスイッチを追加するか、PAEモードを有効にするだけの場合、問題を「克服」するのではなく、OSとすべてのプログラムに影響を与える特別なWindowsモードを有効にし、それに対応します。

JensのGavotteRAMドライブに関する議論は、彼ら(少なくともGavotte)が実際にPAEを使用して機能していることを示しているようです。また、ドイツの雑誌の記事Geisterspeicherc'tが画期的な情報源として言及されています。残念ながら、記事が無料ではないだけでなく、私のドイツ語はまだ技術記事を読むのに十分な流暢ではないので、それがどのように機能するか、またはその要件の詳細を提供するかどうかはわかりません。

概要

これらのプログラムの主張に真実があるかどうか誰かが知っていますか?誰かが実際にそれが機能するのを見たことがありますか?もしそうなら、それらを機能させるために何が必要ですか?また、それらはどの程度正確に実行されますか(/3GB、PAEなどを有効にすることでシステム全体とすべてのプログラムに影響しますか、それとも特大のポインターを使用してハードウェアに直接アクセスするなどの特別なことをしますか?

5
Synetech

32ビットシステムで「使用できないRAM」にアクセスできることを目的としたいくつかのプログラム(特にRAMドライブソフトウェア)を見てきました。つまり、Windowsは32ビットシステムにインストールされている4GBの一部を認識またはアクセスできませんが、これらのプログラムはアクセスできると主張しています。

技術的には、プログラムがPAEまたは64ビットモードのいずれかをアクティブにするのに十分早く自分自身を挿入し、ロードが完了する前にOSの通常の操作をエミュレートすることができれば可能だと思います。

4GBの32ビットシステムでは、Windowsは3.20GBしか認識しませんが、BIOSも認識します。

これは、32ビットシステムに4GBのアドレス空間があるためです。その一部(理想的には512 MB以下)をRAMに使用する必要があります。残りはPCIアドレス空間、仮想メモリアドレスなどです。

これはWindowsの制限ではなく、マザーボードの制限であるため、PAEまたは/ 3Gスイッチを使用することは問題ではありません。チップセットとメモリコントローラーがそれを超えてアクセスできない場合、ハードウェアに直接アクセスしたとしても、Windowsやソフトウェアがどのようにアクセスできるかわかりません。

本当。メモリコントローラーまたはマザーボードが4GBに制限されている場合は、それです。ゲームオーバー。

PAEを使用するには、サーバーまたは64ビット版のWindowsを使用する必要があることを知っています。

いいえ、これは間違っています。

PEAは32ビットOSで動作します。 36ビットアドレス指定を使用します。 16と考えてください(24)4 GBのウィンドウ(232)それぞれ。または、16ページの本と考えてください。同時に複数のページを表示することはできませんが、ページをめくることができます。

(ただし、これらのバージョンのWindowsでさえBIOSがアクセスできないものにアクセスできる方法はわかりません)。ただし、これらのプログラムはそれについて何も述べておらず、Windowsのコンシューマーバージョンを使用する通常のユーザーに対して機能することを暗示しています(または完全に言っています)。

PAEは、ハードウェアがサポートしていることを前提として、これらのWindowsオペレーティングシステムのオプションです。

  • Windows 7(32ビットのみ)
  • Windows Server 2008(32ビットのみ)
  • Windows Vista(32ビットのみ)
  • Windows Server 2003(32ビットのみ)
  • Windows XP(32ビットのみ)

ソース

ご覧のとおり、これは32ビットOSのみです。サーバーバージョンとコンシューマーバージョンの両方。 MSサイトには記載されていませんが、後でWindows 7SP1から削除されたことを思い出しているようです。

これらのプログラム(特にRAMドライブ)をいくつか試しましたが、上位メモリにアクセスできませんでした。これらのプログラムの主張に真実があるかどうか誰かが知っていますか?誰かが実際にそれが機能するのを見たことがありますか?もしそうなら、彼らはどのように正確にそれをやってのけるのですか?

どのプログラムがわからなければ、それに答えることはできません。

ただし、 [〜#〜] pae [〜#〜] をサポートするマザーボードでは動作する可能性がありますが、銅線のトレースがないか、メモリコントローラがサポートしていないマザーボードでは動作しません。 。 (例:古いCPU、古いチップセット、atom CPUはPineviewまたはDiamondvilleより古い)。

2
Hennes

32ビットシステムで上位メモリを使用するRAMディスク。

多くのボードでこれを行うには、ボード自体が拡張メモリに切り替えられていることを確認する必要があります。 32ビットOSは、PAEモードである必要があります。論理的には、4Gigよりも多くのメモリがあります。

32ビットシステムで4Gig未満になる理由は、合計アドレス空間がビデオカードのメモリ空間によってビデオカードのRAMを設定するためにも使用されるためです。そのスペースに配置されるGPUカードRAMが多いほど、システムRAMの「仮想メモリ」アドレス空間は少なくなります。

ビデオカードの64ビットドライバは32ビットアドレスの制限外のスペースを割り当てる可能性があるため、64ビットシステムのような制限はありません。RAMの残りの部分にはまだ十分な仮想メモリスペースを割り当てることができるため、そうする必要はありません。

----ビデオRAM ---システムRAM ---- | 32ビットエンド| ----拡張-

以下は、私がずっと前に32ビットシステムで拡張RAMディスクを作成したときのC&Pの投稿です。これは、問題が発生する可能性のあるすべてのことをカバーすることになっています。拡張メモリを使用して、4ギガのRAMディスク用にXP 32ビットを設定しました。


32ビットシステムではアクセスできないその他の4GigをRAMディスクとして使用します。

何年もの間、システムでRAMディスクのオンとオフを切り替え、インターネットの温度を上げてきました。接続の速度によってボトルネックになるはずのWebは、はるかに高速になります。どうやらページはより速いディスクに集められますそれを表示する前に、それをより速くしてください。

最終的に、私はramdiskに飽き飽きします。限られた32ビットスペースを占有するか、巨大な写真などでフォトショップを運営していて、ramdiskをオフにします。十分に使用されていなかったため、最終的には完全に削除しました。

私のxp32bitではなく、Windows7用のWindows764ビットのものをチェックアウトしている間。これらのramdiskは、Windowsの最大32ビット割り当ての後にある使用できない4ギガを使用するように設定できることを読みました:-)

私はDataRamを使用しています。これは、DataRamをテストするための2つの簡単なヒントです。 Boot.iniをPAEモードで実行するように設定しました(そうでない場合、システムを超えてRAMを使用できません)。64ビットシステムのため、システムはすでにEXTENDEDで起動しています。 (これは、拡張メモリで実行するマザーボードのオプションです。)それがすべて完了した後、RAMディスクに8ギガのメモリの最後の4ギガを引っ掛けさせることができました。

詳細:OSをPAEモードにするには、すべてのドライバーとすべてが拡張/ Paeで実行できる必要があります。これを行ったことがない場合は、最初にシステムをPAEモードでテストする必要があります。最初は、RAMディスクドライバ自体がまだ通常のRAMスペースに設定されていたため、システムがクラッシュしました。 NOPAEモードに戻り、ドライバーをオフにしてから、PAEモードに戻って、PAEモードで構成しました。

これが私のBoot.iniの外観なので、失敗したときに2つのモード間を移動できます。

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="PAE XP Professional" /fastdetect /pae
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="XP Professional No Pae" /fastdetect /noexecute=alwaysoff /NOPAE

ちょうどあなたがいくつかのアイデアを持っているか、それを行うための正しい方法を探すことができるように、私のものがあなたにとって正しいと仮定することはありません。 OSに入るバックアップ方法があることを示しているだけです。

古い32ビットXPで8ギガのメモリをすべて使用したのは初めてだったので、それはかなりクールだと思いました。他の人もそうだと思います。特に、w764ビットのようなものがいくつかのことに非常に悪い場合。

Ramdiskは「無料」で、構成時にメモリを購入するために1つの追加を行い、他のramdiskがこれを実行できるようになったと確信しています。最初の4ギグは無料でしたが、私のニーズには十分でした。

Ramdiskは、古いramdiskであった100ではなく、通常のsataドライブよりも約70倍高速であるため、オーバーヘッドが少し多いようです。

1
Psycogeek

うーん..基本的に私はGavotteRamdriveでWindowsXPを実行しています..Windowsで3.2GBの空きメモリXP(Ramdriveで使用されるものはなく、基本的にWindows XPで最大)ページファイルが配置されている12GBのRAMドライブ(4GB)以前はAPU-5800Kを搭載し、ギガバイトのF2A55-Mメインボードを搭載していました。現在はdiffメインボードであり、同じセットアップを使用していますが、追加のビデオカードが搭載されています。/PAEが追加されていませんでした。合計システムメモリは16GBです。特に、シングルコアを使用する/使用できない古いソフトウェアで動作します。ハードドライブは常にボトルネックになっており、X3の​​ようなソフトウェアをインストールします。脅威などにより、ロード時間が大幅に改善されます(セクターからセクターへの移行、およびその他の長いロード)基本的に次のことが当てはまります:IDE <SATA <SSD <Ramdrive。 SSDよりも仮想メモリも使用されているため、これまでに使用されたものはすべてRAM速度でロードされます。オーバークロックしません(コンポーネント/プロセッサに悪いと寿命が短くなります)時間)私が使用するRAMは1866で、オンボードGPU(HD7660D)にも非常に便利です。グラフィックカードを使用すると、<4GBの負荷を0に減らしました。したがって、Windows XPでは3.2GB(最大)、超高速のロード時間どんなゲームでも..:Dまた、4GBを超える古いソフトウェアは使用できません..そうそう..それは夢のように機能します..CNC3、Xシリーズなどの非常に大きなビルドに30の負荷をかける代わりに、古いしかし、さらに大きなシューティングゲーム、フォールアウトなど。

  • ish happeh ..

これがお役に立てば幸いです。

注:メインボードを機能させるには、メインボードのBIOS設定を微調整する必要がありましたが、機能すると、BANG!..サウンドバリアが発生します。

うーん...これをフォーマットする箇条書きに時間をかけたくない..sowwies ..

Sowwies ...実際の答えを言うのを忘れました..はい、32ビットウィンドウを使用している場合は4Gb以上を使用することができます。 Gavotte Ramdrive..guud ..ところで。そのソフトウェアをインストールするときは、Ramdriveセットアップユーティリティで何も変更せずに、一度だけ実行してください。未使用のメモリを自動的に検索し、それをRamdriveに追加します。最初にRamdriveに設定するだけです。(とにかく、このように機能します。)幸運とRamdriveの速度。

AMD APU-A5800K

16GBの物理メモリ(最適なAPUパフォーマンスの場合は1866)(21xxのものも使用できますが、内部GPUのパフォーマンスをさらに高速化し、ロード時間をさらに高速化するために、これを試したことはありません。ラムドライブ)

ギガバイトF2A55-M

1024 MBの共有メモリを備えたオンボードグラフィックスHD7660D(ところで正常に動作します)(32 MBしかない場合は、BIOSオプションで設定する必要があります)

Windows XP-32(SP3)での2.7GBの空きメモリ(新しいメインボードと個別のグラフィックカードで3.2GB)(共有メモリを512MBに設定すると、ほとんどの場合、古いメインボードで使用可能なシステムRAMが増加することにも注意してください..)(個人的には、7660Dで1GBの共有メモリに固執したいのですが、カタツムリよりも優れていますか?)

2〜4GBのページファイルを備えた12GBのRAMドライブ(ガヴォット)

ソフトウェアを非常に高速に実行したい場合は、Ramdriveにインストールし、終了する前に、上記のインストールをハードドライブにコピーします。

私はRamdriveに2つの部分を自動的にロードするセットアップを持っています。パート1は、ブラウザーのような低負荷の部分(Windowsの起動後約2秒で利用可能)であり、2番目に大きな(ゲーム)の負荷は数秒から異なりますほぼ30秒まで..(インジケーター付き:D)ゲームの特定の部分で節約したい場合で、リロードごとに-30秒ほど待つのにうんざりしている場合は、このセットアップでは3秒ほどで完了します。はい..はるかに高速です..

また、もう1つ注意すべき点があります。WindowsXPはWindows XPソフトウェアを最適に実行します。.したがって、VM-ingや新しいシステムでのすべてのジャズにもかかわらず、はい、2017年にまだWindows XP-32を訴えているのは、新しいものにもWindows 7を使用できるため、私のゲームに最適です。

UGH。さらに詳しい情報..BIOSまたはOSが何らかの理由で4GBを超えるRAMを使用している場合、Gavotteは失敗する可能性があり、Ramdriveがインストールされると、再起動時にシステムが停止します。必ず(使い捨て)を試してください。それが起こったときにPCIカード、そしてオンボードGPUをオフにしてメモリ使用量を0に設定します。新しいメインボードでその問題が発生しましたが、アドオングラフィックカードをインストールした後、再び動作します。古いメインボードがまだありません。 ..(パワーユニットが故障して220を送ったときに揚げられました。D:)(はい、古いパワーユニットを使用するとシステムに危険が及ぶ可能性があります)(しかし、それは正しく回収されましたか?..本当にばかげています..)

幸運と非常に速い速度と読み込み時間での非常に楽しいゲーム..(Windows XP-Pro SP3、bawdと言っている人は、800近くのゲームを新しいOSで動作させてみてください..内部グラフィックスは、特に古いソフトウェアの場合、ひどいものではありませんが、正しいドライバをインストールするようにしてください。)(ほとんどの場合、14.4は機能しますが、そのドライバが新しすぎる場合もあります。)(はい、新しすぎる可能性があります。 、一部のゲームは最初に何かをチェックし、次にCPUまたはGPu、あるいはその両方を認識できないためです。)([マイコンピューター]の下のCPU仕様を指定する必要があります(右クリック)。)

0
ZMacZ

これらのプログラムはすべて、PAEをサポートするシステムと、4GBを超える物理メモリを再マップするマザーボードを必要とします。初期のWindows起動時に、これらのプログラムは4GBマークを超えるすべてのメモリを要求します。基本的に、メモリがPAEを完全にサポートするオペレーティングシステムで動作する場合、これらのプログラムはそれを見つけることができます。

BIOSがメモリを認識しない場合、4GBマークを超えてマッピングされていないため、動作しません。ハイメモリは、4GBを超える物理RAMがある場合、またはBIOSが4GBを超えて再マップする場合にのみ存在しますRAM)ハードウェアマッピングによってシャドウされます。どちらでもない場合これらのことが起こり、高いメモリはありません。

64ビットCPUをサポートしない消費者向けマザーボードの大部分は、4GBを超える物理RAMもサポートしていません。また、チップセットの制限により、ハードウェアマッピングによってシャドウされたメモリの再マッピングもサポートしていません。 。したがって、これが機能するケースはかなり限られています。これは主にマーケティングギミックであり、何かを無料で約束します。

0
David Schwartz