dポイントプレゼントキャンペーン実施中!

最近のPCはビデオメモリをメインメモリから、解像度や処理内容(3D等)に応じて動的に確保するようになっているようです。
動作中に、より多くのビデオメモリが必要となった場合、かならずしも物理アドレスが連続したメモリを確保できないと思いますが、その場合どうしているのでしょうか?
思いつくのは、
・Windowsがメモリを物理アドレス上でメモリブロックを再配置して連続領域を空けてビデオチップに渡す
・ビデオチップにもMMUの仕組みがあって、物理アドレスが不連続のままでも論理的に連続領域と見なして処理できる
くらいです。どちらかが合っているのか、また別の方法なのか、どうでもいいようなことですが、気になったのでご存知の方お教えください。

A 回答 (1件)

お、質問側に回られるのは珍しいですね(笑)



結論から先に言えば、ビデオチップ(ないし、いわゆるチップセット)がMMU相当の仕組みを持っています。

たとえばインテルのi915チップセットを例に取ると、チップセット内蔵のビデオ機能が使用するメモリの位置は4KB単位で不連続な位置を指定できるようになっています。4KBというのはix86 CPUのメモリ管理のページサイズで、この一致はもちろん必然でしょう。

  Intel(R) Dynamic Video Memory Technology (DVMT) 3.0 White Paper
  http://developer.intel.com/design/chipsets/appln …



  2.3.2 Graphics Translation Table
  2.3.3 Intel Smart 2D Display Technology

あたりに若干説明があります。

他のベンダはインテルほど情報公開をしてくれないのでドキュメントを挙げて明らかにすることができませんが、Windowsに特定の物理メモリアドレス領域を空けさせるのは非常に難しい(カーネルレベルで問題が多い)ので、チップ側でMMUを使用していると考えるのが妥当です。
    • good
    • 0
この回答へのお礼

情報ありがとうございます。
やっぱりMMUですか。前者のほうは「Windowsがやってるんだったら、他のOSはどうすんだ」という突っ込みもありますね。

ビデオチップがMMUとは、「68030がMMUを内蔵」というニュースは遠い昔となりました。intelは80386からかな。

>お、質問側に回られるのは珍しいですね(笑)
約2年でちょうど20個目の質問です。回答が無く取り消したのも入れるとおよそ月一ペースで質問していることになります。回答数を調べると、1729でした。

お礼日時:2005/10/21 20:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!