Archivio
mercoledì 3 giugno 2009 - 6 Commenti

La scorsa settimana avevamo introdotto alcuni tra i più comuni approcci al calcolo parallelo e ci eravamo lasciati con la promessa di tornare sulle architetture presentate, con particolare riguardo alla superscalare ed alla vliw. L’intento di oggi è quello di approfondire alcuni aspetti di queste due architetture e di estendere parte dei concetti già visti. Questo ci permetterà di fare una conoscenza un po’ più approfondita delle architetture grafiche di ultima generazione (e non solo).
Come abbiamo visto, sia l’approccio superscalare che quello vliw hanno lo scopo di aumentare il numero …

mercoledì 27 maggio 2009 - 11 Commenti

La scorsa settimana abbiamo introdotto alcuni concetti tra cui, in particolare, quello di pipeline. Si è anche visto come, nel cosro degli anni, la pipeline sia diventata elemento basilare nelle microarchitetture dei processori. Uno dei vantaggi del suo utilizzo è emerso dall’esempio in cui si è calcolato il numero di cicli necessari a portare a termine n istruzioni; si è visto come l’adozione dell’architettura di tipo pipelined introduca anche dei colli di bottiglia come, ad esempio, la necessità di sincronizzare il lavoro dei vari stadi della pipeline.
Si è visto come …

mercoledì 20 maggio 2009 - 14 Commenti

Dopo aver passato brevemente in rassegna le tipologie di memorie presenti al’interno di un chip, questa settimana inizieremo ad entrare nel dettaglio di cosa succede quando viene data un’istruzione ad un processore. Iniziamo col dire che lo schema di un’istruzione elementare (ad esempio RISC) è del tipo: fetch, decode, execute, memory write back. In pratica, l’istruzione viene letta, interpretata, eseguita e, in fine, il suo risultato finisce in memoria.
Questo semplificando al massimo. Scendendo più nel dettaglio, scopriamo che, ad esempio, tra uno stadio e l’altro ci sono dei particolari tipi …

mercoledì 13 maggio 2009 - 11 Commenti

Dopo aver analizzato la genesi delle primitive di un’immagine 3D e aver iniziato ad introdurre lo schema a blocchi di una gpu , passiamo, questa settimana, ad analizzare, un po’ più in dettaglio, alcuni degli elementi presenti all’interno di un microprocessore. Vale la pena di fare una breve sintesi sull’evoluzione delle architetture nel corso di questi anni per capire come mai alcuni elementi o blocchi interni ad un chip abbiano assunto, nel tempo, un’importanza sempre maggiore.
In particolare, mi riferisco, in questo caso, a due gruppi di elementi che caratterizzano sempre …

mercoledì 6 maggio 2009 - 13 Commenti

 Nell’articolo della scorsa settimana si è iniziato ad affrontare il discorso relativo all’architettura a blocchi di una gpu. Si è fatta anche una breve sintesi dell’evoluzione delle architetture, o meglio, di parte di esse, al mutare delle API di riferimento.
Questa settimana vorrei proseguire sulla stessa falsariga, scendendo un po’ più in dettagli di tipo architetturale ma, anche, facendo una breve analisi della filosofia progettuale che ispira i due principali protagonisti del mercato delle gpu: ATi, ovvero AMD e nVidia. Con questo non intendo raccontare la storia delle due società ma …

mercoledì 29 aprile 2009 - 8 Commenti

Dopo aver passato in rassegna le varie fasi della “costruzione” delle geometrie di una scena 3D ed aver visto come avvenga la transizione da uno spazio di oggetti tridimensionali ad uno a due sole dimenzioni, ovvero il nostro monitor, adesso vediamo qualche implementazione pratica
Poichè, per semplicità di trattazione, si era fatto riferimento ad una generica pipeline 3D, al momento lasciamo da parte le directX10 e gli shader unificati e iniziamo dalle architetture a shader dedicati; anzi, per la precisione, partiamo dalla Fixed Function Pipeline, quella tipica delle dx7, per intenderci, …

mercoledì 22 aprile 2009 - 18 Commenti

Il nome di 3dfx, per chi è appassionato di 3D e videogame su pc, evoca, da sempre, particolari suggestioni e suscita emozioni e ricordi in cui la realtà e il mito finiscono col confondersi.
Quel che è certo è che 3dfx non ha inventato il 3D e neppure è stata la prima a farne un’implementazione su pc.
Ha, però, l’enorme merito di averlo reso fruibile al popolo del computer, al quale, grazie alla possibilità di acquistare un acceleratore 3D ad un prezzo, per l’epoca, relativamente abbordabile, ha visto, improvvisamente, aprirglisi davanti un …

mercoledì 15 aprile 2009 - 10 Commenti

Nello scorso articolo avevamo iniziato a descrivere le tecniche di antialiasing utilizzate dai produttori di chip grafici e si era visto come l’approccio iniziale avesse privilegiato le soluzioni di tipo FSAA, con l’adozione di tecniche di supersampling. Queste tecniche risultavano molto pesanti dal punto di vista computazionale, motivo per cui si è deciso di seguire un approccio diverso che potesse garantire risultati qualitativamente apprezzabili, soprattutto nei confronti di un tipo particolare di aliasing, quello definito jagged o stairstep, senza penalizzare troppo le prestazioni. La soluzione è stata quella di ricorrare …

mercoledì 8 aprile 2009 - 12 Commenti

Nella scorsa puntata erano state sommariamente descritte le principali forme di aliasing ed erano state introdotte nozioni di carattere teorico sugli algoritmi di antialiasing. Oggi si farà cenno alle tecniche adottate in concreto, sui chip grafici, per tentare di ridurre questo tipo di disturbi.
Iniziamo subito col dire che le tecniche comunemente utilizzate fanno ricorso ad algoritmi di sovracampionamento con filtraggio di tipo lineare o bilineare, operanti a livello di screen space. Aggiungiamo alcune considerazioni sul comportamento dell’occhio umano, che possono aiutare a capire meglio la natura di certe scelte a …

mercoledì 1 aprile 2009 - 5 Commenti

Nell’ultima puntata di questa rubrica, si era arrivati al termine delle operazioni di tipo geometrico e si era riempito lo z-buffer. In questa parte, saltiamo le operazioni di rasterizzazione su cui si tornerà in seguito, per introdurre l’argomento FILTRI. Per farlo, inizieremo dal cosiddetto antialiasing.
La motivazione della scelta è presto detta: il filtro antialiasing classico, noto anche come box filter, è applicato, nelle ROP’s, sui soli bordi dei poligoni, i cui valori sono contenuti all’interno del depth buffer o z-buffer; per questo motivo, è noto anche come EDGE ANTIALIASING. Quindi, …