Video Display Controller

componente elettronico

Un Video Display Controller, o VDC, è il principale circuito integrato del componente che gestisce la generazione del segnale video, un dispositivo capace di produrre in un computer un segnale video composito TV. Alcuni VDC possono anche generare segnali audio analogici, che comunque non è la loro funzione principale.

Il MOS VIC-II (MOS 6569R3 PAL), adibito alla gestione della grafica del Commodore 64.

I VDC furono utilizzati molto sia nei primi videogiochi arcade sia negli home computer ad 8 bit degli anni ottanta.

Un VDC è sempre il componente principale della circuiteria dedicata alla generazione del segnale video anche se spesso sono presenti altri chip di supporto, come della RAM per memorizzare i dati riguardanti i pixel dell'immagine, della ROM per mantenere i font dei caratteri, o i circuiti discreti, come dei registri 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 sua VRAM che appare nella mappa di memoria della CPU), mentre altre operano come coprocessori che operano nella VRAM in modo indipendente.

VDC contro VDP/GPU modifica

La differenza tra i VDC ed i più moderni Video Display Processor, VDP, oggi sostituiti dalle Graphics processing unit, GPU, risiede nel fatto che i primi non possiedono nessuna forma di accelerazione hardware per la creazione delle immagini 2D e 3D. I VDC possono però avere integrata la logica per la gestione in hardware degli sprite, una funzione che nei più recenti VDP è svolta dal bit blitter, che può spostare velocemente grossi quantitativi di dati nella memoria video.

Esempi di tipici VDP sono dati dai chip video della console Sega Saturn, dal chip AGA (Advanced Graphics Architecture) presente negli ultimi modelli dei computer Amiga, dal TIA 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, il TMS9918 era indicato sia come "Video Display Controller" sia come "Video Display Processor": quest'ultimo, di solito, è capace di "processare" il contenuto della VRAM (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.

Una GPU 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.

Tipi di Video Display Controllers modifica

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 dalla CPU 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.
  • Un CRTC, 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.
  • I Video 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 della tavolozza per le modalità testuale e/o ad alta risoluzione.
  • I Video 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).

Elenco di alcuni VDC modifica

La lista che segue raccoglie alcuni Video Display Controller:

Video shifters

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 sul bus S-100.
  • Il Motorola 6845 era un generatore video presentato da Motorola ed utilizzato negli Amstrad CPC e nei BBC Micro. Fu in seguito usato per alcuni dei primi adattatori grafici per PC, come le schede MDA, CGA e EGA. Nelle successive schede VGA le funzionalità del 6845 erano riprodotte all'interno del chip video per cui in teoria ogni scheda video compatibile VGA incorpora le funzionalità del 6845.

Video Interface Controllers

Video Coprocessors

  • L'ANTIC (Alpha-Numeric Television Interface Circuit) era il chip video usato negli Atari ad 8 bit. Aveva una CPU integrata che poteva eseguire una display list per generare un segnale video complesso.
  • Lo Yamaha V9938 era una versione migliorata del TMS9918; era usato soprattutto nei computer MSX2.
  • Lo Yamaha V9958 era un VDP utilizzato principalmente nei computer MSX 2+ e MSX turbo R.

Alternative all'uso di un chip VDC modifica

Molti vecchi computer non usavano un chip VDC ma presentavano l'intera logica di gestione video costruita con chip discreti: esempi di questa scelta costruttiva sono l'Apple II, il PET ed il TRS-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 di PLA, come i computer Sinclair 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.

I successori dei VDC modifica

Seguendo la legge 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 i blitter 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 uno Z-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 nei chipset delle schede 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.

Voci correlate modifica

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica