SCHEDA VIDEO In informatica ed elettronica una scheda video è uncomponente hardware delcomputer, sotto forma di scheda elettronica, che ha lo scopo di generare un segnale elettrico in output che possa essere poi inviato in input a video (display o monitor) per essere tradotto da quest'ultimo in segnale ottico visivo e mostrato all'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. 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 uncarattere 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 processoreprincipale 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 2001dalla concorrente Nvidia. Uscite video [modifica] Le connessioni più diffuse tra la scheda video e il monitor (o televisore) sono: Video Graphics Array (VGA): standard analogico introdotto nel 1987 e progettato per monitor CRT, ma utilizzato, per compatibilità, anche da diversi monitor LCD, assieme all'interfaccia DVI; ha diversi problemi, come il rumore elettrico, la distorsione dell'immagine e alcuni errori nella valutazione dei pixel. Digital Visual Interface (DVI): introdotto nei monitor LCD, viene usato anche da TV al plasma e videoproiettori. Risolve i problemi del SVGA facendo corrispondere a ogni pixel dell'output un pixel dello schermo, in quanto ne riconosce la risoluzione nativa. S-Video: utilizzato per la connessione a TV, lettori DVD, proiettori e videoregistratori. High-Definition Multimedia Interface (HDMI): rilasciato nel 2003, questo standard, che supporta le risoluzioni ad alta definizione, ha come obiettivo la sostituzione di tutti gli altri standard. DisplayPort: rilasciato nel 2006, si presenta come concorrente dell HDMI. È usato sia per connessioni con monitor che con sistemi home theatre. Altre uscite video (ormai obsolete) sono: Video composito: uscita analogica con risoluzione molto bassa, che fa uso di un connettore RCA Video a componenti: ha tre cavi, ognuno con un connettore RCA, utilizzato per i proiettori. Interfaccia di connessione con la scheda madre In ordine cronologico, i sistemi di connessione con la scheda madre sono stati: ISA: rilasciata nel 1981 da IBM ed utilizzata negli anni '80 MCA: rilasciata, sempre da IBM nel1987, incompatibile con le schede madri precedenti EISA: rilasciata nel 1988 per competere con IBM, retrocompatibile VESA: estensione dell'ISA PCI: questo standard ha sostituito le altre interfacce nel 1993. Il PCI permette una connettività dinamica delle periferiche e non richiede l'utilizzo di jumper per la configurazione. AGP: prima interfaccia dedicata esclusivamente alle schede grafiche, introdotta nel 1997 in seguito alla crescita del mercato di schede video con accelerazione 3D. È diventata l'interfaccia standard per le schede video per i numerosi vantaggi che presentava ed è stata più volte migliorata (AGP 2x, 4x, 8x) PCI Express: evoluzione del bus PCI rilasciata nel 2004 che sta sostituendo l'AGP come interfaccia di connessione delle schede grafiche in quanto offre una larghezza di banda maggiore e maggiore potenza erogata. Sono state rilasciate[2], nel gennaio 2007, le specifiche PCI Express 2.0, che incrementa le prestazioni del PCI Express in termini di larghezza di banda e potenza erogata, per sopperire alle richieste sempre maggiori delle schede video. Il primo chipset a supportarle fu l'X38 di Intel, rilasciato nel 2007. Tipologia di collegamento alla scheda madre [modifica] Le schede video possono essere collegate in diverso modo alla scheda madre Integrate, la scheda video è ricavata direttamente sulla scheda madre, questa soluzione viene utilizzata sulle console e su alcuni PC, per quest'ultimi, si può avere o no la possibilità di utilizzare una scheda video esterna PCI, porta parallela AGP, porta parallela PCI Express, porta seriale Bus Ampiezza (bits) Frequenza Clock Larghezza di banda Trasferimento (MHz) (MByte/s) ISA XT 8 4,77 8 parallelo ISA AT 16 8,33 16 parallelo MCA 32 10 20 parallelo EISA 32 8,33 32 parallelo VESA 32 40 160 parallelo PCI 32 - 64 33 - 100 132 - 800 parallelo AGP 1x 32 66 264 parallelo AGP 2x 32 133 528 parallelo AGP 4x 32 266 1000 parallelo AGP 8x 32 533 2000 parallelo PCIe x1 1*32 25 / 50 100 / 200 seriale PCIe x4 1*32 25 / 50 400 / 800 seriale PCIe x8 1*32 25 / 50 800 / 1600 seriale PCIe x16 1*32 25 / 50 1600 / 3200 seriale 50 / 100 3200 / 6400 seriale PCIe x16 2.0 1*32