スクリーンドライバーはどのように多くのデータを処理しますか?


61

私はちょうどいくつかの簡単な計算をしました:

私のMacBookに私はの解像度持って2,560を掛けた24ビット我々が得る色の11.05メガバイトを単一画像またはのために663メガバイトで毎秒60のFPSを

ある程度の圧縮があると思いますが、たとえば、3本の指でタッチパッド上を移動すると、画面上で次に何が起こり、ほとんどすべてのピクセルが変化します。他のほとんどすべてのインタラクションと同じです。

計算が間違っているかどうか、またこのデータがグラフィックカードから画面にどのように転送されるかを説明してください。グラフィックカードと画面の間のバスの幅はどれくらいですか?ディスプレイがピクセルをどのように保存するかを簡単に説明してください。レジスタをシフトしますか?キャッシュ?


7
「ディスプレイがピクセルをどのように保存するかを一言で説明できますか?」ディスプレイは実際にはピクセルデータを保存しません。それはすべてグラフィックスカードのRAM(または統合グラフィックスのシステムRAM)によって処理されます。RAMは簡単に数GB / sの帯域幅を持ちます。フレームはプロトコルに従ってディスプレイに送信されるため、表示に必要なデータを利用できます。
ks0ze

3
なぜ圧縮があると思いますか?データが圧縮可能でない場合、どうなると思いますか?ディスプレイが遅れると思いますか?
Mehrdad

3
@アレスルーム:ああ、なるほど。損失のある圧縮は1つの方法です。:)私はあなたがロスレスを考えていると思った!
Mehrdad

2
@ ks0zeいくつかの新しいパネルには、最後に送信された画面が保存されます。そこにキャッシュすると、GPUが静的イメージを1秒間に60回ポンピングするよりも消費電力が少なくなります。 anandtech.com/show/7208/understanding-panel-self-refresh
ダン・ニーリー

2
最新のラップトップディスプレイはまだLVDSを使用していますか?約半年前、GPU企業は、組み込みディスプレイポートを優先して、VGA(現在の世代のGPUのネイティブ出力から廃止)と同時に段階的に廃止することを計画していました。
ダン・ニーリー

回答:


70

あなたの計算は本質的に正しいです。1440p60Hz信号の場合、ブランキング時間(画像出力の非表示ピクセル境界)も考慮に入れると、データレートは5.8Gbpsになります。

HDMI / DVIでは、10 / 8bエンコードが使用されます。つまり、事実上、ピクセルあたり24ビットのカラーデータがありますが、実際にはデータがエンコードされ、プロトコル制御ワードが追加されると30ビットが送信されます。圧縮はまったく行われず、生データが送信されるため、7.25Gbpsのデータ帯域幅が必要です

もう一度HDMI / DVIを見てください。データ転送に「TDMS」シグナリング標準を使用します。HDMIのV1.2標準義務の最大4.9Gbpsシングルリンク(3つのシリアルデータライン+ 1本のクロック線)、またはデュアルリンクDVIの場合の最大9.8Gbps(6本のシリアルデータラインは、私が考えます)。したがって、デュアルリンクDVIを介して1440p60を実行するのに十分な帯域幅がありますが、HDMI V1.2を介することはできません。

HDMI V1.3規格(ほとんどのデバイスは実際には1.3と同じ帯域幅であるV1.4aにスキップしました)では、帯域幅は1440p60をサポートする約10Gbpsに倍増し、30Hz(2160p30)のUHDにも十分な帯域幅です。

別の例としてのDisplayPortには4つのシリアルデータストリームがあり、それぞれがストリームごとに2.16Gbpsの(エンコードを考慮して)対応しているため、V1.1リンクを使用すると、4つのストリームすべてで1440p60を簡単に実行できます。また、新しい標準V1.2をリリースしました。これは、倍増して4.32Gbps /ストリームになり、UHD @ 60Hzを可能にします。6.4Gbps / streamにさらにプッシュした新しいバージョンがまだあります


最初は、これらの数字は巨大に聞こえますが、実際には、USB 3.0を考慮するとそれほど多くありません。それは、たった1本のケーブル(実際には2つ、TX用に1つ、RX用に1つですが、私は脱線します)で5Gbpsのデータレートでリリースされました。現在、グラフィックカードで内部的に使用されているPCIeは、単一の差動ペアを介して最大8Gbpsで動作するため、外部データインターフェイスが追いついていることはそれほど驚くことではありません。


しかし、疑問は残ります。それはどのように行われますか?VGAについて考えると、それはアナログ形式で送信されるR、G、およびBデータの単一のワイヤで構成されています。私たちが知っているアナログはノイズの影響を非常に受けやすく、DAC / ADCのスループットも制限されているため、プッシュできるものが大幅に制限されています(幸運な場合、VGAで1440p60Hz を実行できるとは言えません)。

しかし、現代の標準では、ノイズにはるかに強いデジタル標準を使用します(その間のすべての値ではなく、高低を区別する必要があります)。また、アナログとデジタル間の変換の必要性を取り除きます。

さらに、単一のワイヤをあるしきい値と比較するのではなく、2つのワイヤ間で値を比較しているため(+ veの差= 1、-veの差= 0)、シングルエンドで差動標準を使用することは非常に役立ちます。これは、減衰が両方のワイヤに等しく影響し、中間点の電圧まで減衰するため、減衰の問題が少ないことを意味します。「アイ」(電圧差)は小さくなりますが、+ veまたは-veわずか100mV以下の場合。信号が減衰すると、シングルエンド信号はしきい値を下回り、まだ1V以上の振幅であっても見分けがつかなくなる可能性があります。

パラレルリンクを介してシリアルリンクを使用することにより、スキューが問題でなくなるため、データレートを高速化することもできます。たとえば32ビット幅のパラレルバスでは、信号の位相がずれないように(スキュー)32本のケーブルの長さと伝搬特性を完全に一致させる必要があります。シリアルリンクにはケーブルが1本しかないため、スキューは発生しません。


TL; DRデータは、圧縮せずに計算したフルビットレート(数Gbps)で送信されます。差動ペアを介したシリアル化されたデジタルリンクの最新の信号技術により、これが可能になります。


また、一部のHDMIディスプレイでは、2つのHDMI 1.2vリンクを使用して画像を取得し、画面を2つに効果的に分割したと考えられます。これにより、合計帯域幅は9.8 Gbpsになります。
イスマエルミゲル

5
@Aresloom 5GHzは、非常に多くのトランジスタが同時に切り替わり、大量の熱を発生するため、ほとんどすべてのCPUが溶け始めるポイントです。それは、5GHzがすべての最高のクロックであることを意味するものではなく、熱に由来します(そして、使用する材料-シリコンが常に最適とは限りません)。私が考えることができる最良の例は、4つのフロントエンドのそれぞれに80GHzでカチカチ音を立てるリン化インジウムサンプラーがあるKeysight Infinnium DSAX96204Qです!しかし、そのサンプラーにはトランジスタが数十個しかなく、数ワット消費します(最新のCPUには数十億個あります
サム

4
@Aresloom 340MHzはクロックレートであり、データレートはシリアル化されて(たとえばTDMSで)各クロックサイクルで10ビットがケーブルで送信されるため、340MHzクロックは3.4Gbpsになります。これらのシリアルデータレートで動作するのは、ビデオICの周辺にあるケーブルと(デ)シリアル化(SERDES)ハードウェアのみです。SERDESハードウェアの後、内部には、より低いクロックレートで再びダウン状態に戻るパラレルバスがあります。SERDESブロックは非常に高速に実行できます-PCIeはレーンあたり8Gbpsであるため、SERDESブロックは4GHzで実行されます(ビットに両方のクロックエッジを使用-DDR)。
トムカーペンター

1
8b / 10b 、高速信号の状態よりも遷移を検出しやすいため、エラー拒否を改善します。このエンコードは、連続した1または0の連続が長すぎないことを保証します。
pjc50

1
@curiousdannii面白いサイクルですね。最初に、シリアル(例えばUART)から始めましたが、これはあまりにも遅かった(最大115kbpsとしましょう)。その後、IDEのようなパラレルバスに行きましたが、これは約66MHz @ 16ビットで最高でしたので、1Gbps程度です。それから、シリアルバスに戻りました。これは、差動バスで非常に迅速に処理できることが判明したためです。しかし、現在のシリアルは十分に高速ではないため、一種のパ​​ラレルシリアルを使用します。個々のシリアルバスの複数のレーンは本質的に完全に個別に処理され、レーン間のスキューはFIFOで修正されます。
トムカーペンター

19

現代のコンピューターは驚くほど高速です。人々は、1秒あたり何十億もの算術演算を必要とすることに気付かずに、フルHD 30fpsビデオを喜んでロードします。ゲーマーはこれを少し意識する傾向があります。GTX 1060は、4.4 TFLOPS(1秒間に1 兆の浮動小数点演算)を提供します。

計算が間違っているかどうか、またこのデータがグラフィックカードから画面にどのように転送されるかを説明してください。

グラフィックカードと画面の間のバスの幅はどれくらいですか?

別の答えは、HDMI、DisplayLinkなどのマルチギガビットの性質に対処しています。

ディスプレイがピクセルをどのように保存するかを簡単に説明してください。レジスタをシフトしますか?キャッシュ?

ディスプレイ自体には、理論上、画像データは保存されません。

(一部のディスプレイ、特にテレビは、画像処理を適用するために1つまたは2つのフレームを保存します。これにより待ち時間が長くなり、ゲーマーに人気がありません。)

コンピューターのグラフィックスサブシステムは、ピクセルを通常のDRAMに保存します。これは通常、専用のサブシステムとを切った機能の一部をプロセッサからフレームごとに全体を再描画しますが、手にしませんコンポジ。コンポジターを使用すると、たとえばデスクトップ上の各ウィンドウを個別のピクセルセットとして保存し、専用のハードウェアで移動、スクロール、ズームすることができます。これは、モバイルデバイスでのスクロールで非常に明白になります。事前に計算された「オフスクリーン」ピクセルがなくなると、ソフトウェアは停止し、コンポジターのバッファーにさらにレンダリングする必要があります。

ゲームフレームごとに再描画され、シーンの構築方法に関する多くの文献があります。これは、グラフィックカードのフレームバッファーに組み込まれ、次のフレームが別のバッファーに描画されるときに送信されます。

ビデオのデコードは通常、専用のハードウェア、特にH.264にも行われます。


11

ディスプレイカードとLCDパネル間のリンクは、通常「レーン」と呼ばれるTMDSシグナリングを使用して、いくつかの高速差動ペアで伝送されます。通常、4つのレーンが使用されるため、バスは4ビット幅であると言えます。詳細については、stackhexchangeの回答があります。

通常、各LCDパネルモデルには複数のインターフェイスが組み込まれているため、破損したパネルを交換しようとするときは注意してサフィックスを確認する必要があります。最新のデジタルリンク(HDMI 1.4)には、10.2 Gbps、つまりレーンあたりわずか2.5 Gbpsがあります。計算(663 MBps)では、レーンあたり合計1.2 Gbps(4レーンと仮定)ですが、それほどではありません(たとえば、SATA3には6Gbpsがあります)。

LCDパネルの追加。アクティブマトリックスLCDは、実際に「ツイストネマティックセル」(フィルムの偏光を制御するセル)に関連付けられたコンデンサにフレーム画像(ピクセルデータ)を保存しようとします。問題は、アナログストレージキャップのサイズが、ストレージ時間とピクセルスイッチの速度のトレードオフでなければならないことです。そのため、サイズを大きくすることはできず、保存されている可能性が急速に失われるため、定期的な更新が必要です。各ピクセルセルは、トランジスタ(「アクティブ」要素)を介してデータ線とアドレス線に接続されています。このTomshardwareの記事を参照してください。LCDドライバーコントローラーは、データとアドレスの行を行ごとに多重化し、表示された画像を維持します。画像自体は、グラフィックスコントローラー内のフレームバッファー(RAM)に保存されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.