Schede grafiche. I componenti principali di una scheda grafica sono i seguenti: Processore grafico. Memoria video. RAMDAC. Driver software. I principali problemi posti dall’elaborazione grafica, consistono nell’elevato carico elaborativo e nella grande quantità di dati da trasferire dalla memoria di lavoro del processore a quella della scheda, inoltre le comuni memorie DRAM non sono adatte come memoria grafica, perché non possono essere lette e scritte simultaneamente. Ciò significa che il RAMDAC - che legge la memoria video per convertire i dati binari in segnali analogici - dovrebbe aspettare la CPU che li scrive e viceversa. Processore grafico. Il processore grafico (GPU) evita che sia la CPU ad elaborare le immagini ed inviare il rilevante quantitativo di dati che ne consegue, alla scheda grafica, infatti la CPU invia al processore grafico solo dei ‘comandi’, che sono interpretati dal driver della scheda ed eseguiti dal processore grafico, per costruire le immagini. La GPU effettua elaborazioni come la costruzione e colorazione delle bitmap, il dimensionamento e posizionamento delle finestre, il tracciamento delle linee e dei poligoni, il dimensionamento dei font. Tali operazioni vengono eseguite dall’hardware del processore grafico, molto più velocemente di quanto si potrebbe con la CPU; a seguito di queste elaborazioni i dati necessari a riprodurre l’immagine sul video vengono quindi scritti dalla GPU nel frame buffer. Quindi la scheda grafica riduce sia il carico di lavoro della CPU, perché le elaborazioni dell’immagine sono fatte dalla GPU, sia il traffico sul bus di sistema, perché i dati che costituiranno l’immagine sul video, sono generati sulla scheda grafica e la comunicazione con la CPU è limitata ai comandi di costruzione dell’immagine. Memoria video. La memoria dedicata all’immagine del video è chiamata frame buffer. Il frame buffer inizialmente era allocato nella memoria di lavoro DRAM del sistema, che però richiede frequenti cicli di refreshing, durante i quali non può essere letta o scritta. All’aumentare delle prestazioni grafiche, tale soluzione è diventata inadeguata e si sono dotate le schede grafiche di una propria memoria video, realizzata con tecnologie particolari, più adatte allo specifico impiego. In effetti si è avuta una proliferazione di diversi tipi di memoria video, fra cui: VRAM e WRAM: memorie DRAM a ‘due porte’, cioè accessibili contemporaneamente da due dispositivi, possono essere quindi lette per fornire i dati da visualizzare - e scritte - per l’aggiornamento dei dati - simultaneamente, inoltre hanno un fabbisogno di refresh meno frequente dei tipi normali. SDRAM e SGRAM: memorie sincronizzate con i chip grafici, con capacità di supportare sia scritture a blocchi che a bit, quindi più adatte alle operazioni grafiche. La tabella seguente, mostra la memoria richiesta per rappresentare una immagine sullo schermo, a seconda della risoluzione e del numero di colori. Le schede video montano mormalmente molta più memoria (32 - 64 Mbyte) per poter disporre di uno spazio per memorizzare elementi grafici che, in base al programma in corso, si prevede di utilizzare più volte, evitando di doverli ricostruire ad ogni ripetizione (per esempio font, finestre, sfondi). Memoria video Risoluzione Codifica colore 2Mb 1280 x 1024 16-bit 800 x 600 24-bit 65,536 16.7 milioni 4Mb 1024 x 768 24-bit 16.7 milioni 6Mb 1280 x 1024 24-bit 16.7 milioni 8Mb 1600 x 1200 32-bit 16.7 milioni N. colori RAMDAC L’immagine che appare sullo schermo è memorizzata nel frame buffer, in formato bitmap, dove ad ogni pixel corrispondono 2 o 3 byte che ne rappresentano colore e luminosità. Le informazioni binarie contenute nella bitmap, devono essere convertite in segnali analogici per pilotare il monitor e determinare dove, quando e con che intensità il ‘pennello’ elettronico deve colpire lo schermo, nel mentre lo scorre linea per linea. Questo lavoro di conversione D/A, viene fatto dal RAMDAC 75 -100 volte al secondo e genera il segnale analogico RGB, che pilota il monitor attraverso il cavo di collegamento alla scheda video. Il RAMDAC dispone di un un convertitore digitale analogico (DAC) per ognuno dei tre colori primari del CRT. La velocità di conversione del RAMDAC e le sue caratteristiche tecniche, concorrono a determinare sia la frequenza di refresh delle immagini video, sia il numero di colori rappresentabili sullo schermo, per una data risoluzione. Driver software Il ruolo dei driver software nel funzionamento della grafica è altrettanto importante di quello dell’hardware. In genere il driver ha il compito di trasformare le richieste di rappresentazione grafica del programma applicativo, in istruzioni per il processore grafico. Il modo in cui il driver effettua questa traduzione è di fondamentale importanza, in quanto i processori grafici dispongono di potenti istruzioni per manipolare dati e disegnare e ombreggiare le immagini ed è compito del driver attivarle, per corrispondere al meglio alle richieste del programma applicativo. In genere c’è un driver per ciascuna risoluzione o profondità di colore, perciò anche dalla efficienza dei diversi driver, oltre che dal differente carico elaborativo, dipendono le diverse prestazioni di una scheda grafica, al variare della risoluzione e della profondità di colore.