GPU / CPUは標準ディスプレイ出力とどのように通信しますか?(HDMI / DVI / etc)[終了]


14

cpu / gpuが処理された後、どのように(それが行う機器にでも)ビデオデータを表示する方法に興味があります。

ビデオはCPU / GPUによって処理され、その後、シリアル信号を適切なディスプレイ出力に変換する高速シリアルによって集積回路に送信されると言われましたが、オンラインで検索しても確認できません。

私はシグナリングに興味があり、探しているものが何なのかわからないため、プロトコルなどを検索できません。CPU / GPUはビデオ出力と直接やり取りしますか(これらのプロトコルを簡単に見つけることができます)、または言うなら「中間者」がいますか?


ビデオRAMDACは、ti.com.cn / cn / lit / ds / symlink / tvp3703.pdfという別個のパーツとして購入できますが、グラフィックカード上で分離されるわけではありません。
pjc50 14年

回答:


18

モニターに表示される画像は、グラフィックスカード上のコンピューターのビデオRAMにフレームバッファーと呼ばれる構造で保存されます。フレームバッファ内のデータは通常24ビットRGBカラーであるため、ディスプレイ上の各ピクセルに赤用、緑用、青用の1バイトがあり、場合によっては余分なパディングバイトが追加されます。ビデオRAMのデータは、GPUまたはCPUによって生成できます。ビデオRAMは、ビデオカードの専用DMAコンポーネントによって継続的に読み取られ、モニターに送信されます。モニターへの信号出力は、色成分がデジタルアナログコンバーターを介してカードから送信されるアナログ信号(VGA)、またはDVI、HDMI、またはDisplayPortの場合はデジタル信号です。これを担当するハードウェアは、水平同期信号と垂直同期信号、およびすべての適切な遅延も生成するため、画像データは準備ができたときにのみモニターに送信されます。DVIおよびHDMIでは、ピクセルカラー情報のストリームがエンコードおよびシリアル化され、TMDS(遷移最小化差動信号)を介してモニターに送信されます。DisplayPortは8b / 10bエンコードを使用します。エンコーディングは複数の目的を果たします。まず、TMDSは信号の遷移を最小限に抑えてEMI放射を低減します。次に、TMDSと8b / 10bは両方ともDC平衡プロトコルであるため、DCブロッキングコンデンサを使用してグランドループの問題を排除できます。第三に、8b / 10bはDisplayPortが個別のクロックを配信しないため、レシーバーでクロックリカバリを可能にするのに十分な高い遷移密度を保証します。ピクセルカラー情報のストリームはエンコードされ、シリアル化され、TMDS(遷移最小化差動信号)を介してモニターに送信されます。DisplayPortは8b / 10bエンコードを使用します。エンコーディングは複数の目的を果たします。まず、TMDSは信号の遷移を最小限に抑えてEMI放射を低減します。次に、TMDSと8b / 10bは両方ともDC平衡プロトコルであるため、DCブロッキングコンデンサを使用してグランドループの問題を排除できます。第三に、8b / 10bはDisplayPortが個別のクロックを配信しないため、レシーバーでクロックリカバリを可能にするのに十分な高い遷移密度を保証します。ピクセルカラー情報のストリームはエンコードおよびシリアル化され、TMDS(遷移最小化差動信号)を介してモニターに送信されます。DisplayPortは8b / 10bエンコードを使用します。エンコーディングは複数の目的を果たします。まず、TMDSは信号の遷移を最小限に抑えてEMI放射を低減します。次に、TMDSと8b / 10bは両方ともDC平衡プロトコルであるため、DCブロッキングコンデンサを使用してグランドループの問題を排除できます。第三に、8b / 10bはDisplayPortが個別のクロックを配信しないため、レシーバーでクロックリカバリを可能にするのに十分な高い遷移密度を保証します。

また、HDMIおよびDisplayPortの場合、モニターへの送信のためにオーディオデータもグラフィックスカードに送信されます。このデータは、ビデオフレーム間のデータストリームのポーズに挿入されます。この場合、ビデオカードはオペレーティングシステムへのオーディオシンクとして表示され、オーディオデータはDMAを介してカードに転送され、ビデオデータに含まれます。

おそらく、ピクセルあたり4バイトの1920x1080ディスプレイの場合、画像の保存に必要なのは約8 MBだけですが、コンピューターのビデオRAMはおそらくそのサイズの何倍もあることに気づくでしょう。これは、ビデオRAMがフレームバッファを保存するためだけのものではないためです。ビデオRAMは、効率的な3Dレンダリングとビデオデコード用に設計された専用プロセッサであるGPUに直接接続されています。GPUは、ビデオRAMへの直接アクセスを使用して、レンダリングプロセスを促進します。実際、ビデオカードをCPUとメインメモリに接続するPCIバスはGPUとビデオRAM間の接続よりもかなり遅いため、メインメモリからビデオメモリにデータを取得することは少しボトルネックです。


7

さまざまな最新のディスプレイ出力は、基本的にシリアルビットストリームです。プロセッサにとってビットレートが高すぎます(または、それを維持できれば、処理時間が長すぎます)。メモリの一部は、画像のビットを格納するために確保されます。専用のハードウェアがメモリの内容を読み取り、それをストリーミングします。この部分はDMAコントローラーに似ており、実際には非常に単純です。これは、最新のGPUのごく一部であり、主に、より高レベルのGPUコマンドからメモリ内にそのイメージを作成することに関係しています。

ビデオ画像を含むメモリは、メインメモリ(安価)の一部、または「DMA」とCPUおよび/またはGPUが同時にアクセスできる専用メモリにすることができます。「ピクセル」の幅と高さ、色の深さ、メモリ内の開始位置など、さまざまなパラメータを使用して「DMA」を設定する必要があります。

現代のコンピューターでは、GPUはメインCPUの速度に匹敵する(そしてそれ自体の芝生でそれを上回る)(非常に特殊化された)プロセッサーです。テクスチャと光源を備えた3Dオブジェクトの束からpsuido-3D画像を生成することなどを行います。これはすべて、GPUによってビデオメモリ内で実行できます。CPUは、オブジェクト、テクスチャ、および光源を提供するだけです。

ビデオデータをメモリから読み取り、シフトアウトするのはかなり簡単なプロセスですが、非常に高速で、常に実行する必要があります。したがって、このタスクは専用ハードウェアに適しており、CPUには不向きです。知る限り、ビデオ信号の生成にCPUを使用した最後のコンピューターはZX80 / 81とSpectrumでした。これらの場合、CPUは(垂直?)リトレース時間中にのみ独自の作業を行うことができます。


1
これは素晴らしい情報です。それでは、DMAコントローラ(または同様のハードウェア)はビデオメモリに直接アクセスしますか?また、システムRAMを使用するグラフィックが統合されたシステムでは、システムRAMに直接アクセスしますか?私の質問のシンプルさで申し訳ありません。私は日曜大工なので、より低いレベルの知識でより高いレベルのものに飛び込む傾向があります。:)
クレイグラファティ

そして、フォローアップするために、コントローラーはどのようにしてRAMのどのアドレスからフレームを「盗む」のかを知るのですか?フレーム/ビットマップは本当に急速に置き換えられており、私が推測しているところを動き回っています。
クレイグラファティ14年

あなたの最後のコメントは正しいです:それはフレームバッファに保存され、アナログビデオの場合はRAMDACに渡されます。フレームバッファのアドレスは、固定するか、制御レジスタで指定できます。フレーム間またはフレーム中にフレームバッファを交換すること、または一部のシステム(Amiga)でフレームの途中でビデオモードを変更することを含むさまざまなトリックがあります。
pjc50 14年

プロセッサの速度が低下するのはなぜですか?コントローラーが使用できるようにするために、既にビデオを処理する必要はありませんか?ここで別の推測をして、コントローラーがRAMを何度も読み取り、CPU / GPUは何かが変更されたときに新しい表示情報でRAMを更新するだけなので、たとえばGPUが現在の画面をそのRAMとカーソルを移動すると、変更されたピクセルが更新されます。その間、コントローラは1秒に1回程度RAM 60を読み取ります(標準的なFRの種類です)。
クレイグラファティ14年

1
ビデオRAMは、表示画像の保存に使用されるだけでなく、GPUによって内部的に使用され、フレームバッファにレンダリングされるシーンデータを保存します。GPUは、オブジェクトの詳細な3Dメッシュとその表面のすべてのテクスチャデータにアクセスする必要があるため、多くのスペースを占有します。
alex.forencich 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.