Intel Sandy Bridge: analisi dell'architettura

Intel Sandy Bridge: analisi dell'architettura

Dopo aver valutato le capacità prestazionali delle prime CPU Intel della famiglia Sandy Bridge passiamo ad un'analisi dell'architettura, frutto di una profonda evoluzione di quanto di valido Intel ha implementato in Nehalem.

di pubblicato il nel canale Processori
Intel
 

Last Level Cache, Ring bus e System Agent

Abbiamo già evidenziato come uno degli elementi peculiari delle soluzioni Sandy Bridge sia rappresentato dalla piena integrazione tra CPU e GPU all'interno dello stesso componente di silicio. Analizzando più in dettaglio l'architettura di questi processori scopriamo tuttavia come l'integrazione sia stata spinta ad un livello ancor più elevato in Sandy Bridge rispetto a quanto fatto sino ad ora da Intel.

slide_4.jpg (55222 bytes)

In Sandy Bridge troviamo CPU e GPU che condividono la cache di terzo livello, indicata da Intel come Last Level Cache o LLC. Memory controller e controller PCI Express sono nuovamente integrati all'interno della CPU. Troviamo anche un nuovo componente, indicato con il nome di System Agent, che di fatto implementa tutte le funzionalità che in passato sono state riservate al north bridge del chipset.

Particolarmente interessante è l'implementazione sviluppata da Intel per la Last Level Cache, che vede un design di tipo Ring composto da 4 anelli: 32 byte Data ring, Request ting, Arknowledge ring e Snoop ring. Si tratta dello stesso ring sviluppato da Intel per le soluzioni Nehalem EX e Westmere EX, le soluzioni per la famiglia Xeon di fascia più alta disponibili sul mercato.

Il ring è di tipo fully pipelined, pertanto opera alle stesse frequenze di clock e tensione della componente core. Il ring non è bidirezionale, ma i punti di stop presenti all'altezza dei core, della GPU e del System Agent permettono di fatto di andare in direzione up e down. Il ring bus gestisce coherency, ordering e core interface per bilanciare al meglio la distribuzione delle richieste all'interno del ring; non c'è più un arbitrer centralizzato come in Nehalem, cosa che migliora sensibilmente la scalabilità soprattutto al crescere del numero dei core

Gli accessi al ring sono configurati in modo tale da seguire sempre il path più corto, minimizzando la latenza complessiva. Intel dichiara una latenza della cache LLC variabile da da 26 a 31 cicli di clock, inferiore ai 36 cicli di clock di media delle soluzioni Nehalem.

La bandwidh che un ring configurato in questo modo mette a disposizione è estremamente elevata: per ogni core abbiamo infatti 96 Gbytes al secondo, per un totale di 384 Gbytes al secondo di picco prendendo quale riferimento un processore Sandy Bridge con architettura quad core.

La cache è divisa in porzioni in funzione del numero di core presenti; ogni core, tuttavia, può accedere in modo completamente indipendente a qualsiasi componente della LLC. Ogni agent può accedere a tutti i dati presenti nella LLC, indipendentemente da chi abbia allocato la specifica line, dopo che è stato eseguito il check dei memory range. La quantità di cache LLC alla quale può accedere la GPU può essere limitata; questo non avviene invece mai per la CPU. Il limite da lato GPU è funzione del tipo di SKU, dal quantitativo di LLC disponibile e dal tipo di sottosistema video che è stato integrato nel processore.

In Sandy Bride Intel ha implementato 3 differenti power domains: il primo, fisso, è per il System Agent, il secondo per i Cores e il Ring di tipo variabile e l'ultimo dedicato alla componente video, anche in questo caso di tipo variabile.

Chiudiamo con il System Agent, nome che di fatto identifica quella che nelle architetture Nehalem era noto come componente Uncore. Questo elemento contiene al proprio interno power control unit, DMI, memory controller DDR3 dual channel, controller PCI Express a 16 linee elettriche e display engine per gestire il segnale video. Il ring stop del system agent non ha bandwidth massima sino a 96 Gbytes al secondo come gli altri, in quanto è limitato dalla bandwidth del controller PCI Express e del memory controller DDR3.

 
^