Video display controller

Block diagram of a NEC µPD7220 graphics display controller

A video display controller or VDC (also regularly called display engine, display interface) is an integrated circuit which is the main component in a video signal generator, a device responsible for the production of a TV video signal in a computing or game system. Some VDCs also generate an audio signal, but that is not their main function.

VDCs were used in the home computers of the 1980s and also in some early video game systems.

The VDC is the main component of the video signal generator logic, responsible for generating the timing of video signals such as the horizontal and vertical synchronization signals and the blanking interval signal. Sometimes other supporting chips were necessary to build a complete system, such as RAM to hold pixel data, ROM to hold character fonts, or some discrete logic such as shift registers.

Most often the VDC chip is completely integrated in the logic of the main computer system, (its video RAM appears in the memory map of the main CPU), but sometimes it functions as a coprocessor that can manipulate the video RAM contents independently

Video display controllers vs. video display processors and graphics processing units

The difference between display controller IC (called display controller, video display controller, display engine, display processor, display interface, etc.) and graphics accelerator IC (called 3D engine) doing calculations regarding 2D or 3D rendering (image generation) and IC doing calculation regarding video compression/decompression algorithms is technically of course is huge. But since all of this logic is usually found on the chip of a graphics processing unit and usually not available separately to the end-customer there is much confusion about these very different functional blocks.

GPUs with hardware acceleration started appearing during the 1990s. VDCs often had special hardware for the creation of "sprites", a function that in more modern VDP chips is done with the "Bit Blitter" using the "Bit blit" function.

One example of a typical video display processor is the "VDP2 32-bit background and scroll plane video display processor" of the Sega Saturn. Another example is the Advanced Graphics Architecture (AGA) chip that was used for the improved graphics of the later generation Amiga computers.

This said, it is not completely clear when a "video chip" is a "video display controller" and when it is a "video display processor". For example, the TMS9918 is sometimes called a "video display controller" and sometimes a "video display processor". In general however a "video display processor" has some power to "process" the contents of the video RAM (filling an area of RAM for example), while a "video display controller" only controls the timing of the video synchronization signals and the access to the video RAM.

The graphics processing unit (GPU) goes one step further than the VDP and normally also supports 3D functionality. It is the chip that is now used in modern personal computers.

Types

Video Display controllers can be divided in several different types, listed here from simplest to most complex;

List of example VDCs

Examples of video display controllers are:

Video shifters

CRT Controllers

Video interface controllers

Video coprocessors

Alternatives to a VDC chip

Note that many older home-computer did not use a VDP chip, but built the whole video display controller from a lot of discrete logic chips, (examples are the Apple II, PET, and TRS-80). Because these methods are very flexible the video display generators could be very capable, (or extremely primitive, depending of the quality of the design) but also needed a lot of components.

Many early systems used some form of an early programmable logic array to create a video system, examples include the ZX Spectrum and ZX-81 systems and Elektronika BK-0010 but there were many others. Early implementations are often very primitive, but later implementations could result in fairly advanced video systems like the one in the SAM Coupé.

These systems could thus build a very capable system with relatively few components, but the low transistor count of early programmable logic meant that the capabilities of early PLA based systems often were less impressive than those using the video interface controllers or video coprocessors that were available at the same time. Later PLA solutions, like those using CPLDs or FPGAs could result in much more advanced video systems, surpassing those built using off the shelf components.

An often used hybrid solution was to use a video interface controller (often the Motorola 6845) as a basis and expand its capabilities with programmable logic or an ASIC. An example of such a hybrid solution is the original VGA card, that used an 6845 in combination with an ASIC, that is the reason why all current VGA based video systems still use the hardware registers that were provided by the 6845.

Modern solutions

ATi R300 chip block diagram; the display controller is called "display interface"

With the advancements made in semiconductor device fabrication, more and more functionality is implemented as integrated circuit, often licensable as SIP core. Display controller SIP blocks are either found on the die of GPUs, APUs and SoCs.

They support a variety interfaces: VGA, DVI, HDMI, DisplayPort, VHDCI, DMS-59 and more. The PHY includes LVDS, TMDS and Flat Panel Display Link, OpenLDI and CML.

For example, a VGA-signal, which is created by the display controller, is being transported over a VGA-cable to the display. Both ends of the cable end in a VGA connector. Laptops and other mobile computers use different interfaces between the display controller and the display. A display controller usually supports multiple computer display standards.

KMS driver is an example of a device driver for display controllers and AMD Eyefinity is a special brand of display controller with multi-monitor support.

RandR is a method to configure screen resolution and refresh rate on each individual outputs separately and at the same time configure the settings of the windowing system accordingly.

An example for this dichotomy is offered by ARM Holdings: they offer semiconductor intellectual property core for 3D rendering acceleration and for display controller independently. The former has marketing names such as Mali-200 or Mali-T880 while the latter is available as Mali-DP500, Mali-DP550 and Mali-DP650.[1]

History

In 1982, NEC released the NEC µPD7220, one of the most widely used video display controllers in 1980s personal computers. It was used in the NEC PC-9801, APC III, IBM PC compatibles, DEC Rainbow, Tulip System-1, and Epson QX-10.[2] Intel licensed the design and called it the 82720 graphics display controller.[3]

In ancient times, graphic cards were also called graphic adapters, and the chip on this ISA/EISA cards consisted solely out of a display controller, as this functionality is the only one needed to connect a computer to a display. Later the chips also included IC to do some calculations regarding 2D rendering parallel to the CPU, and the cards were called graphic accelerator cards. Then IC for 3D rendering followed. Such cards were rather available as VLB, PCI, AGP and nowadays as PCI Express, as they require much more bandwidth then the ISA bus can deliver.

See also

References

  1. "Initial support for ARM Mali Display Controller". Linux kernel mailing list. 2016-04-01.
  2. Dampf, Guido (1986). "Graphics with the NEC 7220: Direct access with Turbo Pascal". Retrieved 27 July 2013. (Translation of "Grafik mit dem 7220 von NEC", mc, 1986, H11, pp. 54-65)
  3. Changon Tsay (January 1, 1986). A graphics system design based on the INTEL 82720 graphics display controller. Dissertation. University of Texas at El Paso.
This article is issued from Wikipedia - version of the 8/30/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.