09/02/03 06:50:31 aRjQtJL7
・・・続き・・・
私の怪しい記憶ですと、
・Pentium-4以降のCPUにはアドレスバスが36ビットあり、64GBまでの物理的なアドレス空間がある (これがそもそも"PAE"と呼ばれてるものじゃなかったでしたっけ?)
・MicrosoftはWin2000でこの機構に対応(AWE)。 プロセスはAWEを介す事で、
各プロセスごとの3Gバイトの仮想アドレス空間内の空き位置にメモリーウィンドウを
開き、そこに物理メモリをマッピングする事で、理論上、64GBまでのメモリーに
(リニアではないが)アクセスできるっ・・・て事になっていたと思うのですが・・・
で、さっき、AWE (VirtualAlloc()、AllocateUserPhysicalPages()、
MapUserPhysicalPages()・・・) を使ったプログラム書いてテストしてみたんですが、
AWEは成功するものの、やはり物理メモリそのものが3GBしか無い事になってるんですよ
ね。 これじゃAWEなんて意味無いじゃん!
OS側がAWEをちょっと工夫してくれれば、64GBまでの搭載RAMがフルに使える様になり、
Gavotteみたいにトリッキーな事しなくても普通にAWEでRAM DISKが実現できると思うの
ですが、なんでMicrosoftはそうしてくれないのですか?
(何かできない理由があるのだとおもうけど・・・)
知ってる人、教えて下さい。