Blockdiagramm des NEC μPD7220 (veröffentlicht 1981) Grafikdisplay-Controllers

Ein Video-Display-Controller ( VDC ), auch Display-Engine oder Display-Interface genannt , ist ein integrierter Schaltkreis und die Hauptkomponente eines Videosignalgenerators . Dieser ist für die Erzeugung eines Videosignals in einem Computer- oder Spielsystem zuständig. Einige VDCs erzeugen auch ein Audiosignal , dies ist jedoch nicht ihre Hauptfunktion. VDCs wurden in Heimcomputern der 1980er-Jahre sowie in Spielkonsolen und Arcade-Spielen eingesetzt .

Der VDC (Video-Signalgenerator) ist die Hauptkomponente der Videosignalgeneratorlogik und für die Erzeugung des Timings von Videosignalen wie den horizontalen und vertikalen Synchronisationssignalen sowie dem Austastintervallsignal verantwortlich . Manchmal waren weitere unterstützende Chips erforderlich, um ein vollständiges System aufzubauen, beispielsweise RAM zur Speicherung von Pixeldaten , ROM zur Speicherung von Zeichensätzen oder diskrete Logikbausteine ​​wie Schieberegister .

Der VDC-Chip dient meist als Erweiterung eines Host-Computersystems und ist vollständig in dieses integriert. Der Speicher für die Grafikdaten befindet sich im selben Speicherbereich wie die Haupt-CPU. Dadurch kann die CPU neue Daten in den Speicher schreiben, die der VDC anschließend liest und anzeigt. In manchen Fällen fungiert der VDC als Koprozessor , der den RAM-Inhalt unabhängig bearbeiten kann. Aufgrund der geringen Leistung früher dynamischer RAMs verwendeten einige VDCs einen vollständig separaten DRAM-Pool, auf den sie zugreifen konnten, ohne die CPU zu unterbrechen oder von ihr unterbrochen zu werden. Spätere Systeme nutzten Dual-Port-Video-RAM , um diese Leistungsprobleme zu vermeiden. Dadurch konnte die CPU von einem Port auf den Speicher zugreifen, während der VDC gleichzeitig vom anderen Port darauf zugriff.

VDC vs. GPU

Die Unterschiede zwischen einem Display-Controller, einem Grafikbeschleuniger, einem Blitter und einer Grafikprozessoreinheit (GPU) werden oft durch Beispiele verwischt, die zwar als eine Klasse bezeichnet werden, aber einige Merkmale der anderen aufweisen. Es ist nicht immer eindeutig, wann ein bestimmter Videochip als Display-Controller und wann als Grafikprozessor fungiert. Beispielsweise kann der TMS9918 je nach Quelle unterschiedlich bezeichnet werden.

Ein herkömmlicher VDC (Variable Graphics Controller) verfügt in der Regel nicht über interne Funktionen zur Durchführung von Grafikoperationen, wie beispielsweise das Zeichnen von Linien oder das Füllen von Flächen. Er ist darauf angewiesen, dass die Host-CPU diese Operationen durchführt, indem sie die entsprechenden Berechnungen vornimmt und die Ergebnisse im Speicher ablegt, damit der VDC sie auslesen kann. Blitter erweitern den VDC um einige dieser Funktionen, was zusätzliche Register und mathematische Hardware auf dem IC erfordert, um diese Routinen auszuführen. Einige Chips, die in den 1980er Jahren als VDCs bezeichnet wurden , enthielten einige dieser Funktionen, wodurch sie technisch näher an Blitter heranrücken. Die Wahl der Bezeichnung beruhte größtenteils darauf, dass der Hersteller den einen Begriff dem anderen vorzog.

VDCs und Blitter waren in den 1980er- und 1990er-Jahren weit verbreitet. Diese VDCs verfügten oft über spezielle Hardware zur Erstellung von Sprites . Frühe Beispiele hierfür sind Ataris ANTIC und der TMS9918 von Texas Instruments . Spätere Designs verallgemeinerten Sprites durch die Implementierung von Bit-Blitter -Funktionen, darunter der VDP2 32-Bit-Videoprozessor für Hintergrund und Scrollplane des Sega Saturn und der Lisa- Chip (AGA), der für die verbesserte Grafik der späteren Amiga- Computergenerationen verwendet wurde.

Grafikprozessoren (GPUs) treiben diese Entwicklung weiter voran. Sie verfügen nicht nur über leistungsfähigere Rechenhardware, typischerweise mehrere Gleitkommaeinheiten , sondern ermöglichen auch das Senden benutzerdefinierter Routinen zur lokalen Ausführung. Das bedeutet, dass eine GPU nicht nur integrierte Routinen für Funktionen wie „Linie zeichnen“ oder „Kamera drehen“ besitzt, sondern auch ganze Programme wie „Flugzeug zeichnen“ empfangen kann, die dann mit nur einer Zeile Code ausgeführt werden können. Dadurch kann das Host-Programm die Datenmenge, die zwischen GPU und Host übertragen werden muss, drastisch reduzieren und so die Leistung erheblich steigern.

GPUs erfreuten sich in den 1990er-Jahren großer Beliebtheit, darunter die S3 ViRGE , die Matrox Mystique und die Voodoo Graphics ; allerdings gab es bereits frühere Beispiele wie die NEC μPD7220 . Moderne Systeme verwenden alle GPU-ähnliche Anzeigesysteme, die entweder in die CPU integriert, als separater IC auf einem größeren Motherboard oder auf einer separaten Karte untergebracht sind.

Typen

Videodisplay-Controller lassen sich in verschiedene Typen unterteilen, die hier von den einfachsten zu den komplexesten aufgelistet sind;

  • Video-Shifter , auch „Video-Schieberegister-basierte Systeme“ genannt (es gibt keine allgemein anerkannte Bezeichnung für diese Gerätetypen), sind die einfachsten Videocontroller. Sie sind direkt oder indirekt für die Video-Timing-Signale verantwortlich, greifen aber normalerweise nicht direkt auf den Video-RAM zu. Sie empfangen die Videodaten byteweise von der Haupt-CPU und wandeln sie in einen seriellen Bitstrom um – daher der technische Name „Video-Shifter“. Dieser serielle Datenstrom wird dann zusammen mit den Synchronisationssignalen verwendet, um ein Videosignal auszugeben. Die Haupt-CPU übernimmt den Großteil der Arbeit. Normalerweise unterstützen diese Chips nur einen Rastergrafikmodus mit sehr niedriger Auflösung .
  • Ein CRTC ( Cathode-Ray Tube Controller) generiert die Video-Timings und liest Videodaten aus dem angeschlossenen RAM, um sie entweder über einen externen Zeichengenerator-ROM (für Textmodi ) oder direkt an das Videoausgabe-Schieberegister (für hochauflösende Grafikmodi) auszugeben. [ 1 ] Da die tatsächlichen Fähigkeiten des Videogenerators maßgeblich von der externen Logik abhängen, kann ein auf einem CRTC-Chip basierender Videogenerator ein breites Spektrum an Funktionen bieten – von einfachen Systemen mit reinem Textmodus bis hin zu hochauflösenden Systemen mit Unterstützung für ein breites Farbspektrum. Sprites werden von diesen Systemen jedoch üblicherweise nicht unterstützt.
  • Video-Interface-Controller sind deutlich komplexer als CRT-Controller, und die für einen CRTC benötigte externe Schaltung ist im Video-Controller-Chip integriert. Sprites werden häufig unterstützt, ebenso wie (RAM-basierte) Zeichengeneratoren und ein Video-RAM, der Farbattributen und Palettenregistern ( Farbtabellen ) für den hochauflösenden Modus oder den Textmodus dient .
  • Video-Coprozessoren verfügen über eine eigene interne CPU, die für das Lesen und Schreiben ihres eigenen Video-RAMs (der gegebenenfalls mit der CPU geteilt wird) und die Umwandlung seines Inhalts in ein Videosignal zuständig ist. Die Haupt-CPU kann dem Coprozessor Befehle erteilen, beispielsweise zum Ändern der Videomodi oder zur Manipulation des Video-RAM-Inhalts. Der Video-Coprozessor steuert außerdem den (meist RAM-basierten) Zeichengenerator, den Farbattribut-RAM, Palettenregister und die Sprite-Logik (sofern vorhanden).

Liste von Beispiel-VDCs

Beispiele für Videodisplay-Controller sind:

Video-Shifter

  • Der RCA CDP1861 war ein sehr einfacher Chip, der in CMOS- Technologie (was Mitte der 1970er Jahre ungewöhnlich war) als Ergänzung zum RCA 1802- Mikroprozessor gefertigt wurde und hauptsächlich im COSMAC VIP zum Einsatz kam . Er unterstützte lediglich einen monochromen Grafikmodus mit sehr niedriger Auflösung.
  • Der Television Interface Adapter (TIA) ist der spezielle Videochip, der das Herzstück der Atari 2600- Spielkonsole bildet. Es handelt sich um einen primitiven Chip, der sich auf den 6502-Mikroprozessor stützte, der den größten Teil der Arbeit erledigte und auch zur Audioerzeugung verwendet wurde.

CRT-Controller

  • Der Intel 8275 CRT-Controller wurde im Convergent Technologies AWS / Burroughs B20 sowie in einigen S-100-Bussystemen verwendet .
  • Der Motorola 6845 (MC6845) ist ein Videoadressgenerator, der ursprünglich von Motorola für den Amstrad CPC und den BBC Micro entwickelt wurde . Er kam auch in fast allen frühen Videoadaptern für den PC zum Einsatz, beispielsweise in den Adaptern MDA , CGA und EGA . MDA und CGA verwenden einen originalen Motorola-Chip, während der EGA einen kundenspezifischen IBM-Chipsatz mit fünf LSI-Chips besitzt. Einer dieser Chips enthält IBMs Neuimplementierung des CRTC, der zwar ähnlich wie ein MC6845 funktioniert, sich aber in einigen Registeradressen und Funktionen unterscheidet und daher nicht vollständig kompatibel ist. In allen späteren VGA- kompatiblen Adaptern ist die Funktion des 6845 weiterhin im Videochip implementiert, sodass in gewisser Weise alle aktuellen IBM-PC-kompatiblen PCs noch immer die Logik des 6845 CRTC enthalten.

Video-Interface-Controller

Video-Coprozessoren

  • Der RP2C02 ( NTSC ) [ 2 ] bzw. RP2C07 ( PAL ) [ 3 ] ist ein von Ricoh für Nintendos Famicom und Nintendo Entertainment System entwickelter Video-Coprozessor , bekannt als „Picture Processing Unit“ (PPU). Er verfügt über 2048 Byte dedizierten Video-RAM und einen eigenen Adressbus, der den Zugriff auf zusätzlichen RAM oder ROM vom Spielmodul ermöglicht. Unterstützt wird ein scrollbares Spielfeld von 256 × 240 Pixeln sowie eine Anzeigeliste mit 64 OBJs (Sprites), von denen 8 pro Scanline dargestellt werden können.
  • Der Yamaha V9938 ist eine verbesserte Version des TMS9918 und wurde hauptsächlich im MSX2 verwendet .
  • Der Yamaha V9958 ist der Video Display Processor (VDP), der hauptsächlich in den Computern MSX2+ und MSX turboR verwendet wurde.
  • Der VLSI VS21S010D-L ist ein 128kB SPI/Parallel-SRAM mit integriertem Videodisplay-Controller mit Pixeln variabler Bittiefe und einem Block-Move-Blitter.
  • Die Thomson EF936x Serie von Grafikprozessoren (GDP) bietet eine Zeichenrate von 1 Million  Pixeln  pro Sekunde und Auflösungen bis zu 1024×512.

Alternativen zu einem VDC-Chip

Es ist zu beachten, dass viele frühe Heimcomputer keinen VDP-Chip verwendeten, sondern den gesamten Videodisplay-Controller aus einer Vielzahl diskreter Logikbausteine ​​aufbauten (Beispiele hierfür sind der Apple II , der PET und der TRS-80 ). Da diese Methoden sehr flexibel sind, konnten Videodisplay-Generatoren sehr leistungsfähig (oder, je nach Qualität des Designs, extrem primitiv) sein, benötigten aber auch viele Bauteile.

Viele frühe Systeme nutzten eine Art programmierbare Logikbaustein (PLA) zur Videodarstellung; Beispiele hierfür sind der ZX Spectrum , der ZX81 und der Elektronika BK-0010 , aber es gab noch viele weitere. Frühe Implementierungen waren oft sehr primitiv, spätere Implementierungen führten jedoch mitunter zu recht fortschrittlichen Videosystemen, wie beispielsweise im SAM Coupé . Bei einfacheren Systemen wie dem ZX81 übernahm die Hardware lediglich elektrische Funktionen, während Timing und Pegel des Videostreams vom Mikroprozessor gesteuert wurden. Da die Videodatenrate im Verhältnis zur Prozessorgeschwindigkeit hoch war, konnte der Computer während der Zeit zwischen den Bildwiederholungen nur Berechnungen durchführen, die nicht der Darstellung dienten. Dies beschränkte die Leistung auf maximal 25 % der verfügbaren CPU-Zyklen.

Diese Systeme ermöglichten den Aufbau leistungsfähiger Systeme mit relativ wenigen Komponenten. Die geringe Transistoranzahl früher programmierbarer Logikbausteine ​​(PLA) führte jedoch dazu, dass die Leistungsfähigkeit früher PLA-basierter Systeme oft weniger beeindruckend war als die von Systemen mit Video-Interface-Controllern oder Video-Coprozessoren, die zur gleichen Zeit verfügbar waren. Spätere PLA-Lösungen, beispielsweise solche mit CPLDs oder FPGAs , ermöglichten deutlich fortschrittlichere Videosysteme, die Systeme mit Standardkomponenten übertrafen.

Eine häufig verwendete Hybridlösung bestand darin, einen Video-Interface-Controller (oft den Motorola 6845 ) als Basis zu nutzen und dessen Funktionalität durch programmierbare Logik oder einen ASIC zu erweitern . Ein Beispiel für eine solche Hybridlösung ist die ursprüngliche VGA- Karte, die einen 6845 in Kombination mit einem ASIC verwendete. Daher nutzen alle aktuellen VGA-basierten Videosysteme noch immer die Hardware-Register des 6845.

Moderne Lösungen

Blockdiagramm des ATi R300-Chips . Der Display-Controller ist als „Display-Schnittstelle“ bezeichnet.

Dank der Fortschritte in der Halbleiterfertigung werden immer mehr Funktionen als integrierte Schaltungen implementiert , die häufig als Halbleiter-Intellectual-Property-Core (SIP-Core) lizenzierbar sind. Display-Controller -System-in-Package (SiP)-Blöcke finden sich auf den Chips von GPUs , APUs und SoCs .

Sie unterstützen eine Vielzahl von Schnittstellen : VGA , DVI , HDMI , DisplayPort , VHDCI , DMS-59 und weitere. Die PHY-Schicht umfasst LVDS , Embedded DisplayPort , TMDS und Flat Panel Display Link , OpenLDI und CML . Ein moderner Computermonitor kann über einen integrierten LCD- oder OLED-Controller verfügen. [ 4 ]

Ein VGA-Signal, das beispielsweise von der GPU erzeugt wird, wird über ein VGA-Kabel an den im Monitor integrierten Controller übertragen. Beide Enden des Kabels sind mit einem VGA-Anschluss versehen . Laptops und andere mobile Computer verwenden unterschiedliche Schnittstellen zwischen dem Display-Controller und dem Display. Ein Display-Controller unterstützt üblicherweise mehrere Computer-Display-Standards .

Der KMS-Treiber ist ein Beispiel für einen Gerätetreiber für Display-Controller, und AMD Eyefinity ist eine spezielle Marke von Display-Controllern mit Unterstützung für mehrere Monitore .

RandR (resize and rotate) ist eine Methode, um die Bildschirmauflösung und die Bildwiederholfrequenz für jeden einzelnen Ausgang separat zu konfigurieren und gleichzeitig die Einstellungen des Fenstersystems entsprechend anzupassen.

Ein Beispiel für diese Dichotomie liefert ARM Holdings : Sie bieten SIP-Kerne sowohl für die 3D-Rendering-Beschleunigung als auch für Display-Controller separat an. Erstere werden unter Bezeichnungen wie Mali-200 oder Mali-T880 vermarktet, während letztere als Mali-DP500, Mali-DP550 und Mali-DP650 erhältlich sind. [ 5 ]

Geschichte

1982 brachte NEC den NEC μPD7220 auf den Markt , einen der am weitesten verbreiteten Videodisplay-Controller in PCs der 1980er Jahre . Er wurde im NEC PC-9801 , APC III , IBM-PC-kompatiblen Rechnern , DEC Rainbow , Tulip System-1 und Epson QX-10 verwendet . [ 6 ] Intel lizenzierte das Design und nannte es 82720 Grafikdisplay-Controller. [ 7 ]

Früher wurden Grafikkarten auch als Grafikadapter bezeichnet. Die auf diesen ISA / EISA -Karten verwendeten Chips bestanden lediglich aus einem Display-Controller, da dies die einzige Funktion war, die zum Anschluss eines Computers an einen Bildschirm benötigt wurde. Spätere Karten enthielten integrierte Schaltkreise (ICs) zur Durchführung von Berechnungen für die 2D-Darstellung parallel zur CPU; diese Karten wurden als Grafikbeschleunigerkarten bezeichnet. Ähnlich folgten schließlich ICs für die 3D-Darstellung. Solche Karten waren mit VLB- , PCI- und AGP- Schnittstellen erhältlich; moderne Karten nutzen typischerweise den PCI-Express -Bus, da sie eine deutlich höhere Bandbreite benötigen, als der ISA-Bus liefern kann.

Siehe auch

Referenzen

  1. ^ M. Rasch, B. Bertelsons (1995). Scott Slaughter (Hrsg.). PC Underground: Unkonventionelle Programmierthemen . USA: Abacus Software Inc., S. 58–68. ISBN 978-1557552754DieDer Kathodenstrahlröhren-Controller (CRTC) ist für die Erzeugung des Videosignals zuständig und programmierbar. CRTC-Register-Bitbedeutungstabellen für VGA , EGA , CGA , Hercules , SVGA , Modus X.
  2. ^ „NES NTSC Video“ . NESdev.org. 04.06.2024.
  3. ^ „NES PAL Video“ . NESdev.org. 24.06.2024.
  4. ^ https://www.xhpanel.com/info-detail/lcd-controller-boards-everything-you-need-to-know
  5. ^ „Erste Unterstützung für ARM Mali Display Controller“ . Linux-Kernel-Mailingliste . 01.04.2016.
  6. ^ Dampf, Guido (1986). „Grafik mit dem NEC 7220: Direkter Zugriff mit Turbo Pascal“ . Archiviert vom Original am 2. Mai 2019. Abgerufen am 27. Juli 2013 .(Übersetzung von „Grafik mit dem 7220 von NEC“, mc , 1986, H11, S. 54-65)
  7. ^ Changon Tsay (1. Januar 1986). Ein Grafiksystemdesign basierend auf dem Intel 82720 Grafikdisplay-Controller . Universität von Texas in El Paso. S.  1–152 .{{cite book}}: |work=ignoriert ( Hilfe )