Intel Core Microarchitecture
# Intel Core Microarchitecture

Con il nome Intel Core Microarchitecture viene identificata l'architettura di ottava generazione sviluppata per i processori Intel come sostituta della vecchia NetBurst che era alla base dei Pentium 4 e Pentium D.

L'architettura "Core" è arrivata sul mercato a luglio 2006 attraverso i processori Core 2 Duo e Core 2 Extreme conosciuti con il nome in codice di Conroe e Merom (oltre che nella variante per gli Xeon conosciuta come Woodcrest).

## Cardini dell'architettura "Core"

L'architettura "Core" affonda le proprie radici nella filosofia alla base del progetto Banias, il primo Pentium M delle piattaforme Centrino, che è stato il primo progetto in cui Intel si è preoccupata di ottimizzare il consumo energetico pur mantenendo un elevato livello di prestazioni.

La prima versione della piattaforma "Core" era basata su processori dual core costruiti a 65 nm. Successivamente, a fine 2007 sono arrivati i primi processori a 45 nm, Penryn, Wolfdale e Yorkfield che continuano ad essere basati sull'architettura "Core", sebbene in una versione rivista e migliorata, chiamata da Intel come "Enhanced Intel Core Microarchitecture".

La nuova architettura "Core" ha visto l'introduzione di 6 grandi innovazioni rispetto al passato, descritte brevemente di seguito; per alcune di queste non si tratta in realtà di un vero e proprio "debutto", in quanto erano state testate anticipatamente nel progetto Core Duo Yonah, predecessore di Merom nello sviluppo della piattaforma Centrino Duo. Attraverso l'architettura "Core" però esse sono state ulteriormente rifinite così da poter trovare la propria collocazione definitiva in un progetto di ampie dimensioni.

### Wide Dynamic Execution

Attraverso questa tecnologia è possibile eseguire più istruzioni per ciclo di clock rispetto a quanto era possibile nei processori basati sulle architetture precedenti. Ogni core può ora completare 4 istruzioni contemporaneamente, contro le 3 consentite da NetBurst. La lunghezza della pipeline si è accorciata molto rispetto a quella impiegata precedentemente, infatti il primo processore Netburst, ovvero il Pentium 4 Willamette, aveva una pipeline a 20 stadi che erano poi saliti a ben 31, nell'ultima evoluzione del Pentium 4, il core Prescott. L'architettura "Core" invece riprende la pipeline sviluppata già per il processore Yonah ed è a 14 stadi. È necessario sottolineare come una pipeline più corta sia meno vulnerabile ai salti nella successione di istruzioni e nella lettura di dati dalla memoria RAM, anche se rende più difficile raggiungere frequenze di clock elevate: si tratta "solo" di trovare il giusto bilanciamento.

All'interno di questa tecnologia ne trova posto anche un'altra chiamata "Macro-Fusion" che consente, secondo Intel, di unire tra loro alcune istruzioni per ottenere un'elaborazione più veloce. In pratica se su 10 istruzioni processate, 2 possono essere fuse tra loro, il processore eseguirà 8 istruzioni "semplici" e una aggregata attraverso proprio la tecnica "Macro-Fusion", ottenendo un aumento di prestazioni di circa il 10%.

### Advanced Digital Media Boost

Le operazioni svolte dai set di istruzioni SIMD che Intel ha sviluppato nel corso degli anni e che sono stati implementati anche nell'architettura "Core", vale a dire MMX, SSE, SSE2 e SSE3, sono state ulteriormente velocizzate. Ora è possibile eseguire le istruzioni a 128 bit (in realtà vengono uniti 4 elementi vettoriali a 32 bit in un unico blocco da 128 bit) SSE, SSE2 e SSE3 in un solo ciclo di clock, grazie alla presenza di ben 3 ALU (Arithmetical Logical Unit).

### Advanced Smart Cache

Anche in questo caso si tratta di una tecnologia che Intel ha testato già con il processore Yonah; La cache L2 di un processore dual core viene finalmente condivisa da ciascun core. I vantaggi di tale tecnologia sono molteplici, infatti se da una parte viene minimizzato il traffico di dati sul bus rispetto ad una soluzione dual core a 2 cache separate, dall'altra consente ad un core di utilizzare l'intera cache nel caso in cui l'altro core fosse al momento inattivo, cosa che può facilmente accadere con tutte quelle applicazioni che non sono in grado di sfruttare la presenza di più di un core in un sistema. Un altro vantaggio che deriva da questo tipo di implementazione è l'impossibilità che uno stesso dato possa essere duplicato nella cache L2, cosa che poteva accadere con i Pentium D dove le cache, essendo separate per ciascun core, potevano contenere dati replicati.

### Smart Memory Access

La presenza di una cache L2 unificata di grandi dimensioni richiede una maggiore attenzione nel suo sfruttamento per non limitarne l'efficienza. Un processore dual core basato sulla nuova architettura integra 8 unità prefetcher: più precisamente, si tratta di 2 data prefetcher e 1 istruction prefetcher per ciascun core e altri 2 prefetcher come parte della cache L2 condivisa. Lo scopo del prefetcher è quello di leggere i dati all'interno di un'unità ad alto livello usando un algoritmo invasivo. Questo è progettato per fornire dati che devono essere forniti velocemente, riducendo le latenze e incrementando l'efficienza. I prefetchers di memoria monitorizzano costantemente i modelli d'accesso di memoria, tentando di prevedere se qualche dato possa essere inserito nella cache L2, nel caso in cui questi dati possano essere richiesti successivamente.

Attraverso altri miglioramenti vari, si è potuto ottenere un generale abbassamento delle latenze di accesso alla memoria RAM: accade spesso infatti, che il caricamento delle istruzioni debba attendere l'esecuzione di altre istruzioni. Il cosiddetto "Memory Disambiguation Predictor" dovrebbe limitare al massimo la possibilità di ambiguità della memoria in modo da sfruttare meglio la pipeline ed evitare svuotamenti a causa di dati non ancora disponibili. Si tratta di una innovazione che va a risolvere un vero tallone d'Achille della precedente architettura NetBurst.

### Intelligent Power Capability

Anche per questa caratteristica Intel non ha rivelato dettagli molto esaurienti: in generale, il suo scopo è quello di ottimizzare ulteriormente il processo che regola la distribuzione del lavoro sui due core in modo da sfruttare tutta la potenza di calcolo a disposizione solo se questa viene effettivamente richiesta dal sistema.

### Intel Extended Memory 64 Technology

In questo caso non si tratta di una vera e propria novità, infatti tale tecnologia, conosciuta come EM64T era già stata introdotta da Intel con i Pentium 4 Prescott. Per la prima volta però, l'elaborazione di codice a 64 bit è possibile in tutti i settori di mercato, compreso quello mobile.

### Innovazioni specifiche per il settore mobile

Di seguito vengono illustrate altre caratteristiche introdotte con la nuova architettura solo nelle versioni di processore destinate all'impiego in piattaforme mobile. Inizialmente quindi, esse erano presenti solo nel processore Merom, poi sono state integrate anche nel processore Penryn (successore di Merom).

**Intel Dynamic Power Coordination**

Il suo compito è quello di coordinare la tecnologia SpeedStep e le transizioni della modalità inattiva di power management (C-state) in modo indipendente per ogni core per risparmiare energia.

**Intel Dynamic Bus Parking**

Offre un risparmio energetico della piattaforma e una durata migliorata della batteria consentendo la disattivazione del chipset quando il processore opera in modalità a bassa frequenza.

**Intel Deeper Sleep avanzata con Dynamic Cache Sizing**

Consente di risparmiare energia spostando i dati della cache nella memoria di sistema durante i periodi di inattività per ridurre il voltaggio della CPU.

## Enhanced Core Microarchitecture

Con l'arrivo della produzione di chip a 45 nm, conosciute anche come appartenenti alla famiglia Penryn (sebbene Penryn sia in realtà il nome della versione mobile, e non il nome in codice dell'intera revisione dell'architettura), sono state introdotte alcune migliore all'architettura "Core" che, per l'occasione, è stata identificata da Intel come "Enhanced Core Microarchitecture". Tra queste si possono evidenziare le seguenti:

* Nuovo Divider Radix-16: velocizza le applicazioni di calcolo scientifico in cui sono particolarmente frequenti elaborazione legate alle divisioni. Rispetto all'architettura originale è possibile processare 4 byte per ciclo di clock contro 2; dovrebbe essere migliorata anche la latenza di alcune operazioni in virgola mobile.
* Operazioni di virtualizzazione migliorate: la tecnologia di virtualizzazione Vanderpool ha subito un'ottimizzazione in modo da velocizzare le modalità attraverso le quali il processore passa da una macchina virtuale all'altra, con incrementi prestazionali che dovrebbero variare dal 25% al 75% a seconda del tipo di applicazioni.
* Nuove istruzioni SSE4: inizialmente previste già per la prima generazione di processori basati su architettura "Core", il set di istruzioni SSE4 è stato successivamente rimandato ai processori a 45 nm. Si tratta di istruzioni che consentono di migliorare notevolmente le prestazioni in ambito multimediale soprattutto nella codifica/decodifica di flussi video ad alta definizione. Più precisamente sono state implementate solo 47 delle 54 istruzioni previste dal set SSE4 vero e proprio e per questo motivo Intel indica le nuove istruzioni inserite nelle evoluzioni a 45 nm dell'architettura Core, come SSE4.1 (dove. 1 indica la prima versione); l'intero set delle istruzioni, indicato come SSE4.2 verrà incorporato solo nella futura architettura Nehalem, successiva alla Core.
* Aumento della cache L2 del 50%: in tutti i prodotti della nuova generazione la cache L2 è aumentata del 50%, diventando di 6 MB nei dual core e 12 MB nei quad core, e inoltre ha un'associatività passata da 16 a 24 livelli. Questa modifica consente di ottenere un "hit rate", cioè un "tasso di successo" nel fornire il dato richiesto dal processore per l'elaborazione, che sia sufficientemente elevato e allo stesso tempo poter mantenere valori di latenza non eccessivamente alti.
* BUS fino a 1333 MHz: sebbene introdotto anche nelle ultime evoluzioni dei core a 65 nm, è nei prodotti a 45 nm che il nuovo BUS a 1333 MHz ha trovato la propria collocazione definitiva consentendo, soprattutto nei quad core, di ridurre il collo di bottiglia nello scambio di informazioni tra i vari core e la RAM.

Inoltre nelle versioni destinate all'impiego in ambito mobile:

* Nuova tecnologia Intel Deep Power-Down: l'evoluzione delle CPU mobile mira a diminuire sempre di più l'energia dissipata affinando continuamente le tecniche di risparmio energetico in tutte quelle situazioni di utilizzo nel quale alla CPU non viene richiesta tutta la potenza elaborativa. Questa nuova tecnologia, affiancandosi alla SpeedStep, è in grado di portare il processore nella più ridotta condizione di consumo qualora il carico di lavoro richiesto sia prossimo allo zero.

## Considerazioni sull'efficienza: Stop alla corsa ai GHz

Una conseguenza molto importante delle varie migliorie introdotte con la nuova architettura risiede nel fatto che la corsa a frequenze di clock sempre più elevate diminuirà di parecchio, nei prossimi anni, nel segmento dei sistemi Desktop, pur naturalmente non arrestandosi; a parziale conferma di questo fatto si può notare che gli stadi della pipeline previsti dalla nuova architettura sono 14, al posto dei 12 del primo Pentium M Banias, e questo ha contribuito ad aumentare solo leggermente la frequenza di funzionamento. Infatti, più sono gli stadi della pipeline, e più essi sono elementari; di conseguenza ogni singolo stadio richiede meno cicli di clock per essere eseguito, e siccome i vari stadi possono essere eseguiti contemporaneamente si può innalzare la frequenza massima. Questo è uno dei motivi per cui Intel con il progetto Pentium 4 Willamette prima, e quello Prescott poi, ha progressivamente aumentato il numero di stadi fino ad arrivare a ben 31; la frequenza massima è cresciuta molto fino a sfiorare i 4 GHz, ma di pari passo si ha avuto un decadimento dell'efficienza dell'architettura: si tratta "solo" di trovare il giusto bilanciamento, che Intel sembra aver trovato proprio con l'architettura "Core".

## Differenza di prestazioni rispetto a NetBurst

### Settore desktop

Il settore in cui Intel soffriva di più il confronto con la rivale AMD in termini di efficienza, era quello desktop e proprio in questo settore si ha avuto la maggior rivoluzione con l'adozione della nuova architettura. I nuovi processori Core 2 Duo Conroe hanno dimostrato un salto prestazionale di ben il 40% rispetto alla CPU Pentium D 950 (ovvero la più veloce CPU NetBurst, basata su core Presler) riducendo contemporaneamente il consumo massimo di un altrettanto 40%.

### Settore Mobile

In ambito mobile, la differenza del nuovo processore Core 2 Duo Merom rispetto al predecessore core Duo Yonah erano meno marcate, dato che quest'ultimo anticipava già alcune caratteristiche poi implementate nella nuova architettura, ma comunque si è riscontrato un aumento di prestazioni di circa il 20% rispetto ad un Core Duo T2600, a parità di consumo energetico.

### Settore Server

In ambito server, Intel ha mantenuto in vita il marchio Xeon pur cambiando architettura. I nuovi Xeon basati su core Woodcrest, sono stati in grado, in particolari ambiti, di aumentare le prestazioni anche dell'80% rispetto ad un modello Xeon 2,8 GHz con core Paxville, riducendo contemporaneamente il consumo massimo di circa il 35%.

## Considerazioni sull'abbinamento "Processo produttivo/Architettura" di Intel

A partire dall'introduzione dell'architettura Core, successiva alla NetBurst e avvenuta a metà 2006, Intel ha dichiarato l'intenzione di presentare una nuova architettura ogni 2 anni, in modo da poter tenere il passo con la famosa Legge di Moore. Per aumentare le prestazioni di una CPU mantenendone sotto controllo anche il consumo energetico è necessario non solo ottimizzarne l'architettura, ma anche realizzare i nuovi dispositivi con processi produttivi sempre più raffinati.

Per limitare gli imprevisti delle innovazioni tecnologiche necessarie al rinnovamento generazionale dei propri processori, a partire dagli inizi del 2006 Intel ha iniziato a seguire una strategia denominata "Tick-Tock": prima viene introdotta una nuova tecnologia produttiva sulla base di un'architettura già collaudata (la fase "Tick") e in seguito, quando tale tecnologia è in grado di fornire rese elevate, la si adotta per produrre una nuova architettura (la fase "Tock").

I primi esponenti di questa nuova filosofia di progetto, furono i processori Pentium D Presler (che avevano praticamente la stessa architettura dei precedenti Smithfield) con cui venne introdotto il processo produttivo a 65 nm (fase "Tick"). Dopo aver collaudato la nuova tecnologia costruttiva con queste CPU, Intel passò alla nuova architettura Core dei Core 2 Duo, prodotta sempre a 65 nm (fase "Tock").

In maniera analoga, tra la fine del 2007 e l'inizio del 2008, Intel presentò i processori Penryn e Wolfdale che erano in sostanza dei die-shrink del Core 2 Duo, a 45 nm (fase "Tick"). A fine 2008, quando anche questo processo produttivo era ormai a punto, arrivò l'architettura Nehalem (fase "Tock"). La sua evoluzione Westmere è stata realizzata a 32 nm a partire dai primi mesi del 2010 (fase "Tick"), in modo da collaudare anche questa tecnologia in vista dell'architettura successiva Sandy Bridge, uscita poi nel 2011 (fase "Tock"). L'intenzione dichiarata di Intel, molto ambiziosa, era quella di migliorare il rapporto performance/watt del 300% entro la fine del decennio.

Seguendo il medesimo principio, Sandy Bridge è stata poi seguita dal die-shrink a 22 nm Ivy Bridge nel 2012 (fase "Tick"), che ha quindi mantenuto la stessa architettura ma ha introdotto un nuovo processo produttivo. Nel 2013 arriverà anche la nuova architettura Haswell (fase "Tock"), il cui die-shrink a 14 nm prenderà il nome di Broadwell (fase "Tick"); quest'ultimo verrà poi seguito negli anni seguenti dall'architettura Skylake (fase "Tock") e dalla sua ri-scalatura Ice Lake (fase "Tick").

Questa metodologia di sviluppo, nelle intenzioni di Intel, minimizza i rischi propri dell'adozione di una nuova tecnologia produttiva con un'architettura a sua volta completamente nuova, consentendo ai progettisti di concentrarsi, ad anni alterni, sulla risoluzione di una sola classe di problemi.

## Processori basati su architettura "Core"

Di seguito sono elencati i nomi in codice dei processori sviluppati da Intel partendo dall'architettura "Core". Viene fornita anche una brevissima descrizione tecnica e l'anno di introduzione sul mercato; per la descrizione completa delle caratteristiche di ciascun prodotto è possibile seguire i link omonimi.

| Nome Commerciale | Nome in Codice | Pr. Produttivo | N°Core | Cache | Settore | Anno |
| - | - | - | - | - | - | - |
| Core 2 Duo/Core 2 Extreme | Conroe | 65 nm | 2 | L1=2x64KB L2=4MB | Desktop | 2006 |
| Core 2 Duo/Core 2 Extreme | Merom | 65 nm | 2 | L1=2x64KB L2=4MB | Mobile | 2006 |
| Xeon DP | Woodcrest | 65 nm | 2 | L1=2x64KB L2=4MB | Server DP | 2006 |
| Core 2 Quad/Core 2 Extreme | Kentsfield | 65 nm | 4 | L1=4x64KB L2=2x4MB | Desktop | 2006 |
| Xeon DP | Clovertown | 65 nm | 4 | L1=4x64KB L2=2x4MB | Server DP | 2006 |
| Xeon MP | Tigerton | 65 nm | 4 | L1=4x64KB L2=2x4MB | Server MP | 2007 |
| Core 2 Quad/Core 2 Extreme | Yorkfield | 45 nm | 4 | L1=4x64KB L2=2x6MB | Desktop | 2007 |
| Xeon DP | Harpertown | 45 nm | 4 | L1=4x64KB L2=2x6MB | Server | 2007 |
| Core 2 Duo | Wolfdale | 45 nm | 2 | L1=2x64KB L2=6MB | Desktop/Server DP | 2008 |
| Core 2 Duo | Penryn | 45 nm | 2 | L1=2x64KB L2=6MB | Mobile | 2008 |
| Xeon MP | Dunnington | 45 nm | 6 | L1=6x64KB L2=3x3MB L3=16MB | Server MP | 2008 |

## Architettura successiva

Come anticipato poco sopra, l'architettura "Core" non avrà una vita lunga come la NetBurst; è previsto infatti che a circa 2 anni dalla sua adozione, quindi a fine 2008 venga introdotta la nona generazione chiamata in codice Nehalem prodotta, nella sua prima versione, utilizzando il processo produttivo a 45 nm già collaudato con le ultime incarnazioni dell'architettura "Core", per poi passare nel 2009 alla versione a 32 nm conosciuta come Westmere.

## Roadmap

V · D · MRoadmap dei processori Intel da NetBurst a Tiger Lake :

NetBurst :

| Willamette | Willamette | Northwood | Northwood | Prescott | Prescott | Tejas | Tejas | Nehalem (NetBurst) | Nehalem (NetBurst) |
| - | - | - | - | - | - | - | - | - | - |
| | | | | | | ⤷ | ⤷ | Cedar Mill (Tejas) | Cedar Mill (Tejas) |
| | | | | | ⤷ | Prescott-2M | Prescott-2M | Cedar Mill | Cedar Mill |
| | | | | | | Smithfield | Smithfield | Presler | Presler |
| P6 | P6 | P6 | P6 | P6 | P6 | P6 | P6 | P6 | P6 | Core | Core | Core | Core | Nehalem | Nehalem | Nehalem | Nehalem | Sandy Bridge | Sandy Bridge | Sandy Bridge | Sandy Bridge | Haswell | Haswell | Haswell | Haswell | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Skylake | Palm Cove | Palm Cove | Sunny Cove | Sunny Cove | Willow Cove | Willow Cove | Cypress Cove | Cypress Cove | Golden Cove | Golden Cove | Raptor Cove | Raptor Cove |
| Coppermine | Coppermine | Tualatin | Tualatin | Banias | Banias | Dothan | Dothan | Yonah | Yonah | Core | Core | Penryn | Penryn | Nehalem | Nehalem | Westmere | Westmere | Sandy Bridge | Sandy Bridge | Ivy Bridge | Ivy Bridge | Haswell | Haswell | Broadwell | Broadwell | Skylake | Skylake | Kaby Lake | Kaby Lake | Coffee Lake | Coffee Lake | Whiskey Lake | Whiskey Lake | Amber Lake | Amber Lake | Comet Lake | Comet Lake | Cannon Lake | Cannon Lake | Ice Lake | Ice Lake | Tiger Lake | Tiger Lake | Rocket Lake | Rocket Lake | Alder Lake (P-core) | Alder Lake (P-core) | Raptor Lake (P-core) | Raptor Lake (P-core) |
| 180 nm | 180 nm | 130 nm | 130 nm | 130 nm | 130 nm | 90 nm | 90 nm | 65 nm | 65 nm | 65 nm | 65 nm | 45 nm | 45 nm | 45 nm | 45 nm | 32 nm | 32 nm | 32 nm | 32 nm | 22 nm | 22 nm | 22 nm | 22 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 14 nm | 10 nm | 10 nm | 10 nm | 10 nm | 10 nm | 10 nm | 14 nm | 14 nm | Intel 7 | Intel 7 | Intel 7 | Intel 7 | Intel 7 | Intel 7 | Intel 7 | Intel 7 |
| | | | | | | | | | | | | Bonnell | Bonnell | Bonnell | Bonnell | Saltwell | Saltwell | Saltwell | Saltwell | Silvermont | Silvermont | Silvermont | Silvermont | Airmont | Airmont | Goldmont | Goldmont | Goldmont | Goldmont | Goldmont Plus | Goldmont Plus | Goldmont Plus | Goldmont Plus | Goldmont Plus | Goldmont Plus | Goldmont Plus | Goldmont Plus | Lakefield | Lakefield | Lakefield | Lakefield | Jasper Lake | Jasper Lake | | | Alder Lake (E-core) | Alder Lake (E-core) | Raptor Lake (E-core) | Raptor Lake (E-core) |
| | | | | Bonnell | Bonnell | Bonnell | Bonnell | Silvermont | Silvermont | Silvermont | Silvermont | Goldmont | Goldmont | Goldmont | Goldmont | Tremont | Tremont | Tremont | Tremont | | | Gracemont | Gracemont | Gracemont | Gracemont |
