
はじめまして。
どこのカテゴリで質問すべきか分からないので
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で質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン studio diffusionを使うのに必要なPCメモリ 1 2022/11/23 22:40
- ノートパソコン 中古パソコンの買い方 7 2023/03/07 16:53
- ビデオカード・サウンドカード パソコンのビデオチップのIntel UHD Graphics 770のVRAMの容量について 4 2022/04/12 12:55
- その他(パソコン・周辺機器) DELL NI65-9NHB ノートパソコン Inspiron 15 7590 ブラック 【仕様】 3 2023/01/16 09:25
- デスクトップパソコン 液晶タブレット(液タブ)に必要なスペックがクリアしている。パソコンを教えてください。 3 2022/04/27 16:42
- WordPress(ワードプレス) WordpressでYouTubeの埋め込みができない。 1 2022/10/26 01:08
- その他(データベース) Q&Aフォームを作成したいのですが、どう設計してよいか分かりません、アドバイスお願い致します。 1 2023/07/27 19:04
- その他(ゲーム) Steam版ホグワーツレガシー強制終了(クラッシュ?) 1 2023/06/04 19:08
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- Excel(エクセル) 【至急 詳しい方教えて下さい】Excelの表を変換したい 6 2022/04/21 18:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
C言語初心者です。debug assert...
-
FLASH Lite1.1 背景の表示エラ...
-
グローバルメモリについて
-
C言語で、メモリを解放しないで...
-
C言語における再帰呼び出しの...
-
メモリがどんどんなくなっちゃ...
-
PC-98で拡張メモリを使え...
-
動的確保できるメモリ容量
-
初心者過ぎる質問ですが、VRAM...
-
Visul Basicについて
-
VBAで2進数を返すプログラムの...
-
配列がお手上げです。
-
C,C++プログラムの強制終了時の...
-
移動可能メモリ
-
C言語:関数のメモリ上でのサイ...
-
配列データ容量とメモリについて
-
エクセルVBA 大容量CSVファイル...
-
クイックソート
-
「ヒープサイズの設定」て何?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
C言語で、メモリを解放しないで...
-
メモリ不足
-
メモリが不足しています(VBA)
-
「ヒープサイズの設定」て何?
-
メモリのセグメント違反の解決...
-
バッチファイルでの実行EXEのメ...
-
VB.netでUSBメモリの固有I...
-
EXCEL-VBAにてADOのレコードセ...
-
エクセルのメモリ使用状況/Appl...
-
「memcpy」と「strcpy」について
-
エクセルVBA 大容量CSVファイル...
-
ファイルマッピング関数で失敗
-
大容量のメモリ確保をスワップ...
-
GetAdapterInfoによりマックア...
-
C言語における再帰呼び出しの...
-
C++のCopyFileでメモリが増える
-
メモリを解放しないとどうなる?
-
クリスタルレポートでメモリ不...
-
closeとメモリの開放について
おすすめ情報