UnVideo Display Controller, oVDC, è il principalecircuito integrato del componente che gestisce la generazione delsegnale video, un dispositivo capace di produrre in uncomputer un segnalevideo compositoTV. Alcuni VDC possono anche generare segnaliaudio analogici, che comunque non è la loro funzione principale.
Un VDC è sempre il componente principale della circuiteria dedicata alla generazione del segnale video anche se spesso sono presenti altri chip di supporto, come dellaRAM per memorizzare i dati riguardanti ipixel dell'immagine, dellaROM per mantenere ifont dei caratteri, o icircuiti discreti, come deiregistri a scorrimento, necessari a far funzionare il sistema. In alcuni casi il VDC è responsabile della generazione dei segnali di temporizzazione per i segnali video, come i segnali di sincronizzazione verticali ed orizzontali.
Alle volte i chip VDC sono completamente integrati nella logica del sistema centrale (con la suaVRAM che appare nella mappa di memoria dellaCPU), mentre altre operano comecoprocessori che operano nella VRAM in modo indipendente.
La differenza tra i VDC ed i più moderniVideo Display Processor,VDP, oggi sostituiti dalleGraphics processing unit,GPU, risiede nel fatto che i primi non possiedono nessuna forma diaccelerazione hardware per la creazione delle immagini2D e3D. I VDC possono però avere integrata la logica per la gestione in hardware deglisprite, una funzione che nei più recenti VDP è svolta dalbit blitter, che può spostare velocemente grossi quantitativi di dati nella memoria video.
Esempi di tipici VDP sono dati dai chip video dellaconsoleSega Saturn, dal chipAGA (Advanced Graphics Architecture) presente negli ultimi modelli dei computerAmiga, dalTIA dell'Atari 2600.
Non esiste per i "chip video" un delimitatore che indichi chiaramente quando questi devono essere considerati VDC e quando VDP. Ad esempio, ilTMS9918 era indicato sia come "Video Display Controller" sia come "Video Display Processor": quest'ultimo, di solito, è capace di "processare" il contenuto dellaVRAM (ad esempio riempiendo con un valore una porzione di essa) mentre il primo "controlla" solo la temporizzazione dei segnali di sincronizzazione e l'accesso alla VRAM.
UnaGPU va invece un ulteriore passo in avanti rispetto ad un VDP e normalmente supporta anche funzionalità di accelerazione 3D. Le GPU sono i chip utilizzati nei moderni personal computer.
I VDC possono essere suddivisi arbitrariamente in alcuni tipi (qui sotto elencati da quelli meno a quelli più complessi):
Video shifter, o "Video shift register based system" (anche se non esiste un nome universalmente riconosciuto per indicarli), sono il tipo più semplice di VDC. Essi sono responsabili, direttamente o indirettamente, per i segnali di sincronizzazione del video ma, di solito, non accedono direttamente alla VRAM: essi ricevono i dati video dallaCPU e li convertono in un flusso seriale di dati (da qui il nome di "shifter", "scambiatore"). Questo flusso seriale di dati è poi usato, insieme ai segnali di sincronizzazione, per generare il segnale video in uscita. La CPU principale esegue tutti i calcoli necessari. Normalmente questi chip supportano solo una modalitàraster a bassa risoluzione.
UnCRTC, o "Cathode Ray Tube Controller", genera i segnali di temporizzazione del video e legge i dati video da una RAM collegata al CRTC, ed offre in uscita dei dati, o tramite una ROM contenente i font dei caratteri nel caso di una modalità di visualizzazione solo testuale oppure direttamente nel caso di una modalità grafica, ad un Video Shifter. Datosi che le capacità grafiche di questi tipi di generatori video dipendono in gran parte da logica esterna, i chip CRTC possono avere un'ampia gamma di caratteristiche, dalle più semplici per i sistemi solo testuali a quelle più complesse dei sistemi con grafiche ad alta risoluzione e con un gran numero di colori. Gli sprite non sono in genere supportati da questi sistemi.
IVideo interface controller sono sistemi più complessi dei CRTC, che contengono normalmente la circuiteria esterna necessaria a questi ultimi. Essi supportano spesso anche gli sprite così come integrano un generatore di caratteri in RAM ed una VRAM dedicata agli attributi dei colori ed ai registri dellatavolozza per le modalità testuale e/o ad alta risoluzione.
IVideo coprocessor hanno una propria CPU interna dedicata alla lettura (e scrittura) della loro VRAM, e convertono il contenuto di questa memoria in un segnale video. La CPU del sistema può inviare dei comandi al coprocessore video, ad esempio per cambiare la modalità video o per manipolare il contenuto della memoria video. Il coprocessore video controlla inoltre il generatore di caratteri (generalmente su RAM), gli attributi dei colori e la logica di gestione degli sprite (se, ovviamente, questi sono supportati).
IlTelevision Interface Adaptor (TIA) è il chip video usato nelle consoleAtari 2600. Era un chip molto primitivo che dipendeva dal microprocessoreMOS 6507; era usato anche per generare l'audio.
CRT Controllers
L'Intel 8275 era un CRTC che non fu usato in nessun sistema di larga diffusione ma fu utilizzato principalmente in alcuni sistemi basati sulbus S-100.
IlMotorola 6845 era un generatore video presentato daMotorola ed utilizzato negliAmstrad CPC e neiBBC Micro. Fu in seguito usato per alcuni dei primi adattatori grafici per PC, come le schedeMDA,CGA eEGA. Nelle successive schedeVGA le funzionalità del 6845 erano riprodotte all'interno del chip video per cui in teoria ognischeda video compatibile VGA incorpora le funzionalità del 6845.
IlPicture Processing Unit (PPU), siglato RP2C02 per i sistemi NTSC e RP2C07 per quelli PAL, è un coprocessore video progettato daRicoh cheNintendo ha usato nelFamicom/Nintendo Entertainment System: aveva 2048byte di VRAM dedicata ed aveva un bus aggiuntivo con il quale poteva accedere ad altra RAM/ROM. Supportava lo scrolling di un'immagine di 256×240 pixel e poteva visualizzare 64 sprite (chiamati OBJ nel NES), di cui 8 potevano stare sulla stessa linea video.
IlNEC D7220 era usato in alcune schede grafiche per PC di fascia alta di metà anni '80, come quelle prodotte daNumber Nine.
Video Coprocessors
L'ANTIC (Alpha-Numeric Television Interface Circuit) era il chip video usato negliAtari ad 8 bit. Aveva una CPU integrata che poteva eseguire unadisplay list per generare un segnale video complesso.
LoYamaha V9938 era una versione migliorata del TMS9918; era usato soprattutto nei computerMSX2.
Molti vecchi computer non usavano un chip VDC ma presentavano l'intera logica di gestione video costruita conchip discreti: esempi di questa scelta costruttiva sono l'Apple II, ilPET ed ilTRS-80). Siccome questo metodo è molto flessibile i VDC potevano essere molto capaci (o estremamente primitivi, a seconda della qualità del progetto) anche se richiedevano un buon numero di componenti.
Alcuni produttori usarono le prime forme diPLA, come i computerSinclair ZX80/ZX81/ZX Spectrum: questi controllori video potevano rappresentare un'interessante soluzione per ridurre i costi perché utilizzavano pochi componenti ma il ridotto numero di transistor di queste prime logiche programmabili si ripercuotevano sulle capacità offerte, spesso inferiori a quelle dei VDC o dei coprocessori video.
Seguendo lalegge di Moore, i circuiti integrati sono divenuti nel corso degli anni sempre più complessi: il semplice VDC fu quindi lentamente rimpiazzato da chip che avevano integrata della logica per processare le immagini come iblitter ed altri circuiti che manipolano i contenuti nella VRAM per eseguire operazioni come il tracciamento di linee, il riempimento di aree oppure il disegno dei font. A seguire arrivarono chip che presentavano della logica speciale per tracciare triangoli, includevano unoZ-buffer in hardware e molti altri metodi per accelerare il disegno delle immagini in 3D.
Gli attuali VDP sono GPU tanto comuni che sono ormai integrate neichipset delleschede madri dei computer, che riservano a questi VDP una parte della memoria del sistema come VRAM. Le prestazioni di tali sistemi grafici non sono equiparabili a quelle di un hardware dedicato quale le GPU montate sulle schede grafiche.