Ora per rendervi più chiaro il tutto facciamo un passo indietro ed andiamo a spiegare bene ogni particolare! Qui sotto trovate l’immagine di uno Stream Processor.

In sintesi uno Stream Processo o Processor Core è un microprocessore completo dotato di due ALU e una FPU, non ha cache e la sua dote è quella di ripetere tonnellate di operazioni matematiche! Un SP spende gran parte del suo tempo lavorando sui pixel o vertex data e non è importante il fatto che non abbia cache. Un solo SP è abbastanza inutile, ma se inserito insieme ad altri in unità come le SM (Streaming Multiprocessor) si inzia a sentire la sua potenza.
Qui sotto l’immagine di una SM:

Come si vede dalla foto una SM è un array di SP, per essere precisi di 8 SP, sotto dei quali ci sono altre due unità, le SFU (Special Function Unit). Ogni SFU ha quattro FP units che sono usate per i calcoli vari (come le funzioni seno e coseno ad esempio) e per l’interpolazione come per i filtri anisotropici e le texture filtering. Inoltre c’è anche una MT issue Unit che smista le istuzioni a tutti gli SP e agli SFU.
In aggiunta a queste unità c’è una piccola instruction cache, una data cache di sola lettura e 16KB di memoria condivisa Read/Write (Shared Memory). Con tutti questi core in una singola SM il controllo e la prevedibilità sono molto importanti per far funzionare tutto al meglio, infatti la cache è funziona un po’ come nei nel local store dei Cell, in cui non è una vera e propria cache, ma un software-managed data store dove le latenze sono sempre prevedibili.
Ora facciamo un altro passo in più ed adiamo a vedere il TPC (Texture Processor Cluster):

NVIDIA disegno l’architettura della propria GPU per essere modulare, così un singolo TPC può essere costituito da un variabile di SM. Come abbiamo già anticipato prima, le SM nel G80 erano due, ora in GT200 ne ritroviamo tre.
Le componenti del TPC non sono cambiate, è sempre costituito dalle SM, da alcuni blocchi di controllo logico e texture. Inoltre includono anche la texture cache L1.
La modularità dell’architettura la ritroviamo anche negli SPA (Stram Processor Array) che sono composti da più TPC. Anche qui le differenze con la precedente architettura sta nel maggior numero che ritroviamo in GT200, credo vi basti guardare le immagini sottostanti per capirlo!
SPA G80/G92:

SPA GT200:

Ed ora per concludere riassuntino per farvi tornare tutti i conti:
1 TPC = 3 SM
1 SM = 8 Processing core
TOTALE 10 TPC = 10 x 3 SM = 10 x 3 x 8 Processor Core = 240 Processor Core

I Processor Core sono basati sul tradizionale design degli SP che sono in grado di eseguire operazioni matematiche su interi e su numeri (Integer) e in virgola mobile (Floating Point), operzioni di memoria e di logica e ogni Processing Core è un processore “hardware-multithreaded” con più stadi di pipeline in grado di eseguire un istruzione per ogni thread ad ogni ciclo.
Esistono differenti tipi di Thread come i pixel, vertex, geometry. Per i processi grafici i thread eseguono uno shader program e molti thread affini spesso eseguono simultaneamente lo stesso shader program per migliorare l’efficienza.