![]() |
||||||||||
| « Torna all'articolo - Stampa | ||||||||||
|
||||||||||
|
Pagina 1 - L'approccio di Intel: Tick-Tock Nehalem è il nome in codice con il quale vengono indicate le nuove generazioni di processori Intel, attese in versioni per sistemi desktop, server e notebook con i primi modelli al debutto nel corso del mese di Novembre. Sappiamo che le prime cpu Nehalem che verranno commercializzate da Intel prenderanno il nome di Core i7 e saranno specificamente destinate a sistemi desktop di fascia medio alta; al momento stiamo analizzando questi processori in redazione ma non ci è possibile fornirne alcun tipo di dettaglio prestazionale prima del lancio ufficiale.
Con questo articolo, il primo di una serie incentrata sulle nuove cpu Intel, vogliamo approfondire le caratteristiche architetturali di questi processori: questo articolo servirà quale riferimento tecnico per meglio interpretare i risultati prestazionali ottenuti da questi processori a confronto con le soluzioni Intel Core 2 Quad attualmente in commercio. L'importanza delle cpu Nehalem è molto elevata per Intel: parliamo infatti di un'architettura completamente nuova, che si differenzia in modo sensibile da quanto implementato da Intel con le soluzioni della famiglia Core 2.
Il produttore americano segue un approccio noto con i termini Tick e Tock. Ogni anno Intel presenta una nuova generazione di processori, che possono o implementare un'architettura completamente nuova oppure essere costruiti utilizzando una nuova tecnologia produttiva più sofisticata rispetto a quanto in precedenza disponibile. Prendendo come riferimento le cpu Nehalem, a queste corrisponde una fase Tock, cioè quella di una nuova generazione di microarchitettura completamente differente rispetto alla precedente. Lo stesso era accaduto 2 anni fa con il debutto delle cpu della famiglia Merom, che hanno poi preso il nome commerciale di Core 2 Duo e Core 2 Quad a seconda delle versioni; in quel caso il cambio architetturale è avvenuto in sostituzione delle cpu Pentium D. Le fasi Tick indicano l'utilizzo di un nuovo processo produttivo: le cpu Nehalem sono costruite con tecnologia a 45 nanometri, la stessa adottata dalle cpu della famiglia Penryn (Core 2 Duo e Core 2 Quad) attualmente disponibili in commercio. Alla fase Tick corrisponde tipicamente anche un refresh dell'architettura, con l'implementazione di alcune funzionalità complessivamente considerate minori; ad esempio, con le cpu Penryn ha debuttato la tecnologia produttiva a 45 nanometri e contestualmente sono state introdotte le istruzioni SSE4 non presenti nelle soluzioni della famiglia Merom. L'evoluzione a 32 nanometri di tecnologia produttiva delle cpu Nehalem è nota con il nome di Westmere; i processori di questa famiglia debutteranno non prima della fine del prossimo anno, anche in questo caso con presumibili innovazioni e migliorie ma senza stravolgimenti dell'architettura. Per quale motivo Intel ha scelto di presentare le proprie soluzioni con questo tipo di cadenza? L'alternativa potrebbe essere quella di introdurre nuove architetture di processore congiuntamente ad un nuovo processo produttivo, ma questa strada è ricca di numerose variabili che possono pregiudicare la riuscita di un progetto e storicamente non è stata quasi mai adottata. La scelta è quindi quella di presentare nuove architetture utilizzando tecnologia produttiva avviata da tempo, con la quale non si corrono rischi particolari di rese inferiori alle aspettative, utilizzando per i processi più sofisticati architetture che sono già state evolute e sviluppate da tempo. Pagina 2 - Gli elementi base delle cpu della famiglia Nehalem Prima di approfondire in dettaglio quelle che sono le caratteristiche architetturali delle cpu Nehalem, riassumiamone gli elementi base comuni alle varie versioni per sistemi server, desktop e notebook. E' bene ricordare come il processo di ingegnerizzazione di nuove architetture di processore Intel sia un progetto che mira ad ottenere cpu adatte all'utilizzo in tutti e 3 i settori menzionati, modificando architettura e caratteristiche delle cpu su quegli elementi specifici che possono fare la differenza in uno dei segmenti verticali del mercato dei processori. Per meglio chiarire questo concetto citiamo alcuni esempi: per le cpu destinate all'utilizzo in sistemi notebook si punta al contenimento dei consumi, mentre per le soluzioni server possono venir implementati quantitativi di cache più elevati. In generale analizzando le caratteristiche tecniche delle cpu Nehalem a confronto con quelle della famiglia Core 2 appare evidente come il team di sviluppo abbia voluto implementare funzionalità che portano i maggiori benefici prestazionali in ambito server, con un approccio che per molti versi possiamo considerare simile a quanto svolto in passato da AMD con il debutto delle prime cpu della famiglia K8, modelli Opteron e Athlon 64. Questi gli elementi base che caratterizzano le cpu della famiglia Nehalem:
Le prime versioni di processore Nehalem con architettura quad core, le soluzioni della famiglia Core i7, integreranno 731 milioni di transistor costruiti utilizzando processo produttivo a 45 nanometri. Le successive evoluzioni di processore Nehalem, fermo restando il processo produttivo, sfrutteranno l'architettura modulare che è stata implementata nel progetto Nehalem in fase di design. Questi processori, infatti, possono essere facilmente modificati per implementare un differente numero di core, o integrare al proprio interno differenti tipologie di funzionalità rispetto a quanto presentato nelle prime versioni al debutto.
Due esempi possono meglio chiarire questa flessibilità: il primo è quello delle cpu Nehalem-EX, soluzioni con 8 core fisici specificamente destinate all'utilizzo in sistemi server che debutteranno nel 2009 la cui esistenza è stata anticipata da Intel in occasione dell'IDF Fall 2008. Il secondo è l'integrazione, in future versioni di processore Nehalem destinate al segmento di fascia più bassa del mercato, di una GPU: con questo prodotto Intel intende presentare la propria alternativa alle cpu AMD della famiglia Fusion, dotate al proprio interno sia di componente CPU che di quella GPU. E' interessante evidenziare come con questa architettura di processori Intel di fatto abbia scelto non tanto di aumentare il numero di core, quanto di rendere ognuno di quelli presenti ancor più efficienti rispetto a quanto ottenuto con le soluzioni della famiglia Core 2. L'introduzione della tecnologia Hyper-Threading è una tecnica efficace per incrementare il parallelismo di esecuzione senza dover inserire nel die un numero elevato di transistor in più, ma vedremo nelle pagine seguenti come Intel abbia operato con Nehalem da un lato affinando l'execution engine alla base delle cpu Core 2, dall'altra introducendo quelle novità architetturali menzionate in precedenza che separano in modo chiaro e netto le cpu Nehalem da quelle di precedente generazione. Pagina 3 - Architettura dell'engine: il cuore delle cpu Nehalem Analizziamo ora l'architettura dei core contenuti nelle cpu Nehalem partendo da quelli che sono i principali elementi dell'architettura Core 2 di Intel; vedremo come Intel abbia scelto di non stravolgere quell'approccio con le cpu Nehalem, a differenza di quanto accaduto con Core 2 rispetto all'architettura NetBurst delle cpu Pentium 4 e Pentium D, operando nella direzione di un affinamento di quanto di valido era presente in Core 2.
Le cpu della famiglia Core hanno per la prima volta implementato una Execution Unit a 4 vie, capace quindi di eseguire sino a 4 operazioni di decode, rename e retire per ogni ciclo di clock. Questa potenza elaborativa teorica a disposizione delle cpu Core è stata difficilmente sfruttata a fondo dal codice disponibile sul mercato: per questo motivo Intel è intervenuta in Nehalem, espandendo il più possibile i buffers interni così da incrementare le condizioni nelle quali il notevole parallelismo interno di questa architettura potesse venir sfruttato al meglio. Vedremo in seguito come questo rivesta implicazioni dirette anche sulla tecnologia Hyper-Threading, a sua volta fortemente influenzata dall'integrazione del memory controller. Nelle cpu Core 2 Intel ha introdotto le cosiddette Macrofusion: si tratta della possibilità di gestire le istruzioni TEST/CMP seguite da un conditional branch, così che possano venir decodificate, eseguite e ritirate come se si trattasse di una singola istruzione. In Nehalem Intel ha mantenuto questa interessante funzionalità estendendola ad altre tipologie di condizioni riassunte nello schema seguente:
Con le architetture Core 2 le Macrofusion potevano venir eseguite solo con applicazioni a 32bit; in Nehalem questa funzionalità è stata estesa anche al codice a 64bit. Previsti dunque incrementi prestazionali con applicazioni di questo tipo in Nehalem rispetto a quanto ottenibile con le architetture della famiglia Penryn. Un'altra delle caratteristiche del front end del processore Nehalem mutuata dall'architettura delle cpu Core 2 è il Loop Stream Detector, logica interna al processore responsabile di individuare la presenza di loop nel software che viene eseguito. Nel momento in cui il software esegue un loop, il Loop Stream Detector (LSD) interviene sospendendo le operazioni di stima delle branches e inviando le istruzioni direttamernte dal LSD.
Nelle architetture Core 2 l'LSD è stato inserito tra Fetch e Decode, con una capacità massima di 18 istruzioni; nelle soluzioni Nehalem è stato spostato oltre la fase di decode, potendo memorizzare sino a 28 Micro-Ops all'interno dell'LSD con quindi una capacità complessiva più elevata che con le soluzioni Core 2. Oltre a gestire più istruzioni contemporaneamente attraverso il Loop Stream Detector, la nuova implementazione adottata da Intel nelle cpu Nehalem permette di disabilitare un maggior quantitativo di logica rispetto a quanto fatto con le cpu Core 2, intervenendo anche sul decode: questo ha positive ripercussioni in termini di consumo complessivo del sistema. Altre migliorie sono state introdotte a livello dei branch predictor, componente di elevata efficienza nelle architetture Core 2. Intel ha implementato in Nehalem un secondo livello di TLB che è più lento di quello di primo livello ma può analizzare uno storico di più ampia portata, specializzato soltanto in small page (4k) Sono stati inseriti anche dei branch predictor per la cache L2, particolarmente utili secondo quanto anticipato da Intel per velocizzare alcune tipologie di applicazioni quali i database. Sono state implementate ulteriori ottimizzazioni a livello del renamed return stack buffer: questo impedisce che si possano venire a creare delle corruzioni nel return stack, componente che tiene conto in quale locazione di memoria il processore dovrà iniziare ad eseguire le proprie elaborazioni, anche nel caso in cui vi sia stata una errata previsione circa le istruzioni da elaborare all'interno della pipeline da parte dei branch predictor.
Le execution unit delle cpu Nehalem sono molto simili a quanto implementato da Intel nelle soluzioni Core 2: nelle cpu Penryn Intel ha implementato Execution Unit a 4 livelli, supporto SSE a 128bit e tecnologia Super Shuffle. In Nehalem a questo si aggiungono incrementi nella dimensione di varie data structure all'interno del processore, oltre che dell'out of order scheduling window.
Altre innovazioni sono state introdotte a livello di Reservation Station, passate dalle 32 delle cpu Core 2 alle attuali 36; i load buffers sono incrementati da 32 a 48 e lo stesso vale per gli store buffers, passati dai 20 delle cpu Core 2 agli attuali 32. Analizzando nel complesso l'execution engine unitamente al front end delle cpu Nehalem se ne ricava come conclusione che Intel ha scelto di non incrementare l'ampiezza di elaborazione del core nelle cpu Nehalem rispetto a quanto a disposizione con le cpu Core 2, ma di essere intervenuta per fare in modo che questa ampiezza di elaborazione dell'architettura venga sfruttata al meglio eliminando vari potenziali colli di bottiglia interni che minimizzano le prestazioni. Pagina 4 - Hyper-Treading ritorna nelle cpu Intel Abbiamo segnalato in introduzione come una delle principali novità architetturali delle cpu Intel Nehalem sia il ritorno di Hyper-Threading, nome marketing utilizzato dal produttore americano per indicare la propria tecnologia di simulteneous multi-threading o SMT. Questa tecnica era stata implementata inizialmente da Intel con alcune versioni di processore Pentium 4, abbandonata con le cpu Pentium D salvo quelle della famiglia Extreme Edition e non implementata all'interno delle architetture di processore Core 2 Duo e Core 2 Quad. I benefici di questa tecnologia sono evidenti: è possibile avere a disposizione del sistema operativo un numero doppio di core logici rispetto a quelli fisicamente integrati nel processore; nel caso delle prime versioni di processore Core i7 attese al debutto avremo quindi 8 processori logici a partire dai 4 core fisicamente integrati nel processore. Un numero maggiore di core logici permette di ottenere benefici prestazionali con quelle applicazioni che operano in modo parallelo su più core contemporaneamente. Sin dal debutto delle architetture di processore dual core le software house sono state spinte, in primis da Intel, verso lo sviluppo di software che potesse beneficiare della presenza di più processori in parallelo, andando in questo di pari passo con l'evoluzione delle architetture hardware e allontanandosi da un approccio per il quale per ottenere superiori prestazioni era necessario incrementare la frequenza di clock della cpu. Avere a disposizione core fisici completi, e non solo soluzioni logiche come con l'implementazione Hyper-Threading, sarebbe preferibile: detto in altro modo in termini prestazionali un processore quad core con tecnologia Hyper-Threading non raggiungerà mai le stesse prestazioni velocistiche di una cpu a 8 core nativi nel momento in cui si utilizzano applicazioni che sfruttano in parallelo tutti i core. D'altro canto, l'implementazione della tecnologia Hyper-Threading è per Intel relativamente semplice: non implica significative modifiche architetturali e richiede l'utilizzo di un quantitativo di transistor complessivamente ridotto. Hyper-Threading, quindi, rappresenta il connubio ideale tra incremento delle prestazioni velocistiche e costi di produzione.
Gli incrementi prestazionali ottenibili abilitando la tecnologia Hyper-Threading sono ovviamente variabili a seconda del tipo di applicazione utilizzata; Intel ha fornito alcune stime di applicazioni che per loro natura beneficiano della presenza di un numero superiore di Core a disposizione del sistema. Considerando il ridotto costo in termini di die area ci si può domandare per quale motivo la tecnologia Hyper-Threading sia stata reintrodotta con le cpu Nehalem, non venendo implementata in quelle Core 2. La risposta è da trovare in altre novità architetturali implementate in Nehalem che permettono alla tecnologia Hyper-Threading di operare al meglio: parliamo sia del memory controller integrato che in generale di come Nehalem sia un'architettura per sua natura ampia, molto più di quanto non lo fossero le cpu Pentium 4. Il memory controller integrato, soprattutto nell'implementazione triple channel delle prime versioni di processore Core i7, permette di avere a disposizione quel quantitativo di bandwidth della memoria del quale la tecnologia Hyper-Threading ha bisogno per operare al meglio. L'architettura del processore Nehalem è per sua natura molto più ampia rispetto a quanto non lo fosse quella delle cpu Intel Pentium 4, seguendo in questo quanto già visto con le soluzioni Core 2: la conseguenza è una migliore scalabilità complessiva delle prestazioni al crescere dei thread che vengono processati parallelamente.
Quali sono i componenti che Intel ha dovuto raddoppiare all'interno dell'architettura delle cpu Nehalem per poter implementare la tecnologia Hyper-Threading? Abbiamo parlato di relativamente pochi transistor: la logica duplicata è infatti quella dei register state, dei renamed return stack buffer (RSB) e delle large page TLB per le istruzioni. Altre componenti sono o condivise tra i core nel momento in cui HT viene abilitato, oppure divise in due a seconda della tipologia. Pagina 5 - 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.
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. Pagina 6 - Memory controller integrato, QPI e SSE 4.2 L'integrazione del memory controller è uno degli elementi più interessanti nelle architetture Nehalem: per anni Intel ha affermato che utilizzare un memory controller esterno integrato nel chipset rappresentava una strada più efficace e in grado di meglio stare al passo con le evoluzioni del mercato delle memorie, rispetto che integrare nel processore questo componente. Se da un lato le osservazioni di Intel erano corrette, dall'altro i limiti di un memory controller condiviso tra vari processori nelle architetture server Intel pre-Nehalem ha fatto giustamente pensare che un memory controller esterno non fosse la soluzione sempre più corretta. Del resto è l'esperienza di AMD con le proprie cpu a confermarlo: il memory controller integrato porta benefici prestazionali in ogni ambito di utilizzo, ma ha ripercussioni ancor più evidenti in ambito server. Nell'implementazione scelta da Intel per le cpu Nehalem Core i7 troviamo un memory controller DDR3 di tipo triple channel, compatibile con moduli DDR3-1066 oppure DDR3-1333 e capace sulla carta di una bandwidth massima teorica che raggiungerà i 32 Gbytes al secondo con l'ultima tipologia di memoria. Successive versioni di processore Nehalem, attese al debutto nel corso del 2009, continueranno a integrare controller DDR3 ma di tipo dual channel; questa scelta è dettata da ragioni di costo, sia in semplificazione nel design del processore che nell'acquisto di due moduli memoria, più che comprensibili considerando che questi processori verranno posizionati nei segmenti value del mercato. L'integrazione del memory controller nel core permetterà inoltre alle cpu Nehalem di poter accedere ai dati contenuti nel memory controller di altri processori montati nello stesso sistema, con un approccio NUMA (non uniform memory access). Questo sarà ovviamente ottenibile solo in sistemi che utilizzino almeno due processori Nehalem distinti: parliamo di conseguenza delle architetture per sistemi server della famiglia Xeon. L'accesso ai dati contenuti nel memory controller di un processore contiguo avverà con un impatto prestazionale, sia in termini di bandwidth che di latenza, rispetto a quanto ottenibile accedendo ai dati contenuti nel memory controller integrato nel processore; il trade off può essere ridotto utilizzando applicazioni appositamente sviluppate per beneficiare di architetture NUMA.
Con le cpu Core i7 Intel ha introdotto un nuovo bus di collegamento tra processore, chipset e memory controller: parliamo di QPI, QuickPath Interconnect, di fatto il sostituto nelle architetture Intel il Front Side Bus. Con questo nuovo approccio Intel supera tutte le limitazioni del FSB, soprattutto con architetture che prevedano più processori montati sulla stessa scheda madre. La connessione è di tipo point to point, con una capacità di trasmissione inizialmente pari a 6,4 Gigatransfers al secondo, equivalenti a 12,8 Gbytes al secondo; il limite teorico al quale si può arrivare con link bidirezionali è quello di 25,6 Gbytes al secondi per ogni link, con la possibilità di incrementare questo valore in future versioni di processore utilizzando frequenze di trasmissione più elevate. L'approccio seguito da Intel ricorda molto da vicino quello scelto da AMD per le proprie cpu dalla famiglia K8 in poi: parliamo ovviamente di HyperTransport, altro bus point to point che bilancia una ridotta latenza di accesso ad un'elevata bandwidth. Per entrambi gli approcci vi sono notevoli flessibilità in termini di collegamento di più processori, caratteristica che si è rivelata utile per AMD nelle soluzioni server a 4 Socket e che rappresenterà indubbiamente un punto di forza di Intel con le proprie future soluzioni Xeon basate su architettura Nehalem.
Nelle cpu Nehalem sono state integrate alcune nuove istruzioni della famiglia SSE, portando il set alla versione SSE 4.2. Al momento attuale non sono disponibili applicazioni che beneficino specificamente di questo nuovo set di istruzioni, ma è presumibile che alcuni ISV avvieranno l'ottimizzazione del proprio codice anche per queste istruzioni, soprattutto in ambito multimediale. Pagina 7 - Power Management Intel ha implementato una gestione del risparmio energetico particolarmente sofisticata con le cpu Nehalem, incentrata su una ciruciteria integrata nel processore chiamata PCU, Power Control Unit. Questo componente, formato da circa 1 milione di transistor, integra al proprio interno un firmware e opera monitorando in tempo reale le temperature di funzionamento, la corrente e la potenza dei vari core del processore, intervenendo per ottimizzare il consumo complessivo e per abilitare la funzionalità Turbo Memory, analizzata nella pagina seguente.
Dal grafico si nota come ogni Core sia dotato di un proprio PLL: questo implica che la frequenza di clock possa essere selezionata in modo indipendente per ciascuno di essi, in modo quindi simile a quanto implementato da AMD con le cpu Phenom. Al pari delle soluzioni AMD, tutti i core operano allo stesso voltaggio di alimentazione: la circuiteria implementata quindi permette di variare la frequenza di clock indipendentemente dal carico di lavoro degli altri processori ma non di selezionare voltaggi inferiori per quei core che sono in un determinato istante in modalità di risparmio energetico mentre altri sono impegnati in elaborazioni. Per quale motivo Intel non ha implementato dei voltage regulator indipendenti per ciascun Core, così da minimizzare il consumo? Le spiegazioni sono di due tipi: da un lato il costo, unito alla complessità, di un design di questo tipo. Dall'altro le elevate latenze di uscita dagli stadi di più elevato risparmio energetico che si vengono a introdurre nel momento in cui oltre alla frequenza di clock viene gestito in modo indipendente per ogni core anche il voltaggio di alimentazione.
Nei processori Core 2 Duo per sistemi notebook la modalità di risparmio energetico prevede la possibilità, per un processore, di ridurre la propria frequenza di clock nel momento in cui viene mandato in idle, lasciando l'altro core ad operare regolarmente in modalità C0. Il consumo complessivo si riduce, ma non è possibile intervenire a variare il voltaggio di alimentazione prima che anche il core attivo venga portato in modalità idle in quanto ha completato le operazioni con le quali era impegnato. Una riduzione sensibile del consumo complessivo dei core avviene solo quando si sposta verso la fase C6, con la quale il voltaggio di alimentazione viene ridotto al minimo; nel caso in cui ad uno dei due Core venisse richiesto di elaborare, uscendo dallo stato C6, si avrebbe un incremento nel voltaggio di alimentazione che incrementerebbe il consumo anche dell'altro core rimasto in idle.
Con le cpu Nehalem l'approccio implementato è differente: ogni core può passare allo stato C6 in modo indipendente pur avendo un power plane condiviso tra tutti i core. Non solo: nel momento in cui il sistema operativo esegue l'istruzione MWAIT(C6) per un core che ha terminato di elaborare questo mette in atto le funzionalità di risparmio energetico indipendentemente da quanto stiano facendo gli altri core, ma a differenza di quanto avviene con le cpu Core 2 questo implica anche che il voltaggio di quello specifico core venga portato a 0, esattamente come se fosse presente un power plane specifico per ogni core. Come noto, Intel produce al proprio interno le CPU che progetta; è frutto di una sinergia interna all'azienda tra produzione e sviluppo che è stato implementato nelle cpu Nehalem un particolare materiale, che opera come power gate tra la fonte del voltaggio inviata ad un core e lo stesso core. Grazie all'utilizzo di questo particolare materiale, nonostante sia presente un unico voltaggio di alimentazione condiviso tra i core, nel momento in cui un core dovesse passare ad una delle modalità di risparmio energetico entrando nello stato C6 (deep sleep state) questo passerebbe immediatamente ad uno stato di spegnimento pressoché completo, con una conseguente riduzione del consumo ai minimi termini. La conseguenza diretta è un funzionamento di ciascun core, in termini di requisiti di alimentazione, equiparabile a quella di un'architettura con power plane indipendenti pur di fatto essendocene uno solo condiviso tra i core. I benefici in termini di contenimento del consumo in idle vanno quindi di pari passo con la necessità di non incrementare la complessità costruttiva delle schede madri. Il monitoraggio dello status di alimentazione di ciascun core è delegato al PCU integrato nel processore; questo permette di evitare quelle condizioni nelle quali il sistema operativo manda in modalità di basso consumo uno dei Core, salvo poi riportarlo ad uno status P0 in breve tempo per eseguire un'altra richiesta. I più evidenti benefici di questa nuova tecnologia di risparmio energetico saranno importanti per le versioni di processore Nehalem per sistemi notebook, attese al debutto nel corso del 2009 con la prossima generazione di piattaforme Centrino. Pagina 8 - Una nuova modalità Turbo Mode Turbo Mode è il nome scelto per indicare una tecnologia implementata nelle cpu Nehalem particolarmente interessante, con la quale è possibile ottenere un overclock dinamico della CPU in funzione sia del carico di lavoro istantaneo del processore che del livello di TDP massimo raggiunto dalla cpu in un dato istante. Il suo funzionamento è molto semplice: nel momento in cui il processore viene utilizzato in modo parziale, lasciando alcuni core inutilizzati mentre altri vengono sfruttati al massimo delle loro potenzialità, la tecnologia Turbo Mode interviene incrementando la frequenza di clock dei core occupati così che possano processare le elaborazioni in modo più rapido.
Una tecnologia di questo tipo è stata implementata da Intel anche nelle cpu Core 2 Duo per sistemi notebook, ma sussistono varie differenze rispetto a quella implementazione. Nelle cpu Core 2 Duo la tecnologia Turbo Mode interviene incrementando la frequenza di clock di uno dei due core, nel momento in cui l'altro entra in modalità idle, mantenendo il TDP massimo del processore entro quanto previsto di default. Affinché la tecnologia possa intervenire è necessario che il secondo Core rimanga inattivo in modalità di risparmio energetico, quindi che venga eseguita una applicazione single threaded. Passando alle cpu della famiglia Nehalem l'implementazione cambia: se un core è inattivo vengono attivate le modalità di risparmio energetico e incrementata la frequenza di clock dei core che stanno operando, a prescindere dal loro numero. L'incremento nella frequenza di clock dei vari core può essere differente, a seconda del tipo di carico di lavoro richiesto e delle condizioni di funzionamento del processore: se il valore di TDP di un singolo istante è tale da permettere di incrementare le frequenze di clock, il processore opererà automaticamente in questa direzione.
Turbo Mode può inoltre operare anche quando tutti i core sono utilizzati al 100%, sfruttando il margine eventualmente disponibile in termini di dissipazione termica e contando su un valore di TDP del processore in quel particolare istante che è inferiore a quello massimo definito in fase di produzione. La gestione di questa tecnologia avviene tutta a livello hardware e non richiede alcun tipo di implementazione software, nel sistema operativo come nell'applicazione. E' evidente come più efficace è il sistema di raffreddamento adottato per il processore, maggiori saranno i margini di intervento della tecnologia Turbo Mode sia con alcuni dei core utilizzati che con tutti attivati al massimo delle potenzialità. Di quanto incrementa la frequenza di clock? A seconda dei margini disponibili al momento, e dell'efficacia del sistema di raffreddamento, il processore può incrementare la frequenza di clock di un singolo Core di un valore pari a 1 o 2 volte la frequenza di clock base del processore, pari a 133 MHz. Di conseguenza l'incremento predefinito può essere di 133 MHz oppure di 266 MHz, anche se da bios è possibile intervenire a modificare questa impostazione così da ottenere salti di clock più sensibili. Questa funzionalità rende difficile definire con precisione quale sia la frequenza di clock della cpu nell'esecuzione di uno specifico pattern di operazioni; è possibile disabilitare questa funzionalità da bios, così che il processore operi sempre alla frequenza di clock di default a prescindere dal carico di lavoro istantaneo. Pagina 9 - Alcune considerazioni
Concludiamo questa prima analisi architetturale delle caratteristiche tecniche delle cpu della serie Nehalem, in attesa di poterne misurare le prestazioni. Nel corso dei prossimi giorni scadrà l'embargo sulle prestazioni velocistiche delle cpu Core i7, le prime della famiglia Nehalem attese al debutto sul mercato: potremo quindi meglio analizzare le potenzialità di queste cpu utilizzando quale background questa analisi architetturale. Un elemento particolarmente interessante emerso nel corso di incontri con Intel sull'architettura delle cpu Nehalem è quello legato ai trade off tra prestazioni e consumo. Nella fase di progettazione di questa nuova architettura il team di sviluppo delle cpu Nehalem ha potuto implementare nuove funzionalità solo a condizione che queste introducessero un incremento del consumo dell'1% per non meno del 2% di incremento delle prestazioni, a testimonianza di come nelle attuali e future architetture di processore sviluppate da Intel il rapporto tra prestazioni e consumo complessivo rivesta un ruolo estremamente importante. Nel corso delle prossime settimane pubblicheremo differenti articoli sulle cpu Core i7, incentrati non solo sulle cpu ma sull'intera piattaforma a queste abbinate. Dopo questo articolo architetturale e l'analisi prestazionale delle 3 versioni di cpu Core i7 attese al debutto a Novembre, procederemo con un articolo specifico sul memory controller triple channel, analizzando le differenze prestazionali ottenibili con questi processori al variare sia del tipo di memoria che del numero di moduli memoria utilizzati.
A seguire, introdurremo un confronto prestazionale sulle schede video top di gamma ATI e NVIDIA in abbinamento a processori Core i7, con architetture SLI e Triple SLI a confronto con differenti versioni di configurazioni ATI CrossfireX, sfruttando in questo le schede madri basate su chipset Intel X58 compatibili con entrambe le tecnologie multi GPU. A chiudere, una serie di analisi prestazionali di schede madri per processori Intel Core i7 basate su chipset Intel X58 nel frattempo giunte in redazione. Intel ha reso disponibili, negli ultimi mesi, alcuni documenti incentrati sull'architettura delle cpu Nehalem; per chi volesse approfondire ulteriormente l'analisi di questa nuova generazione di processori abbiamo messo a disposizione un archivio contenente questa documentazione in formato pdf, scaricabile da questo link. |
||||||||||
| Pagina stampata da Hardware Upgrade: http://www.hwupgrade.it Vietata la copia e la distribuzione (anche parziale) senza la previa autorizzazione di Hardware Upgrade S.r.l Per maggiori informazioni : http://www.hwupgrade.it/sito/legale/ Copyright 1997 - 2010 Hardware Upgrade S.r.l |
||||||||||