初心者過ぎる質問ですが、VRAMの仕組みって・・・?

解決済みの質問

初心者過ぎる質問ですが、VRAMの仕組みって・・・?

はじめまして。
どこのカテゴリで質問すべきか分からないので
C言語カテゴリで質問させていただきます。

VRAM(ビデオメモリ)って、どんな風に
使われているのでしょう?仕組みが分かりません。

<今、想像したVRAMのイメージ1>
CPUがメインメモリ(またはCDROM等)から画面の
データを読み取った後、表示するまでの間に
格納しておく領域がVRAM?
一時的に退避させておくバッファみたいなもの?

<今、想像したVRAMのイメージ2>
100×100ドットの画面があった場合、
1ドットにつき8ビットの情報量を持たせる。
すると、画面は256色表示可能となり、
表示に必要なVRAMの容量は100×100×8ビット=80000ビット。
つまり、10kバイトのVRAMが必要ということになる?

<今、想像したVRAMのイメージ3>
CPUがVRAMのデータを書き換えると、
画面の表示も変わる?
例えば、アドレス0x0001を書き換えたら、
画面の左端の1ドットだけ色が変わるとか…。

根本的に考え方が間違っているかもしれません。
まったくVRAMとか画面表示の仕組みを知らないので、
有知識者様、ご教授願いたいです。よろしくお願いいたします。

投稿日時 - 2009-11-23 02:07:27

QNo.5468711

暇なときに回答ください

質問者が選んだベストアンサー

画面表示の仕組みですが、下記凡例表記に従って簡単に書くと
# 凡例:
# データ入力元→(処理担当)⇒データ出力先

古典的な画面表示:
メモリ→(CPU)⇒VRAM→(RAMDAC)⇒モニタ

最近の画面表示:
(CPU)⇒描画命令→(GPU)⇒VRAM→(RAMDAC)⇒モニタ
           ↑
           メモリ

「古典的な画面表示」も、「最近の画面表示」もVRAMから先は同じです。なお、液晶モニタでDVI-D接続の場合、
「RAMDAC」は「DVIトランスミッタ」という部品に置き換わります。

CPUやGPUはそれぞれのクロック周波数の速度で動きますが、
RAMDACは画面のリフレッシュレート(例:60Hz)の速度で動きます。

###<今、想像したVRAMのイメージ1>について
バッファという表現は正しいですが、「退避している」というより、
「速いCPUと遅いRAMDACとの間に緩衝地帯(バッファ)を設けている」イメージです。

###<今、想像したVRAMのイメージ2>について
古典的な狭義のVRAM(フレームメモリ)は、その定義で正しいです。
なお、チラツキ防止のため、ダブルバッファリングをする場合、2倍の容量が必要になります。
また、最近の広義な意味のVRAMは、
・ビデオオーバーレイを実現するのに必要な追加メモリ、
・GPUの作業領域メモリ
等を含んでいて、大容量ですね。

###<今、想像したVRAMのイメージ3>について
VRAMのデータ書換えは、即時反映ではありません。
次にRAMDACが動くタイミングでモニタ上に反映されます。
とはいえ、リフレッシュレート:60Hzの場合、
1秒間に60回もRAMDACが動いているので、人間の視点では即時反映です。
逆に、CPUと比べると遅いので、
CPUのVRAMの書換え間隔が頻繁すぎる(例:1秒間に100回以上)と
RAMDACからモニタへの出力が追いつかなくなります。(例:40回分の内容は表示されない)

投稿日時 - 2009-11-23 04:13:24

お礼

詳細な回答ありがとうございます。

非常に分かりやすく、VRAMが何なのか
少しずつ分かってきました。
ちなみに、現在のモニタはDVI-D接続しております。

無知なために適当に記載したイメージについての
回答もありがとうございます。

今後も、気になって眠れないような疑問が発生したら
質問させて頂くと思いますので、見かけられましたら、
回答頂けると嬉しいです。

投稿日時 - 2009-11-23 15:44:41

ANo.1

1人が「このQ&Aが役に立った」と投票しています

あわせてチェックしたい
  • VRAMについて ...
  • VRAM容量と画面解像度について ...
  • 初心者です。VRAM増設等について ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら