PDA

View Full Version : NV30-35, R300-R350 e numero transistor


shodan
04-03-2004, 13:08
Ciao a tutti,

apro questa discussione dal titolo bruttissimo per chiedervi un parere tecnico sull'attuale situazione sei chip grafici, più precisamente vorrei sapere cosa ne pensate dell'organizzazione interna dei moderni processori grafici e del numero di transistor necessari a crearli. So che così detto non si capisce molto, ma più avanti cercherò di essere più chiaro.

Ricapitoliamo i dati dei moderni chip grafici:

-) R300-R350: circa 110.000.000 di transistor, 8 pipeline, 1 TMU per pipe, 4 vertex unit, 4 pixel shader unit;
-) NV30-35: circa 135.000.000 di transistor, 4/8 pipeline, 2/0 TMU per pipe, 1 FP Array (3 vertex unit), 4? pixel shader unit;

I futuri chip si vocifera che avranno:

-) R420-423: circa 170.000.000 di transistor, 8 pipeline, 2 TMU per pipe (gli altri dati non li conosco);
-) NV40: crica 210.000.000 d transistor, 16 pipeline, 1 TMU per pipe (gli altri dati anche qui mi sono ignoti).

La mia domanda a questo punto è: avete una vaga idea di quanti transistor siano assegnati a alle varie unità logiche che compongono i chip? Cioè per esempio la parte VS di quanti transistor si compone? Vi chiedo questo perchè mi domando come sia possibile per l'NV40 "ospitare" 16 pipe con 210 milioni di transistor quando il suo predecessore con 135 milioni di transistor può vantare solo 4 pipeline (in alcuni casi particolari 8). D'altro canto questo dato sarebbe in linea osservando le soluzioni di ATI (110 milioni di transistor per 8 pipe... quindi 210 milioni per 16 pipe sembrerebbe realistico).

So che si sta parlando di dati non pubblicati dalle varie case e che quindi ni massima parte possiamo fare solo speculazioni; però se queste sono sostenute da argomentazioni tecniche penso che potranno comunque risultare interessanti e "illuminanti".

Spero di non essere stato troppo noioso...

CIAO! :)

shodan
05-03-2004, 09:09
Azz ragazzi non interessa a nessuno?

CIAO! :)

shodan
07-03-2004, 11:52
UP! :)

asdasdasdasd
14-03-2004, 22:15
interessante ma non saprei cosa dire... ne so quanto te :D

quindi up :sofico:

checo
14-03-2004, 22:43
bella domanda, cerco di spiegarlo in modo empirico

prendiamo per esempio una cpu , hammer che ha 106 milioni di transistor

più di mezzi sono per la cache l2 quindi si scenda a 50

guarda sta immagine dove viene evidenziata la fpu dell' hammer
http://www.chip-architect.net/news/Opteron_FloatPnt_Core.jpg

fatti 2 conti e calcoli che la fp unit di un hammer ha circa 8 mln di transistor supponendo che la densità sia uguale per ogni area del chip

ora una pipe di render credo sia molto più semplice di questa, diciamo sui 5 mln di transistor, mentre una vs unit o ps unit stia sui 10.

ovviamente queste sono mie supposizioni campate su una immagine;)

shodan
14-03-2004, 23:25
Originariamente inviato da checo
bella domanda, cerco di spiegarlo in modo empirico

prendiamo per esempio una cpu , hammer che ha 106 milioni di transistor

più di mezzi sono per la cache l2 quindi si scenda a 50

guarda sta immagine dove viene evidenziata la fpu dell' hammer
fatti 2 conti e calcoli che la fp unit di un hammer ha circa 8 mln di transistor supponendo che la densità sia uguale per ogni area del chip

ora una pipe di render credo sia molto più semplice di questa, diciamo sui 5 mln di transistor, mentre una vs unit o ps unit stia sui 10.

ovviamente queste sono mie supposizioni campate su una immagine;)

Ciao checo,
in effetti visto che in base a quello che c'è in giro si tende a raggruppare in macroblocchi logici separati e con funzioni diverse le varie unità che compongono il chip grafico, la tua è una supposizione decisamente plausibile. In particolare questo mi sembra vero per le unità VS, che in genere sono in numero diverso da quelle che saranno le pipeline (es: l'R300 ha 4 VS contro 8 pipe, l'NV30 ha 3 unità VS contro le sue 4 pipe).

Per il discorso relativo ai PS credo che la situazione sia un po' differente: nell'R300 se non vado errato ogni pipe ha la propria unità PS, quindi incrementando il numero di pipe non si incrementerebbe solo il numero di transistro ad esse necessarie ma anche quello relativo alle unità PS proprie di ogni pipe (mi sono espresso in modo molto rozzo ma spero di aver reso l'idea).

Per l'NV30 invece le cose mi sembra stiano diversamente, cioè da quello che leggo questo chip ha unità PS separate dalle pipe "nude e crude", quindi in questo caso dovrebbe essere possibile aumentare il numero di pipe senza per questo aumentare anche le unità PS. In questo caso però nelle applicazioni che usano le unità PS queste ultime potrebbero essere un collo di bottiglia, in quanto potrebbero non riuscire a completare il lavoro passatogli delle pipe di rendering. In pratica dovrebbe essere proprio questaquesta suddivisione logica che compone il CineFX proprio delle GeForce FX; il che garantisce un'ottima flessibilità ma comporta anche un impatto prestazionale rispetto a una soluzione più tradizionale (come quella di casa ATI).

Certo non sono un tecnico e come detto mi esprimo in modo rozzo; inoltre queste sopra sono solo "intuizioni" che ho eleborato leggendo le varie review sulle ultime schede e mettendole a paragone con quelle che sono i rumors degli ultimi giorni riguardanti in nuovi chip grafici.

Potrei aver detto una grande sfilza di fesserie ma spero che qualcosa si salvi :p

CIAO! :)

checo
14-03-2004, 23:32
le differenze tra i due chip sono notevoli in più non viene mai rilasciato nulla di tecnico a differenza di quanto accade per le cpu .

shodan
14-03-2004, 23:39
Originariamente inviato da checo
le differenze tra i due chip sono notevoli in più non viene mai rilasciato nulla di tecnico a differenza di quanto accade per le cpu .

E si è verissimo... spesso per le VPU (e più in generale i chip grafici) bisogna affidarsi alla cara vecchia sfera di cristallo (mi raccomando non al pendolino di Mosca che non ne azzecca una :D) o a qualche esperto che possa interpretare in modo logico i comportamente dei vari chip... ;)

CIAO! :)

yossarian
01-04-2004, 03:01
non è facile rispondere per una serie di motivi; innanzitutto, come hai sottolineato, molto dipende dall'organizzazione interna del chip. Ci sono, ad esempio, circuiti che è possibile utilizzare per più funzioni. Ad esempio, le operazioni comppiute dalle unità logiche, di qualunque circuito facciano parte, non sono molto differenti tra loro. Se quindi si è bravi ad organizzare il lavoro del chip in modo che uno stesso insieme di circuiti possa svolgere operazioni relative a più blocchi, si ha un notevole risparmio di transistor. La tendenza è proprio quella di andare verso unità di calcolo di tipo universale, tanto che si vocifera che entro i prossimi 4 o 5 anni, si avranno gpu composte da unità di calcolo in grado di processare indifferentemente dati relativi a vertici, a pixel o a texture; lo spazio dedicato alle unità di calcolo vere e proprie sarà minore e si avranno enormi cache on chip e frequenze di funzionamento molto elevate (ben al di sopra del Ghz).
Altra difficoltà è dovuta al fatto che, ad esempio, nel caso di R3x0 e NV3x siamo di fronte a tipologie di pipeline profondamente diverse. Quelle dell'R3x0 sono di tipo più tradizionale, non molto lunghe e, hanno un minor numero di registri temporanei, anche se la loro capienza è maggiore rispetto a quelli dell'NV3x e, quindi, ogni singola pipeline richiede l'impiego di un minor numero di transistor. Le pipeline dell'NV3x sono molto più lunghe, composte da unità di calcolo non concentrate in blocchi, ma dislocate lungo la pipeline, con più punti di spilling e, ciascuna, teoricamente in grado di lavorare sui dati di più pixel in contemporanea (cosa che in pratica diventa possibile in poche occasioni, a causa della scarsa capacità dei registri interni). Tieni presente anche che, seppure in misura minima, sul numero dei transistor incidono anche i circuiti dedicati ai calcoli relativi al FA, all'AA, al LoD ecc.; in questo caso si vede che NV ha utilizzato un bit in più rispetto ad ATi sia per l'AF che per il LoD; questo si traduce in una migliore implementazione ma in un maggior costo in termini di transistor. C'è da aggiungere che ATi si è dimostrata finora più brava della rivale nell'utilizzare lo stesso circuito per più funzioni; questo non significa che però, con NV40, nVIDIA non abbia raggiunto la rivale su questo terreno.
Fatto questo preambolo diciamo che, ad esempio, nel caso dell'R3x0, circa il 43% dello spazio interno è occupato dalle 8 pipeline di rendering che sono quelle che svolgono il lavoro più "pesante"; ognuna ha una TMU, due unità FP24 vect (da 3 elementi ciascuna), due unità FP24 scal, una unità FX16, 32 registri permanenti e 24 registri temporanei di tipo INT16 bit (le unità FP occupano più spazio rispetto alle unità FX).
Lo spazio riservato alle unità VS si aggira intorno ad un 25% del totale. Nell'R3x0 si hanno 4 unità vettoriali FP128 ciscuna con in parallelo un'unità scalare FP32; nell'NV3x ci sono 3 unità vettoriali full FP128 (per full FP128 intendo 4 unità FP32 in parallelo).
Un altro 14% è riservato al bus ram video-gpu;
Un 8% alle funzioni 2D e un 10% circa alla gestione del canale tra scheda video e mobo.
Infine ci sono i transistor presenti nel package dalla cui disposizione dipende in parte la capacità di salire in frequenza della gpu e di cui non ho tenuto conto in questo computo.

Per NV3x i dati dovrebbero essere simili con un leggero incremento dello spazio riservato ai PS e un leggero decremento relativo alle unità VS (anche se le pipeline sono la metà numericamente parlando); ciascuna pipeline di rendering è composta da 2 unità full FP32 (ciascuna da 4 elementi), 1 unità FX12, 2 TMU, 32 registri permanenti e 32 registri temporanei da 8 bit INT ciascuno; in aggiunta ci sono altri registri tipici delle recirculating pipeline, che svolgono altre funzioni, come ad esempio fissare il numero massimo di cicli all'interno della pipeline (la loopback table).
Se poi si prendono in esame chi ancora più vecchi, antecedenti alla GF4, c'è da tener conto che parte dello spazio era occupato dai circuiti che svolgevano calcoli relativi alle FF (fixed function, ossia il motore t&l di prima generazione), presente sulle GF1 e 2 e sulle Radeon, che lavoravano in parallelo con quelli che svolgevano calcoli in virgola fissa.

La situazione che hai descritto (mi riferisco a shodan) e che hai attribuito all'NV30, riguarda in vece il Volari che ha un numero di pipeline doppio rispetto a quello delle TMU; in pratica ogni TMU lavora per due pipeline processando, ad ogni ciclo, i dati relativi all'una o all'altra. Questo nel tentativo di avere un pixel fillrate più elevato (nel volari duo ultra si hanno sempre 8 texel per ciclo di clock, però si hanno 16 pixel per single pass, perchè tutte le operazioni avvengono on chip, senza accessi ulteriori al framebuffer. Di per sé l'idea non è sbagliata, però temo si sino persi in qualcos'altro (tipo, per esempio, il bus che mette in comunicazione i due chip e attraverso cui passano poco meno della metà dei dati complessivi eleborati ed ha un'ampiezza paragonabile ad un AGP 2x).

Mi spiace di non poterti dare ulteriori informazioni
;)

ciao

checo
01-04-2004, 12:32
come sembre complimenti bel discorso.
mi chiedo perchè non si può avere una immagine come quella che ho postato per una gpu.:(

shodan
01-04-2004, 18:25
Ciao yossarian,

grazie per la risposta.

Quando parli di descrizione che ho erroneamente attributi a NV30 invece che al Volari intendi questa vero?

"Per l'NV30 invece le cose mi sembra stiano diversamente, cioè da quello che leggo questo chip ha unità PS separate dalle pipe "nude e crude", quindi in questo caso dovrebbe essere possibile aumentare il numero di pipe senza per questo aumentare anche le unità PS. In questo caso però nelle applicazioni che usano le unità PS queste ultime potrebbero essere un collo di bottiglia, in quanto potrebbero non riuscire a completare il lavoro passatogli delle pipe di rendering. In pratica dovrebbe essere proprio questaquesta suddivisione logica che compone il CineFX proprio delle GeForce FX; il che garantisce un'ottima flessibilità ma comporta anche un impatto prestazionale rispetto a una soluzione più tradizionale (come quella di casa ATI)."

Sei stato molto chiaro, grazie. :)

yossarian
01-04-2004, 19:03
Originariamente inviato da shodan
Ciao yossarian,

grazie per la risposta.

Quando parli di descrizione che ho erroneamente attributi a NV30 invece che al Volari intendi questa vero?

"Per l'NV30 invece le cose mi sembra stiano diversamente, cioè da quello che leggo questo chip ha unità PS separate dalle pipe "nude e crude", quindi in questo caso dovrebbe essere possibile aumentare il numero di pipe senza per questo aumentare anche le unità PS. In questo caso però nelle applicazioni che usano le unità PS queste ultime potrebbero essere un collo di bottiglia, in quanto potrebbero non riuscire a completare il lavoro passatogli delle pipe di rendering. In pratica dovrebbe essere proprio questaquesta suddivisione logica che compone il CineFX proprio delle GeForce FX; il che garantisce un'ottima flessibilità ma comporta anche un impatto prestazionale rispetto a una soluzione più tradizionale (come quella di casa ATI)."

Sei stato molto chiaro, grazie. :)

si, esatto

ciao