Video Display Controller
Als Video Display Controller (VDC) bezeichnet man eine integrierte Schaltung, welche die unmittelbare Schnittstelle zwischen Datenverarbeitungsanlage (Heimcomputer, Spielkonsole etc.) und grafischer Ausgabe/Bildgeber, also z. B. Monitor oder Fernsehgerät, realisiert.
Aufgabe
Seine Aufgabe ist es, den Bildgeber anzusteuern.
Unterfunktionseinheiten
Ein Video Display Controller lässt sich in mehrere Funktionseinheiten unterteilen:
- Bildpuffer
- Beliebige Art von Direktzugriffsspeicher zum Schreiben und Lesen. Der Bildpuffer ist die Hauptschnittstelle zwischen dem Video Display Controller und dem Bildgeber, also der CPU oder GPU. Die Größe des Bildpuffers bestimmt die maximale Bildauflösung und Farbauflösung. Bei sehr frühen Grafikkarten hatte der verlötete Direktzugriffsspeicher lediglich den Zweck, als Bildschirmpuffer zu dienen. Man konnte also schon allein anhand der Größe dieses Speichers die maximale mögliche Bild- und Farbauflösung ausrechnen. Ein Rasterbild mit 320×240 Bildpunkten bei 8bit Farbauflösung benötigt 76.800 Bytes, 640×480 Bildpunkten und 24bit benötigen 921.600 Bytes, 1024×768 Bildpunkte bei 24bit benötigen 2.359.296 Bytes an Speicher. Wenn "double-buffering" oder "tripple-buffering" zum Einsatz kommt werden jeweils doppelt beziehungsweise dreifach so viel Speicher benötigt. Moderne Grafikprozessoren können weit mehr, große Speichermengen werden für Zwischenberechnungen oder schlicht für Texturen benötigt. Ein Teil dieses riesigen Grafikspeichers wird als Bildpuffer genutzt; es ist nicht vorteilhaft dafür einen extra Speicher anzubinden.
- Schon anhand der Farbauflösung von z. B. 8bit kann man erahnen, dass der Bildschirm ebenfalls eine Schnittstelle benötigt, nämlich die Schnittstelle zum Eingabegerät. 8bit Farbtiefe bedeutet 28 also 256 mögliche Farben pro Bildpunkt. Der Monitor hat aber überhaupt keine Bildpunkte, sondern jeder Bildpunkt setzt sich aus 3 Unterbildpunkten (Sub-Pixels) für die Farben Rot, Grün und Blau zusammen; d. h. etwas im oder vor dem Monitor muss aus den 8bit Farbinformation pro Bildpunkt Farbwerte für die Unterbildpunkte errechnen oder einer Tabelle entnehmen.
- Logik-Einheit
- Die Bilddaten, welche entweder von der CPU oder vom GCA kommen, werden von diesen in den Bildpuffer geschrieben. Die Logik-Einheit liest die Daten aus diesem Puffer wieder raus, und schickt sie an den PHY. Die Daten benötigen Meta-Informationen: Bildauflösung und Farbtiefe. Außerdem muss klar sein, in welchem Format (wie z. B. RGBA8888, ARGB8888 etc.) die einzelnen Pixel kodiert sind.
- Die Logik-Einheit kann den Bildgeber u. U. auch ansteuern, und z. B. die gewünschte Bildschirmauflösung, Farbtiefe und Bildwiederholrate einstellen. Eine Ansteuerung über diese Logik-Einheit ist bei sämtlich modernen Monitoren vorgesehen.
- Falls gleichzeitig auf mehreren Monitoren ein Bild ausgegeben werden kann und soll, so wird die gewünschte Konfiguration von der Logik-Einheit gewährleistet.
- Pre-PHY
- Je nachdem, gemäß welcher Spezifikation mit dem Bildgeber kommuniziert wird, müssen die Daten entsprechend aufbereitet werden, z. B. muss u. U. das vorliegende Farbformat, etwa RGBA8888, in ein anderes Farbformat, z. B. in YCBCR 4:4:4, umgewandelt werden. Übliche Schnittstellen sind VGA, DVI, HDMI oder DisplayPort.
- Der RAMDAC führt die Umwandlung eines digitalen in ein analoges Signal durch. Er ist nur notwendig, falls eine analoge elektronische Schnittstelle unterstützt wird. Die Frequenz des RAMDACs kann die maximal mögliche Bildauflösung und Bildwiederholungsrate begrenzen.
- PHY
- Funktionsblock, welcher die bei ihm ankommenden Daten in ein Signal, welches z. B. nach Low Voltage Differential Signaling oder Transition-Minimized Differential Signaling spezifiziert ist, erzeugt. Es ist dieses Signal, welches über ein Kabel zum Bildgeber geschickt wird.
- EDID-Leser
- Pollt Daten vom Monitor.
Geschichte
Alte Grafikkarten beinhalteten einen Chip, welcher nur einen Video Display Controller implementierte. Ein moderner Grafikprozessor (GPU) beinhaltet auch einen Display Controller, auch Display Engine genannt. Dieser belegt jedoch nur einen verschwindend geringen Anteil der Gesammtfläche der die.
Das VDC war der Hauptbestandteil der Videosignalgeneratorlogik, aber manchmal gibt es auch andere unterstützende Chips, wie RAM, um die Pixeldaten zu halten und ROM, um Schriftarten zu speichern. In reinen Textsystemen übernimmt der VDC die Aufgabe, aus den Zeichenwerten im Hauptspeicher und der Schriftart die Buchstaben zu erzeugen. Einige VDCs konnten bereits einige Aufgaben mittels Schieberegistern und Paletten selbständig erledigen. Der Grafikprozessor des Nintendo Entertainment System war beispielsweise für die Darstellung der Sprites auf dem Bildschirm verantwortlich. Wenn kein zusätzlicher RAMDAC vorhanden ist, erzeugt der VDC die Timingsignale des Videosignals, also die Taktsignale für den Kathodenstrahl des Bildschirms.