Il mercato dei processori è stato fin dagli albori caratterizzato da un produttore di CPU che faceva la parte del leone e da altri che vivevano di luce riflessa.
Questo colosso nella produzione di processori per personal computer è da sempre stata Intel, lo stesso produttore che nel 1978 fornì ad IBM il cuore del suo nuovo prodotto: il PC.
Cyrix, AMD, NexGen, SGS-Thomson e, per ultima in ordine di tempo, Transmeta, si sono sempre limitate a fette insignificanti rispetto alla vastità del mercato dei processori x86.
Intel, l?Achille Piè Veloce dei processori, ha sempre tenuto a bada la concorrenza con prodotti più performanti fino all?avvento del K6-2 della Tartaruga AMD. La casa di Sunnyvale iniziò allora a rosicchiare fette più consistenti di mercato.
L?idea che il nostro computer Intel Inside potesse essere più lento di un AMD qualsiasi doveva cadere così come il paradosso di Zenone fece crollare l?idea che Achille era in senso assoluto più veloce di una tartaruga.
Il paradosso di Zenone fu per così dire risolto rassicurandoci che Achille era realmente più veloce della tartaruga, invece noi al giorno d?oggi ci troviamo davanti ad una situazione piuttosto confusa nella quale difficilmente si capisce se corra di più Intel Piè Veloce o AMD la Tartaruga. Infatti il K6-2 si guadagnò una consistente fetta nel mercato dei pc entry-level grazie all?ottimo rapporto prezzo/prestazioni; dopodiché AMD produsse per un brevissimo tempo uno sfortunato K6-3 ma subito dopo un processore dotato di un?architettura completamente nuova, superiore su carta e su strada all?architettura P6 di Intel: l?Athlon.
E sullo scontro tra l?architettura K7 di AMD e l?architettura P6 di Intel, lo storico colosso di Santa Clara ha dovuto cedere il titolo di Achille Piè Veloce ad AMD.
Oggi, con l?avvento del Pentium 4, Intel spera di riprendersi la leadership, almeno per quello che riguarda il numero di MHz.
Quando Intel cominciò a progettare il Pentium 4, nel 1995 (era appena apparso sul mercato il capostipite dei P6, il Pentium Pro), pensava di dover realizzare un processore che potesse soddisfare a pieno le esigenze multimediali dell?utenza del 2000, dallo streaming video al disegno 3D, dalla codifica/decodifica di audio e video ad alta risoluzione al riconoscimento vocale ed a qualsiasi altra applicazione che coinvolge pesantemente l?unità di calcolo in virgola mobile; in questa categoria di applicazioni naturalmente non rientrano i software per l?ufficio. Inoltre oggi Intel deve riacquistare popolarità tra i consumatori, lavare via l?onta di non aver raggiunto per prima la soglia del gigaherz a causa dei problemi avuti nell?alzare il clock ai suoi Pentium 3 e fare attenzione a non tradire il contratto che la lega a Rambus nell?uso esclusivo di memoria RDRAM da parte dei propri chipset. Tutto questo spera di realizzarlo con il Pentium 4, mentre al gradino subito inferiore il Pentium 3 continuerà a crescere in megaherz grazie al passaggio ai 0,13 micron del processo produttivo.
Qual’è, secondo Intel, l’asso nella manica del Pentium 4? In una parola: NetBurst, il nome commercialmente vincente (almeno fino a che Internet sarà un fenomeno di costume oltre che tecnologico) che Intel ha saggiamente dato alla nuova architettura piuttosto che chiamarla banalmente P7.
L?architettura NetBurst non aggiungerà mirabolanti effetti grafici alle pagine web che andrete a visitare né tantomeno vi trasferirà istantaneamente un file da un capo del mondo al vostro HD, semplicemente raccoglie in un unico nome le 6 novità introdotte con il Pentium 4:
– Un nuovo bus di sistema con velocità equivalente a 400 MHz
– Advanced Transfer Cache, una tecnologia per il trasferimento dati da/alla cache L2 più efficente
– Advanced Dynamic Execution (Execution Trace Cache, Enhanced Branch Prediction), un motore di esecuzione delle istruzioni in/fuori sequenza migliorato cambiando la funzione delle cache L1 e ottimizzando la predizione dei salti
– Hyper Pipelined Technology, una pipeline più lunga per permettere il raggiungimento di alte frequenze
– Rapid Execution Engine, un motore di calcolo che lavora al doppio della frequenza del processore
– SSE2, la nuova evoluzione delle Streaming Simd Extensions per i calcoli in virgola mobile.
Nella prossima parte vediamo in dettaglio le peculiarità di questa nuova architettura.
Il Front Side Bus (FSB), ovvero il bus di sistema che trasporta i dati dal processore alla memoria ed al resto del sistema, è a 64 bit come quello del Pentium III; questt’ultimo (l?attuale Coppermine) ha inoltre un bus a 133 MHz mentre l?FSB del Pentium 4 ha un clock di soli 100 MHz, ma quadruplicati grazie alla presenza contemporanea di due segnali che viaggiano ad una frequenza doppia rispetto al clock, un fattore questo che permette di quadruplicare la quantità di dati trasportata per ciclo. Facendo quindi due calcoli abbiamo che un Pentium 4 ha un?ampiezza di banda pari a (64/8)*100 milioni*2*2 = 3,2 Gbyte/s (64 bit = 8 byte, moltiplicati i cicli al secondo, moltiplicati il numero dei segnali, moltiplicato per 2 essendo la frequenza di ogni segnale doppia rispetto al clock). Un Pentium III di seconda generazione (Coppermine) ha un?ampiezza di banda pari a (64/8)*133 milioni = 1,066 Gbyte/s mentre l?Athlon sfrutta entrambi i fronti di un bus a 133 MHz sempre da 64 bit quindi la sua ampiezza di banda è di (64/8)*133*2 = 2,133 Gbyte/s.
Come si evince, dunque, il bus del Pentium 4 è il più veloce attualmente in circolazione e consente di sfruttare al massimo i due canali messi a disposizione dalle memorie RDRAM e sfruttati dall?unico chipset attualmente in circolazione che supporta questa CPU, l?Intel 850. Questo elimina definitivamente uno dei colli di bottiglia che oramai affliggevano i Pentium III.
L?Advanced Transfer Cache invece consiste in un piccolo cambiamento apportato alla cache di secondo livello: quest’ultima è organizzata in linee da 128 bit contro i 32 bit del Pentium III ed è divisa in due parti da 64 bit ciascuna. La bassa latenza di questa cache, il bus a 256 bit tra cache e core della CPU ed ovviamente l’elevata frequenza di clock, fanno lievitare la velocità tra la cache di secondo livello ed il core alla bellezza di 44,8 Gbyte/s per la versione a 1,4 GHz (contro i 16 Gbytes/s di un PIII 1GHz ed i 9,6 Gbyte/s di un Athlon 1,2GHz). Questa modifica migliora decisamente quindi la resa della cache L2 soprattutto se abbinata alle memorie RDRAM.
Con il nome Advanced Dynamic Execution Intel ha battezzato due innovazioni: la prima riguardante la cache di primo livello (Execution Trace Cache) mentre la seconda riguardante l?unità di previsione dei salti (Enhanced Branch Prediction).
Per spiegare queste funzioni dobbiamo fare un passo indietro e ricordare cosa sono la cache L1 e l?unità di previsione dei salti. Quando i dati arrivano nel bus di sistema per essere elaborati vengono conservati temporaneamente nella cache L2 che poi li invia alla parte di cache dedicata alle istruzioni x86 (nel PIII come nell?Athlon i quantitativi di cache L1 sono divisi in due parti, una per le istruzioni ed una per i dati), da qui vengono passate all?unità di decodifica (che nel PIII serve a scomporre le istruzioni complesse in micro-istruzioni più semplici mentre nell?Athlon serve ad unire più operazioni in macro-operazioni più complesse) per poi entrare nel percorso di esecuzione vero e proprio. In questo ambito si pone l?unità di previsione dei salti: semplicemente prevede quali istruzioni sarà necessario elaborare successivamente e provvede ad ordinarle e renderle disponibili nella giusta sequenza alla pipeline.
La cache di primo livello è stata ridotta a 8 KB (dai 32 KB del Pentium III, mentre l?Athlon ne ha 128 KB) ma la ragione di questa riduzione è che il suo compito è radicalmente cambiato. Nel Pentium 4 non esiste la cache dedicata alle istruzioni semplicemente perché le istruzioni vengono prima decodificate e poi conservate già smembrate in micro-operazioni dopo l?unità di decodifica. In questa maniera si evita, per esempio, che istruzioni da ripetere più volte debbano essere decodificate ad ogni esecuzione: l?operazione, una volta scomposta in micro-operazioni, è mantenuta nella Execution Trace Cache e la rielabora da lì ogni volta lasciando così l?unità decodificatrice libera di passare all?istruzione successiva. La riduzione quindi della cache potrebbe essere ininfluente sulle prestazioni.
Per quanto riguarda l?unità di previsione dei salti mi limito a dire che è stata migliorata la capacità di previsione ingrandendo il buffer di salto fino ad una dimensione 8 volte superiore a quella del Pentium III: Intel dichiara di aver eliminato oltre il 33% degli errori di previsione e di avere degli algoritmi più efficienti di quelli vantati da AMD e introdotti con l’Athlon Thunderbird.
Ma perché rendere più efficiente tutto il processo che va dal bus di sistema alla pipeline? Perché la Hyper Pipelined Technology è formata da 20 stadi contro i 10 del Pentium III e gli 11 dell?Athlon. La domanda sorge spontanea: che c’entra la lunghezza della pipeline con la preparazione delle micro-operazioni in entrata?
Una pipeline va vista come una catena di montaggio dove se ad un punto della catena manca un pezzo, la catena va svuotata tutta e ririempita con i pezzi nell?ordine giusto: nel nostro caso significa che se ad uno stadio di elaborazione manca un indirizzo non previsto dall?unità di previsione, la pipeline va svuotata con la conseguente perdita delle operazioni correntemente in corso, il riordinamento delle stesse con l?aggiunta dell?indirizzo necessario ed il successivo riempimento della pipeline con la perdita di tempo (cicli di clock) che ne consegue. Una pipeline lunga si traduce però in un minor numero di transistor per stadio e quindi alla possibilità di alzare il clock del core maggiormente rispetto per esempio al Pentium III che, con la sua piccola pipeline ha fatto perdere pochi mesi fa il primato del gigaherz a Intel. Avere la possibilità di alzare la frequenza di un processore a sua volta conduce alla possibilità di prolungargli la vita o, come effetto collaterale, alla possibilità di un utente smanettone di overclockare il proprio processore con facilità. Ma prestazioni superiori ci sono se e solo se le operazioni/indirizzi siano stati precedentemente ordinati correttamente, perché come vedremo la frequenza non è tutto.
Siamo così giunti alla unità di calcolo vera e propria che Intel chiama Rapid Execution Engine. Consiste, così come dai 486DX ad oggi, nelle unità di calcolo per interi e l?unità di calcolo in virgola mobile.
La parte dedicata al calcolo degli interi consiste in due unità distinte, alcune unità che lavorano al doppio della frequenza di clock garantendo la ricezione di una micro-operazione ogni mezzo ciclo ed una unità di calcolo per quelle istruzioni che non possono essere eseguite in metà ciclo dalle unità veloci.
La sezione dedicata al calcolo in virgola mobile invece si avvale dell?introduzione di SSE2, un set esteso di 144 nuove istruzioni che promettono di velocizzare drasticamente il calcolo in virgola mobile rendendo di fatto superflue unità multiple dedicate alle MMX e SSE1; per questo motivo è stata integrata una sola unità di calcolo per MMX/SSE1 mentre il Pentium III ne aveva due come l?Athlon (quest?ultimo però non supporta le SSE1 ma 3DNow!).
Le prime prove su strada di questo nuovo processore hanno sollevato non poche perplessità tra gli addetti del settore e cominciano a dilagare voci tra l?utenza dell?avvento di un processore lento, caldo e costoso.
Dai primi benchmark infatti sembrerebbe che il Pentium 4 perda su tutta la linea rispetto all?Athlon ed in alcuni casi anche rispetto al suo fratellino minore, il Pentium III, tranne che su quelle applicazioni che sembrano ricompensare la grande disponibilità di banda sul bus di sistema, come Quake 3 Arena.
Per quanto riguarda il calore, sappiamo che è direttamente proporzionale al consumo di corrente del processore; ed effettivamente questo processore consuma tanto al punto di spingere Intel a creare un nuovo standard di alimentazione: per questo per assemblare un PC con Pentium 4 servono dei nuovi alimentatori e dei sistemi di raffreddamento molto efficienti.
Se poi vogliamo fare una stima dei costi (non mettendoli in rapporto alle prestazioni per non accentuare la negatività) dobbiamo dire che il Pentium 4 viene venduto, per stock di mille pezzi, a 644 dollari per la versione a 1,4 GHz ed a 819 dollari per la versione a 1,5 GHz. Oltre al prezzo, non certo basso, del processore bisogna poi mettere in conto quello della motherboard e del chipset, al momento fornito solo da Intel (l’i850).
Ma perché nonostante questa bellissima quanto complessa architettura il Pentium 4 non da risultati anche solo sufficienti? Perché il prezzo di un sistema basato su Pentium 4 dovrà essere appesantito dalle costose Rambus?
Analizziamo le prestazioni, da sempre il fattore che può spingere all?acquisto di un nuovo processore.
Semplificando potremmo dire che le prestazioni del processore dipendono dal numero di istruzioni per ogni ciclo di clock (IPC) e quanti cicli al secondo il processore completa (la frequenza). L?architettura NetBurst permette di alzare il clock del core molto più facilmente rispetto al Pentium III e all’Athlon. questo grazie alla sua lunga pipeline. Per valutare se questa dichiarazione di Intel corrisponde a realtà, potremmo prendere come indice, oltre alla nostra logica, anche il fatto che i primi esemplari di Pentium 4 hanno reagito molto bene all?overclock. Questo significa che le prime frequenze a cui viene venduto il processore sono solo il trampolino di lancio per la corsa al megaherz. Diciamo che Intel per ora ci sta mostrando delle anticipazioni di quello che saranno le frequenze con cui intende commercializzare realmente il Pentium 4.
Ora cerchiamo di capire quanto efficientemente verranno sfruttati gli abbondanti megaherz del Pentium 4. Le unità di calcolo del Pentium 4 sono del tutto nuove, sia quella per il calcolo degli interi sia quella del calcolo in virgola mobile, e come la storia ci insegna sappiamo che le prestazioni ottenibili con una nuova architettura migliorano nel tempo conseguentemente all?ottimizzazione dei compilatori. Il codice che usiamo attualmente è stato compilato con strumenti che ignoravano l?esistenza di un?architettura NetBurst.
Ora separiamo il discorso per l?unità di calcolo su interi (MPU) da quello per l?unità di calcolo in virgola mobile (FPU).
Il grosso dell?MPU, come ho detto, è rappresentato da un primo gruppo di unità che svolgono, ognuna, due operazioni per ciclo. Queste esaltano le prestazioni del Pentium 4 sul calcolo di interi ad una condizione: il microcodice che viene dato in pasto all?unità di calcolo deve essere adatto a queste unità ultraveloci altrimenti andrà dritto nelle fauci della lenta ed obsoleta unità di calcolo di istruzioni complesse che costituisce la piccola parte di processore inserita per consentire la compatibilità con il passato. Codice non ottimizzato vuole dire che solo una minima parte di esso andrà ad essere elaborato dalle unità di calcolo veloci.
Cosa analoga accade nell?FPU ma con un aggravante: le SSE2 sono state progettate per rimpiazzare completamente le vecchie istruzioni x87 mentre fino ad adesso, le MMX prima e le SSE1 poi, avevano solo affiancato le x87 migliorando le prestazioni. L?FPU è composta principalmente da unità di calcolo delle SSE2 mentre per le x87(MMX e SSE1 comprese) vi è una sola unità logica inserita per compatibilità verso il basso. Quindi il codice può essere eseguito o dall?unità di calcolo delle SSE2 o dall?unità di calcolo delle x87. Codice non ottimizzato vuole dire che non verrà affatto elaborato dalle unità di calcolo veloci. E questo è di fatto quello che accade attualmente quando si fa eseguire del codice al Pentium 4. Le unità di calcolo veloci non vengono sfruttate a pieno regime (o, nel caso delle operazioni in virgola mobile, non vengono sfruttate affatto) creando una coda di esecuzione che intasa il normale funzionamento del Pentium 4: pipeline bloccata in più punti, previsioni dei salti erronee che costringono allo svuotamento e successivo riempimento della pipeline e quindi operazioni che fanno perdere cicli preziosi.
Nella descrizione della nuova cache L1 avevo accennato come la riduzione del quantitativo di questa preziosa memoria super veloce potrebbe essere ininfluente sulle prestazioni, ed effettivamente così sarebbe in condizioni normali di utilizzo (ovvero, in presenza di codice adatto al Pentium 4); ma se comincia a presentarsi una coda nella pipeline ed errori troppo frequenti nell?unità di previsione dei salti per il meccanismo precedentemente descritto avremmo anche un intasamento del flusso dei dati da/alla cache e quindi da/alla RAM. Oltretutto dobbiamo ricordare che le RDRAM, queste sconosciute, pur lavorando a frequenze altissime, hanno una latenza molto alta; questo significa che se la lettura/scrittura di dati sul bus è continua allora avremo le tante decantate prestazioni ma se si cominciano a verificare interruzioni nel flusso di dati in lettura/scrittura allora la latenza alta farà drasticamente abbassare le prestazioni ai livelli delle normali SDRAM (se non peggio, figuriamoci poi se paragonate alle DDR).
Insomma, a questo punto dovrebbe essere chiaro come le attuali prestazioni deludenti del Pentium 4 sono da imputare ad un codice non adatto a questo processore: tutto il codice attualmente in circolazione è un codice compatibile ma non adatto alla nuova architettura . Appena gli sviluppatori avranno reso disponibili compilatori che generano codice in forma più commestibile all?MPU del Pentium 4 e che sfrutteranno le SSE2 per fare calcoli in virgola mobile, il Pentium 4 decollerà. Ricordiamo a questo proposito che Intel, a differenza del passato, da mesi rilascia le specifiche del nuovo chip per consentire a terzi di sviluppare codice appropriato prima dell?uscita del chip: questo potrebbe essere una spia che dimostra come Intel sia consapevole della necessità che il software si evolva per poter vendere il suo nuovo prodotto.
E siamo convinti che gli sviluppatori lascino passare inosservato questo bel set di nuove potenti istruzioni messe a disposizione dal chipmaker che è ancora il numero uno nel mondo delle CPU per potenza commerciale?
Ora consideriamo il fronte del prezzo. Questo processore essendo appena uscito sul mercato ha ancora dei prezzi relativamente alti che dovrebbero scendere nel primo trimestre 2001 così come il prezzo delle Rambus sotto l?azione di una richiesta maggiore di questo tipo di memoria. Ricordiamoci inoltre che il fattore prezzo è soggetto a strategie di mercato che vogliono questo processore irraggiungibile alla grande massa per sfruttare ancora il prodotto precedente, il Pentium III. Il Pentium 4, come dichiarato dalla stessa Intel, non soppianterà il Pentium III almeno fino alla seconda metà del 2001: solo in quella data il suo prezzo scenderà sensibilmente e sarà conveniente rispetto ad un Pentium III.
La scelta delle Rambus è stata fortemente criticata, sia per le prestazioni soggette alla maledetta latenza che le rende efficaci solo se la combinazione software-CPU è ottimizzata, sia perché la loro comparsa sul mercato è sembrata un?imposizione più che un?evoluzione, sia per i flop prestazionali evidenziati con il Pentium III. Il nuovo chip sembra per vari versi progettato per sfruttare a pieno le memorie Rambus ma se il processore ideale a sfruttare queste memorie fosse uscito nel 1999 (come nei piani originali di Intel) avremmo tutti avuto paura di queste Rambus? E se fosse uscito tra qualche mese magari supportando le memorie DDR ci saremmo preoccupati così tanto del suo prezzo?
Forse le Rambus non saranno le memorie migliori in assoluto ma con il Pentium 4 potrebbero farsi valere aldilà degli insuccessi passati; il loro prezzo, per quanto poco sia prevedibile ora, dovrebbe seguire l?andamento del Pentium 4, essendo il loro successo legato al nuovo processore.
Intel ha le mani legate da Rambus per quanto riguarda lo sviluppo di chipset che supportino memorie diverse dalle RDRAM, ma sembra che questo stretto legame potrebbe presto rilassarsi quel tanto che basta per produrre essa stessa un chipset DDR. Nel frattempo sembra ormai certo che concederà in licenza la tecnologia del bus del Pentium 4 a Via ed altri produttori di chipset per portare da subito la compatibilità DDR nel mondo del Pentium 4, con la conseguenza che anche il prezzo delle schede madri si abbasserà sensibilmente.
Oggi i test prestazionali, i costi ed i dubbi dell?utenza danno poca fiducia a questo neonato rivoluzionario venuto alla luce forse al momento sbagliato, ma è chiaro come Intel cercherà con tutte le forze di riprendersi l?appellativo di Piè Veloce così come la fiducia degli utenti passati al “nemico”.
Io consiglierei, a chi abbia intenzione di passare al Pentium 4, di aspettare almeno fino a giugno, periodo in cui anche il software in circolazione comincerà ad essere ottimizzato e, soprattutto, i prezzi si saranno notevolmente abbassati.