Intel Nehalem: uno sguardo alla nuova architettura

Intel Nehalem: uno sguardo alla nuova architettura

In attesa del debutto delle prime cpu Intel Core i7 analizziamo l'architettura della prossima generazione di processori Intel nota con il nome in codice di Nehalem. Memory controller integrato, bus QPI, ritorno di Hyper-Threading e varie innovazioni caratterizzano queste nuove architetture.

di pubblicato il nel canale Processori
Intel
 

L'architettura della cache in Nehalem

Con le cpu Nehalem Intel introduce importanti novità nell'architettura utilizzata per la cache dei propri processori, giustificate principalmente dalla presenza del memory controller integrato. Con le cpu Core 2 Duo la struttura prevede una cache L1 di ridotte dimensioni specifica per ciascuno dei core, con una cache L2 di elevate dimensioni unificata tra i core. Con le cpu Nehalem si passa ad un'architettura di cache a 3 livelli, dei quali i primi due sono specifici per ogni core mentre la cache L3 è unificata.

cache_l2.jpg (9877 bytes) cache_l3.jpg (19693 bytes)

La cache L1 è da 64 Kbytes, divisa in due blocchi da 32 Kbytes ciascuno per dati e istruzioni: si tratta degli stessi quantitativi integrati da Intel nella cache L1 delle cpu Core 2 ma la latenza è superiore essendo passata da 3 cicli a 4 cicli. L'implicazione è un impatto negativo sulle prestazioni velocistiche, giustificato dalla volontà di raggiungere frequenze di clock più elevate con i processori Nehalem rispetto ai target delle cpu Core 2.

La cache L2 differisce in modo sensibile rispetto a quella delle cpu Core 2: non è più di tipo unificato tra i core ma specifica per ognuno, in quantitativo pari a 256 Kbytes contro valori variabili sino a 6 Mbytes per ogni coppia di core nelle cpu della famiglia Penryn. Un quantitativo di cache L2 così ridotto opera di fatto come un buffer di dati tra cache L1 e cache L3, nella quale risiede la maggior parte delle informazioni memorizzate. Grazie alla riduzione nella dimensione della cache L2 Intel ha potuto implementare memoria molto veloce, con una latenza di 10 cicli di clock dal load alla fuoriuscita dei dati dalla cache.

La cache L3 viene per la prima volta introdotta da Intel in processori destinati anche a sistemi desktop e notebook; il suo quantitativo è pari a 8 Mbytes ed è di tipo unificato tra i core. Per certi versi potremmo vedere questa cache L3 allo stesso livello della cache L2 delle cpu Core 2, con l'inserimento della cache L2 nelle cpu Nehalem che opera come un veloce buffer dati tra cache L1 e cache L3. Analizzando più in dettaglio, tuttavia, emerge una importante differenza: la cache L3 nelle cpu Nehalem è unificata tra tutti i 4 core presenti nella cpu, mentre con le cpu Core 2 Quad l'architettura MCP porta ad avere due cache L2 da 6 Mbytes ciascuna, associate rispettivamente a una coppia di core.

L'architettura delle cache nelle cpu Nehalem è di tipo inclusivo, tecnica già adottata da Intel in precedenza: questo implica che i dati contenuti nella cache L1 sono replicati anche nella cache L2, e quanto presente nella cache L2 è replicato nella cache L3. Un approccio di questo tipo porta ovviamente a perdere parte della capacità complessiva della cache in quanto alcuni dati sono replicati tra le cache, ma per Intel porta ad alcuni vantaggi prestazionali con una riduzione della latenza.

Un esempio chiarisce facilmente questo concetto: nel momento in cui un dato non è disponibile all'interno della cache L3, l'architettura inclusiva fa si che il dato non sia sicuramente presente anche all'interno delle cache L1 oppure L2. La cpu, quindi, si indirizzerà immediatamente verso il memory controller richiedendo quel dato, non perdendo tempo accedendo alla cache L2 e quindi alla cache L1 alla ricerca di quella informazione.

 
^