All'interno di Tegra 4

Con Tegra 4 Nvidia punta sull'efficienza. Dopo aver subito le ironie della concorrenza per i consumi sotto carico, l'azienda prova a riscattarsi. Ne abbiamo discusso proprio con la casa di Santa Clara. Ecco le novità di Tegra 4 e Tegra 4i.

Avatar di Tom's Hardware

a cura di Tom's Hardware

All'interno di Tegra 4

L'architettura vertex processing di Tegra 4 è essenzialmente la stessa di NV40 - una GPU che molti di voi conosceranno bene, dato che è stata al centro della GeForce 6800 nel 2004. La geometria dei dati dello stadio vertex processing confluisce all'interno del cosiddetto "triangle setup engine", il quale può produrre un triangolo visibile in cinque cicli di clock.

Da qui i triangoli sono trasformati in pixel. Tegra 4 fa una combinazione di raster e early-Z detection a una velocità di otto pixel per clock, eliminando i dati che non saranno visibili subito dalla pipeline e risparmiando all'engine di lavorare inutilmente su pixel occlusi. Non dovrebbe sorprendere, dato il background di Nvidia, questo approccio raccoglie a piene mani dal settore desktop.

In che modo "l'immediate-mode renderer" di Nvidia differisce dal metodo "tile-based deferred" usato dal core PowerVR di Imagination Technologies e di conseguenza la serie di GPU Apple Ax e i SoC Intel Atom? Prima dello stadio di rasterizzazione in una architettura TBDR, i frame sono suddivisi in tile e la geometria dei dati risultante è posta all'interno di un buffer di memoria, dove i pixel occlusi sono processati. Tanto più che all'aumentare della complessità geometrica di una scena, il processo di rimozione di una superficie nascosta non si comporta altrettanto bene.

Diagramma blocchi Tegra 4 - clicca per ingrandire

Torniamo a Tegra 4. "Color" e "Z data" sono poi compressi tramite un algoritmo lossless. Questo è particolarmente utile per consentire l'abilitazione dell'anti-aliasing senza un grande impatto sul bandwidth di memoria, poiché i valori contenuti completamente all'interno di una primitiva tendono a essere gli stessi. Perciò, si fanno comprimere bene, portando ad alti rapporti di compressione. In un approccio lossless questo significa che il dato è compresso solo quando può esserlo, quindi dovete ancora allocare spazio in memoria - non c'è risparmio in questo caso. Un sacco di bandwidth può però essere conservato.

Lo stadio raster alimenta la fragment pipeline di Tegra 4, che può processare quattro pixel per clock. Come abbiamo detto, ogni pixel pipeline ha tre ALU con quattro MADs, più un'unità multi funzione, e questo consente a diverse combinazioni di istruzioni VLIW di fare cose differenti - normalizzare e combinare, miscelare, calcoli di illuminazione tradizionali e così via. Tegra 4 espone 24 registri FP20 per pixel, rispetto ai 16 di Tegra 3, consentendo di avere più thread attivi in ogni momento.

Le quattro pipeline hanno la propria cache L1 in lettura e scrittura, e sono servite da una cache texture L2 condivisa - una nuova funzione di Tegra 4. Naturalmente si ottiene una localizzazione migliore per il texture filtering, e questo consente nuovamente di risparmiare bandwidth di memoria. Secondo Nvidia, la cache è anche davvero ben ottimizzata per operazioni di tipo imaging 2D.

Anche se gli ingegneri di Nvidia mettono l'accento sui risparmi di bandwidth lungo la GPU, bilanciando un incremento rilevante nel texture rate, questo richiede un sottosistema di memoria in grado di mantenere occupate le risorse del SoC. Tegra 3 ha un'interfaccia a singolo canale e 32 bit. Tegra 4 usa due canali a 32 bit, insieme a memoria LPDDR3 fino a 1,866 MT/s, per spingere un throughput fino a tre volte maggiore rispetto alla LPDDR2-1066.