
ビデオディスプレイコントローラ(VDC)は、ディスプレイエンジンまたはディスプレイインターフェースとも呼ばれ、ビデオ信号発生器の主要構成要素である集積回路です。ビデオ信号発生器は、コンピュータシステムやゲームシステムにおいてビデオ信号を生成する役割を担います。一部のVDCは音声信号も生成しますが、それが主な機能ではありません。VDCは1980年代の家庭用コンピュータや、ゲーム機、アーケードゲームなどで使用されていました。
VDCはビデオ信号発生器ロジックの主要コンポーネントであり、水平同期信号、垂直同期信号、ブランキングインターバル信号などのビデオ信号のタイミングを生成する役割を担います。完全なシステムを構築するには、ピクセルデータを保持するRAM、文字フォントを保持するROM、シフトレジスタなどの個別ロジックなど、他の補助チップが必要になる場合もあります。
VDCチップは、多くの場合、ホストコンピュータシステムの拡張機能として使用され、ホストに完全に統合されています。グラフィックデータを保持するメモリは、メインCPUと同じメモリマップ上に表示されます。これにより、CPUはメモリに新しいデータを書き込み、VDCはそれを読み取って表示することができます。場合によっては、VDCはRAMの内容を独立して操作できるコプロセッサとして機能します。初期のダイナミックRAMの性能が低かったため、一部のVDCは、CPUを中断したり、CPUから中断されたりすることなく読み取れる、完全に独立したDRAMプールを使用していました。後のシステムでは、デュアルポートのビデオRAMを使用して性能上の問題を回避し、CPUが一方のポートからメモリを読み書きしている間に、VDCがもう一方のポートから読み取れるようにしました。
ディスプレイコントローラ、グラフィックスアクセラレータ、ブリッター、グラフィックス処理ユニット(GPU)の違いは、あるクラスと呼ばれながらも別のクラスの機能を備えている例があるため、しばしば曖昧になります。特定のビデオチップがビデオディスプレイコントローラなのか、ビデオディスプレイプロセッサなのかは、必ずしも明確ではありません。例えば、TMS9918は、情報源によってどちらの名称でも呼ばれる可能性があります。
一般的に、標準的なVDCは、線を描画したり領域を塗りつぶしたりするなどのグラフィック操作を単独で実行する内部機能を持たず、ホストCPUがこれらの演算を実行して結果をメモリに格納し、VDCが読み取るという仕組みに依存しています。ブリッターはこれらの機能の一部を追加しており、これらのルーチンを実行するためにIC上に追加のレジスタと演算ハードウェアが必要です。 1980年代にVDCと呼ばれていたチップの中には、これらの機能の一部を備えているものもあり、技術的にはブリッターに近いと言えます。用語の選択は、主にメーカーがどちらかの用語を好んだことに起因しています。
VDCとブリッターは1980年代から1990年代にかけて人気を博しました。これらのVDCには、スプライトを作成するための専用ハードウェアが搭載されていることがよくありました。初期の例としては、AtariのANTICやTexas InstrumentsのTMS9918などが挙げられます。後の設計では、ビットブリッター機能を実装することでスプライトを汎用化しました。これには、 Sega SaturnのVDP2 32ビット背景およびスクロールプレーンビデオディスプレイプロセッサや、後世代のAmigaコンピュータのグラフィック性能向上に使用されたLisa (AGA)チップなどが含まれます。
グラフィックス処理ユニット(GPU)は、この進化をさらに一歩進めたもので、より強力な演算ハードウェア(通常は複数の浮動小数点演算ユニット)を備えているだけでなく、カスタムルーチンをGPUに送信してローカルで実行する機能も備えています。つまり、GPUには「線を描画する」や「カメラを回転させる」といった組み込みルーチンだけでなく、「飛行機を描画する」といったプログラム全体を送信して、たった1行のコードで実行できるのです。これにより、ホストプログラムはGPUとホスト間でやり取りする情報量を大幅に削減でき、パフォーマンスの大幅な向上を実現できます。
GPUは1990年代に普及し、S3 ViRGE、Matrox Mystique、Voodoo Graphicsなどが登場しましたが、 NEC μPD7220のような初期の例はすでに存在していました。現代のシステムはすべてGPUのようなディスプレイシステムを使用しており、CPUに内蔵されている場合もあれば、大型マザーボード上の独立したICとして搭載されている場合、あるいは別個のカードとして搭載されている場合もあります。
ビデオディスプレイコントローラは、いくつかの異なるタイプに分類でき、ここでは最も単純なものから最も複雑なものまで順に列挙する。
ビデオディスプレイコントローラの例としては、以下のようなものがあります。
ビデオシフター
CRTコントローラー
ビデオインターフェースコントローラー
ビデオコプロセッサ
初期の家庭用コンピュータの多くはVDPチップを使用せず、多数の個別ロジックチップからビデオディスプレイコントローラ全体を構築していたことに注意してください(例として、Apple II、PET、TRS-80などがあります)。これらの方法は非常に柔軟性があるため、ビデオディスプレイジェネレータは非常に高性能なもの(設計の質によっては極めて原始的なもの)になり得ましたが、同時に多くの部品を必要としました。
初期のシステムの多くは、ビデオシステムを構築するために、初期のプログラマブルロジックアレイ(PLA)の何らかの形式を使用していました。例としては、 ZX SpectrumやZX81システム、Elektronika BK-0010などがありますが、他にも多数ありました。初期の実装は非常に原始的なものが多かったのですが、後の実装では、SAM Coupéに搭載されているようなかなり高度なビデオシステムが実現することもありました。ZX81のような低レベルのシステムでは、ハードウェアは電気的な機能のみを実行し、ビデオストリームのタイミングとレベルはマイクロプロセッサによって提供されていました。ビデオデータレートはプロセッサの速度に比べて高かったため、コンピュータは表示フレーム間のリトレース期間中にのみ、実際の非表示演算を実行できました。このため、パフォーマンスは利用可能なCPUサイクル全体の最大25%に制限されていました。
これらのシステムは、比較的少ない部品で非常に高性能なシステムを構築できるという利点があったが、初期のプログラマブルロジックのトランジスタ数が少なかったため、初期のPLAベースのシステムの性能は、同時期に利用可能だったビデオインターフェースコントローラやビデオコプロセッサを使用したシステムに比べて劣ることが多かった。CPLDやFPGAを使用した後期のPLAソリューションは、市販の部品を使用したシステムを凌駕する、はるかに高度なビデオシステムを実現できるようになった。
よく用いられるハイブリッドソリューションは、ビデオインターフェースコントローラ(多くの場合、Motorola 6845)をベースとし、プログラマブルロジックやASICでその機能を拡張するものでした。このようなハイブリッドソリューションの一例として、6845とASICを組み合わせた初代VGAカードが挙げられます。そのため、現在でもすべてのVGAベースのビデオシステムは、6845によって提供されていたハードウェアレジスタをそのまま使用しています。

半導体デバイス製造技術の進歩に伴い、集積回路として実装される機能が増え、多くの場合、半導体知的財産コア(SIPコア)としてライセンス供与が可能となっています。ディスプレイコントローラのシステムインパッケージ(SiP)ブロックは、 GPU、APU、SoCのダイ上に搭載されています。
これらは、VGA、DVI、HDMI、DisplayPort、VHDCI、DMS-59など、さまざまなインターフェースをサポートしています。PHYには、 LVDS、Embedded DisplayPort、TMDS、Flat Panel Display Link、OpenLDI、CMLが含まれます。最新のコンピュータモニターには、LCDコントローラまたはOLEDコントローラが内蔵されている場合があります。[ 4 ]
例えば、GPUによって生成されたVGA信号は、VGAケーブルを介してモニターの内蔵コントローラーに伝送されます。ケーブルの両端はVGAコネクタで接続されています。ノートパソコンやその他のモバイルコンピュータは、ディスプレイコントローラーとディスプレイの間で異なるインターフェースを使用します。ディスプレイコントローラーは通常、複数のコンピュータディスプレイ規格をサポートしています。
KMSドライバーはディスプレイコントローラー用のデバイスドライバーの一例であり、 AMD Eyefinityはマルチモニターをサポートする特殊なディスプレイコントローラーです。
RandR(リサイズと回転)は、個々の出力ごとに画面解像度とリフレッシュレートを個別に設定し、同時にウィンドウシステムの設定をそれに応じて構成する方法です。
この二分法の例として、ARM Holdingsが挙げられます。同社は、3D レンダリング アクセラレーション用とディスプレイ コントローラ用の SIP コアを別々に提供しています。前者は Mali-200 や Mali-T880 などのマーケティング名で販売され、後者は Mali-DP500、Mali-DP550、Mali-DP650 として提供されています。[ 5 ]
1982年、NECはNEC μPD7220を発売した。これは1980年代のパーソナルコンピュータで最も広く使用されたビデオディスプレイコントローラの1つである。NEC PC-9801、APC III、IBM PC互換機、DEC Rainbow、Tulip System-1、およびEpson QX-10で使用された。[ 6 ] Intelはこの設計のライセンスを取得し、82720グラフィックスディスプレイコントローラと呼んだ。[ 7 ]
以前は、グラフィックカードはグラフィックアダプタとも呼ばれており、これらのISA / EISAカードに使用されていたチップはディスプレイコントローラのみで構成されていました。これは、コンピュータをディスプレイに接続するために必要な唯一の機能だったためです。後のカードには、CPUと並行して2Dレンダリングに関連する計算を実行するICが搭載され、これらのカードはグラフィックアクセラレータカードと呼ばれました。同様に、3Dレンダリング用のICも後に登場しました。このようなカードはVLB、PCI、AGPインターフェースを備えていましたが、現代のカードはISAバスよりもはるかに大きな帯域幅を必要とするため、通常はPCI Expressバスを使用しています。