La scheda video

Cosa serve la scheda video su un computer.

In informatica ed elettronica una scheda video è un componente hardware del computer che ha lo scopo di generare un segnale elettrico (output) che possa essere poi mostrato a video (display) ovvero trasdotto da quest'ultimo in segnale ottico visivo per l'utente. A seconda del tipo di computer questo dispositivo può essere più o meno potente: i primi modelli di scheda video potevano visualizzare solo testo; successivamente si sono diffuse anche schede video in grado di mostrare output grafici (immagini non testuali) e, recentemente, anche modelli tridimensionali texturizzati in movimento e in tempo reale. Questi ultimi tipi di scheda provvedono anche ad elaborare e modificare l'immagine nella propria memoria interna, mentre le schede 2D possono mostrare immagini 3D solo con l'aiuto della CPU che deve eseguire da sola tutti i calcoli necessari.
  
Tipologia e architettura delle schede video.
Una tipica scheda video contiene un integrato grafico (o più di uno) che gestisce una certa quantità di RAM dedicata a memorizzare i dati grafici da visualizzare e che risiede fisicamente sulla scheda stessa. Le schede video costruite per i PC IBM e compatibili contengono anche una ROM con un driver molto semplice (chiamato firmware che è aggiornabile nelle moderne schede video), usato dal BIOS per il bootstrap.
Il funzionamento di una scheda video è, in linea di massima, molto semplice: ogni locazione di RAM grafica contiene il colore di un pixel dello schermo, o di un carattere se la scheda sta visualizzando solo testo: il chip grafico si limita a leggere in sequenza le locazioni necessarie (se sta lavorando in modo testo, ogni locazione viene elaborata da un generatore di caratteri) e a pilotare un convertitore digitale-analogico, detto RAMDAC, che genera il segnale video che sarà visualizzato dal monitor. Dalla quantità di RAM grafica equipaggiata nella scheda e dalla velocità (frequenza) massima del suo RAMDAC dipendono la risoluzione massima raggiungibile e il numero di colori contemporaneamente visibili.
Tutte le schede video possono visualizzare anche grafica tridimensionale (al limite anche quelle con sola modalità testo, se si accetta una rappresentazione ASCII art), ma senza funzioni apposite di accelerazione. L'intero lavoro di calcolo deve essere svolto, pixel per pixel, dalla CPU principale del computer, che viene spesso completamente assorbita da questo compito: una scheda grafica non tridimensionale si limita in pratica a visualizzare una serie di immagini bidimensionali che le vengono inviate dal sistema.
Modo testo.
Tutte le schede video dispongono almeno del modo di funzionamento detto modalità testo o a caratteri: in questa modalità lo schermo del computer è organizzato come una griglia di caselle rettangolari in ciascuna delle quali viene scritto un carattere tipografico, di stile prefissato da un generatore di caratteri interno alla scheda (generalmente una sezione del chip video che si occupa di leggere la descrizione dei vari caratteri richiesti dalla ROM o da una parte della RAM video). Per esempio, nei PC IBM originali il modo testo era di 80 colonne per 25 righe. Una parte della RAM della scheda viene poi usata per memorizzare il codice (in genere in codice ASCII) di un carattere tipografico.
In questa modalità, per far comparire sullo schermo la scritta "scheda video" è sufficiente che il calcolatore scriva i dodici codici ASCII delle lettere componenti (115, 99, 104, 101, 100, 97, 32, 118, 105, 100, 101, 111) in dodici locazioni della memoria RAM della scheda video: sarà poi il generatore di caratteri del chip grafico a tradurre i codici in serie di pixel e fare tutto il resto.
Modalità grafica.
Quasi tutte le schede video (con pochissime eccezioni) possono poi operare anche in modalità grafica, vale a dire senza avvalersi del generatore di caratteri interno ma specificando l'immagine pixel per pixel. In questa modalità il colore di ogni pixel è specificato singolarmente, in genere usando una o più locazioni di memoria video. Questa modalità ha bisogno di molta più memoria RAM del modo testo: una schermata in modo testo occupa generalmente da 2 a 6 KB di RAM video, mentre in modalità grafica, a seconda della risoluzione in pixel e della quantità di colori usati contemporaneamente serve da 10 a 10000 volte tanto. Il modo di rappresentare del singolo pixel in memoria video varia molto a seconda del tipo di approccio usato dal costruttore e dalla particolare modalità grafica: in genere però si adotta una corrispondenza di tipo bitmap, cioè a mappa di bit.
Schede video con accelerazione 2D.
Già da un po' di tempo il chip grafico è in grado di eseguire alcune funzioni grafiche in modo autonomo, senza che il processore principale debba intervenire: le schede grafiche con questi chip sono dette 2D accelerate, perché possono svolgere da sole una parte del lavoro di disegno che altrimenti spetterebbe al processore. Le operazioni più comuni da implementare in hardware sono il tracciamento di linee, di archi e di forme geometriche semplici (rettangoli, poligoni, cerchi, ellissi) e il bit blitting, cioè lo spostamento da una parte all'altra dell'immagine di blocchi di pixel. È in genere presente anche un generatore di caratteri evoluto, capace di funzionare anche in modalità grafica e di visualizzare contemporaneamente caratteri di molti font e grandezze diverse.
Schede video con accelerazione 3D.
Le schede video con capacità grafiche tridimensionali (o 3D accelerate) hanno le stesse capacità bidimensionali delle precedenti, e in più ne hanno una completamente nuova, la modalità 3D appunto, in cui i pixel dell'immagine da visualizzare vengono calcolati dalla GPU (Graphics Processing Unit), fotogramma per fotogramma, partendo da una serie di dati geometrici forniti dalla CPU.
In questa modalità, la RAM video contiene una serie di sottoimmagini, le texture. Ciascuna di queste viene associata ad una particolare superficie bidimensionale di un modello tridimensionale di cui ne costituisce la "pelle": volendo, si possono considerare le varie texture come delle carte da parati elettroniche. Per ogni fotogramma (frame) da visualizzare in modalità 3D, la scheda video riceve dal processore una serie di punti geometrici (vertici) che specificano delle superfici in uno spazio tridimensionale con l'indicazione di quali texture applicare alle varie superfici: la GPU si occupa di calcolare, a partire dai dati ricevuti, se la particolare superficie sia visibile o no, e, se visibile, la sua forma in due dimensioni (coordinate schermo); poi si occupa di applicare la (o le) texture indicate. Il valore di ogni pixel viene quindi calcolato a partire da quali e quanti texel (i pixel delle texture) sono contenuti in esso.
Per fare tutto questo, le schede video 3D accelerate sono equipaggiate con una grande quantità di RAM, e ricorrono in modo massiccio al calcolo parallelo: l'integrato principale è un vero e proprio processore e viene detto GPU (anche programmabile a piacere, a partire dalla serie 6800GT di Nvidia), composto internamente di una serie di unità identiche (dette pipeline) operanti in parallelo, ciascuna su una diversa serie di pixel alla volta; poiché in grafica non vale il principio di località non è possibile usare una memoria cache come nella CPU principale, e la comunicazione con la RAM grafica deve essere estremamente veloce: questo rende necessario adottare sia una frequenza di lavoro della RAM grafica molto più alta di quella della memoria principale, sia l'adozione di bus RAM-GPU molto ampi (128, 256 bit o anche 512 bit). Per lo stesso motivo, far funzionare la GPU a frequenze molto più elevate della RAM grafica, adottando un moltiplicatore di frequenza come per la CPU principale, non porterebbe nessun beneficio prestazionale.
Ulteriori funzioni di accelerazione, utili per aumentare il livello di realismo delle immagini calcolate, sono il calcolo in hardware delle luci incidenti (Transform and Lighting o T&L), i pixel shader, il vertex shader e il rendering (rasterizzazione), il filtro anisotropico e il filtro antialiasing.
Con questa nuova architettura le schede video 3D accelerate sollevano la CPU da tutti i calcoli necessari alla visualizzazione, lasciandole solo il compito di aggiornare la geometria dell'immagine (calcolo di spigoli e vertici, di rotazioni, intersezioni, animazioni ecc.).
Le prime schede video accelerate 3D destinate al grande pubblico (prima di allora erano molto costose e riservate a professionisti) sono state le famose Voodoo della 3dfx, la prima industria a produrre schede video con capacità 3D a prezzi popolari, assorbita nel 2001 dalla concorrente Nvidia.