# Intel P6

L'architettura P6 per i processori x86 è stata una pietra miliare nella storia della Intel. Si trattava di un'architettura di sesta generazione, derivata dalla P5, che nelle intenzioni iniziali doveva essere alla base di una CPU che avrebbe sostituito il processore Pentium. In realtà questo non avvenne mai e il processore Pentium Pro (basato su P6), pubblicato il 1º novembre 1995 venne indirizzato esclusivamente al settore server e workstation prima di essere sostituito dalla serie Xeon. L'importanza dell'architettura P6 diventa chiara se si considera che da essa sono derivati i successivi Pentium II, Pentium III e Pentium M.

## Caratteristiche tecniche
### Processo produttivo

Il Pentium Pro utilizzava il nuovo socket 8 per collegarsi alla motherboard e, a dispetto del nome, è molto differente dal Pentium. L'architettura P6 infatti, supporta l'esecuzione out-of-order e l'esecuzione speculativa delle istruzioni, la rinominazione dei registri e possiede una pipeline aggiuntiva per istruzioni semplici.
Il Pentium Pro aveva in dotazione una memoria cache di 256 KB e 512 KB, e più tardi fu rilasciata una versione con 1 MB. Tutte le versioni del processore erano molto costose, soprattutto quelle che ne implementavano più di 256 KB. Infatti tale cache era prodotta con un metodo innovativo: il processore e la cache erano su die differenti, integrati insieme nello stesso involucro, e connessi da un bus cloccato alla velocità del processore. I due die, entrambi molto grandi per gli standard di allora, dovevano essere uniti in uno stadio precoce del processo di produzione, prima che fosse possibile testarne il funzionamento. Questo significava che un singolo, piccolo difetto in una delle due parti rendeva necessario scartare l'intero insieme. Questa è una delle ragioni della bassa efficienza del processo di produzione del Pentium Pro.

### Prestazioni

L'esecuzione speculativa di una parte di programma (branch) in attesa dell'esecuzione dell'operazione di selezione comportava un maggiore spreco nel caso che la previsione sulla selezione fosse errata: quindi il Pentium Pro possedeva un algoritmo di branch prediction molto più sofisticato rispetto al predecessore. Per la stessa ragione, col Pentium Pro venne introdotta l'istruzione di "conditional move" (cmov) che in certi casi poteva risparmiare l'utilizzo di una istruzione di selezione. Le prestazioni relative al codice a 32 bit erano eccellenti; tuttavia, il Pentium Pro spesso era più lento di un normale Pentium nel far girare codice a 16 bit e i sistemi operativi. Fu questo a deludere molti utenti domestici, data la dominanza a quel tempo del DOS e di Windows 3.1, interamente a 16 bit. Windows 95 era già stato rilasciato quando fu lanciato il Pentium Pro, ma la maggior parte delle applicazioni per Windows ed alcune parti di Windows 95 stesso erano ancora a 16 bit.
In seguito alle pianificazioni stilate con Microsoft riguardo ai prodotti futuri, Intel aveva deciso di ottimizzare il Pentium Pro per il codice a 32 bit. Di conseguenza non era competitivo nell'operare con del codice a 16 bit, e quando Windows 95 si rivelò in gran parte a 16 bit, la CPU non si ritrovò in una buona posizione per competere sul mercato desktop. Introdotto sul mercato server per operare con Windows NT e UNIX, entrambi a 32 bit, era ormai destinato a rimanere in quella zona di mercato. Intel riempì il vuoto lasciato dal Pentium Pro aggiornando il Pentium originale e creando il Pentium MMX.

### Overclock

Il Pentium Pro era cloccato a velocità di 150, 166, 180 o 200 MHz con un bus a 60 o 66 MHz. Molti utenti scelsero di portare il processore in overclock, portando la versione a 200 MHz a 233 MHz, e la 150 MHz a 166 MHz. Questo processore fu molto usato per architetture SMP multiprocessore, e server e workstation con due o quattro Pentium Pro divennero piuttosto comuni; alcuni sono usati ancora oggi.

## Modelli

La tabella seguente mostra i modelli di Pentium Pro, quindi gli unici basati direttamente sull'architettura P6, arrivati sul mercato. Molti di questi condividono caratteristiche comuni pur essendo basati su diversi core; per questo motivo, allo scopo di rendere maggiormente evidente tali affinità e "alleggerire" la visualizzazione alcune colonne mostrano un valore comune a più righe. Di seguito anche una legenda dei termini (alcuni abbreviati) usati per l'intestazione delle colonne:
* Nome Commerciale: si intende il nome con cui è stato immesso in commercio quel particolare esemplare.
* Data: si intende la data di immissione sul mercato di quel particolare esemplare.
* Socket: lo zoccolo della scheda madre in cui viene inserito il processore. In questo caso il numero rappresenta oltre al nome anche il numero dei pin di contatto.
* Clock: la frequenza di funzionamento del processore.
* Molt.: sta per "Moltiplicatore" ovvero il fattore di moltiplicazione per il quale bisogna moltiplicare la frequenza di bus per ottenere la frequenza del processore.
* Pr.Prod.: sta per "Processo produttivo" e indica tipicamente la dimensione dei gate dei transistors (180 nm, 130 nm, 90 nm) e il numero di transistor integrati nel processore espresso in milioni.
* Voltag.: sta per "Voltaggio" e indica la tensione di alimentazione del processore.
* Watt: si intende il consumo massimo di quel particolare esemplare.
* Bus: frequenza del bus di sistema.
* Cache: dimensione delle cache di 1º e 2º livello.
* XD: sta per "XD-bit" e indica l'implementazione della tecnologia di sicurezza che evita l'esecuzione di codice malevolo sul computer.
* 64: sta per "EM64T" e indica l'implementazione della tecnologia a 64 bit di Intel.
* HT: sta per "Hyper-Threading" e indica l'implementazione della esclusiva tecnologia Intel che consente al sistema operativo di vedere 2 core logici.
* ST: sta per "SpeedStep Technology" ovvero la tecnologia di risparmio energetico sviluppata da Intel e inserita negli ultimi Pentium 4 Prescott serie 6xx per contenere il consumo massimo.
* VT: sta per "Vanderpool Technology", la tecnologia di virtualizzazione che rende possibile l'esecuzione simultanea di più sistemi operativi differenti contemporaneamente.
| Nome Commerciale | Data | Socket | Clock | Molt. | Pr.Prod. | Voltag. | Watt | Bus | Cache | XD | 64 | HT | ST | VT |
| Pentium Pro 150 MHz | 1º novembre 1995 | 8 | 150 MHz | 2,5x | 350 nm 21 mil. | 3,3 V | 30 W | 60 MHz | L1=32KB L2=256KB | No | No | No | No | No |
| Pentium Pro 180 MHz | 1º novembre 1995 | 8 | 180 MHz | 3x | 350 nm 21 mil. | 3,3 V | 30 W | 60 MHz | L1=32KB L2=256KB | No | No | No | No | No |
| Pentium Pro 166 MHz | 1º novembre 1995 | 8 | 166 MHz | 2,5x | 350 nm 36 mil. | 3,3 V | 36 W | 66 MHz | L1=32KB L2=512KB | No | No | No | No | No |
| Pentium Pro 200 MHz | 1º novembre 1995 | 8 | 200 MHz | 3x | 350 nm 36 mil. | 3,3 V | 36 W | 66 MHz | L1=32KB L2=512KB | No | No | No | No | No |
| Pentium Pro 200 MHz | 18 agosto 1997 | 8 | 200 MHz | 3x | 350 nm 67 mil. | 3,3 V | 45 W | 66 MHz | L1=32KB L2=1MB | No | No | No | No | No |
Nota: la tabella soprastante dovrebbe essere un estratto di quella completa contenuta nella pagina del Pentium Pro. Però, essendo stato il Pentium Pro l'unico processore basato direttamente sull'architettura P6, questa è la "copia" di quella presente nella pagina del Pentium Pro.

## Il successore

Il Pentium Pro fu sostituito dal Pentium II, in sostanza una versione del Pentium Pro migliorata con funzionalità MMX e maggiore ottimizzazione per il codice a 16 bit. Intel produsse anche un Pentium II a 333 MHz con socket 8 per permettere l'aggiornamento di sistemi basati sul Pro.

## 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 |