はじめまして。
どこのカテゴリで質問すべきか分からないので
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とか画面表示の仕組みを知らないので、
有知識者様、ご教授願いたいです。よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
画面表示の仕組みですが、下記凡例表記に従って簡単に書くと
# 凡例:
# データ入力元→(処理担当)⇒データ出力先
古典的な画面表示:
メモリ→(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回分の内容は表示されない)
詳細な回答ありがとうございます。
非常に分かりやすく、VRAMが何なのか
少しずつ分かってきました。
ちなみに、現在のモニタはDVI-D接続しております。
無知なために適当に記載したイメージについての
回答もありがとうございます。
今後も、気になって眠れないような疑問が発生したら
質問させて頂くと思いますので、見かけられましたら、
回答頂けると嬉しいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
C言語で、メモリを解放しないで...
-
CImage::ReleaseDC()のエラーで...
-
EXCEL-VBAにてADOのレコードセ...
-
メモリが不足しています(VBA)
-
ファミコンって8ビットしかない...
-
「ヒープサイズの設定」て何?
-
オブジェクトの開放
-
C言語初心者です。debug assert...
-
C言語:関数のメモリ上でのサイ...
-
C,C++プログラムの強制終了時の...
-
プログラムが偶然動く
-
C言語における再帰呼び出しの...
-
Apacheでバーチャルホストの最...
-
メモリ不足
-
「memcpy」と「strcpy」について
-
メモリアロケーション異常の発...
-
仮想メモリの増やし方
-
Tomcatによるバッチ処理時のメ...
-
メモリのセグメント違反の解決...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
C言語で、メモリを解放しないで...
-
大容量のメモリ確保をスワップ...
-
エクセル キャッシュメモリー...
-
エクセルのメモリ使用状況/Appl...
-
「ヒープサイズの設定」て何?
-
ExcelのVBAでメモリ解放できない
-
メモリの解放の仕方
-
メモリのセグメント違反の解決...
-
メモリ不足
-
ファイルマッピング関数で失敗
-
「memcpy」と「strcpy」について
-
closeとメモリの開放について
-
EXCEL-VBAにてADOのレコードセ...
-
マクロのスピードがダウンする??
-
VB.netでUSBメモリの固有I...
-
エクセルVBA 大容量CSVファイル...
-
メモリの消費量について
-
【C言語】再帰が時間がかかる...
-
プログラム実行中に強制終了
おすすめ情報