Beta [ Pagina Principale || Sommario || Redazione || Informazioni || Beta Browser ]

[Rubrica Hardware]

a cura di Fernando Carello



CPU x86: una panoramica approfondita

Mai come in questo periodo c'è stato un tale fervore nell'ambito delle CPU x86 compatibili: una moltitudine di offerte di produttori diversi con caratteristiche e sigle assai varie e talvolta poco chiare tali da mettere in crisi anche esperti del settore.

di Andrea Nenni

L'azienda leader del settore è senza ombra di dubbio Intel, creatrice della famiglia x86, e fino ad oggi indiscusso punto di riferimento sia per lo sviluppo che per le prestazioni di questi microprocessori. Se da un lato ormai non vi è più alcun dubbio sulla assoluta compatibilità e affidabilità dei prodotti concorrenti (prova ne è anche l'abbandono di Intel della campagna pubblicitaria basata sul marchio "Intel inside" come garanzia della qualità di un PC), dall'altro non ci si deve illudere che CPU dalle sigle apparentemente uguali ma di produttori diversi siano tutte uguali dal punto di vista delle prestazioni e caratteristiche aggiuntive: esistono anche grosse differenze tra revisioni diverse della stessa marca. Il primo e più importante concorrente di Intel è Advanced Micro Devices, grande azienda del ramo dei semiconduttori, entrata nel settore x86 già al tempo degli 8086 come second source di Intel, dalla quale si è poi svincolata con la produzione di 386 e 486 comunque molto simili sfruttando i diritti acquisiti sul microcodice (fonte di numerose battaglie legali, principalmente terminate a favore di AMD, ma risoltesi definitivamente solo nel Gennaio 95). Seconda in ordine di tempo e di importanza viene Cyrix, casa texana di soli progettisti senza stabilimenti produttivi propri, che è entrata nella lotta prima con dei coprocessori matematici 387 compatibili ma più veloci e poi con delle CPU 386 SX e poi DX compatibili, con alcune caratteristiche di classe 486 per velocizzarle: i 486 SLC e poi i DLC. Dopo l'accordo per la produzione con IBM ha avuto sufficienti volumi per entrare a pieno titolo nella competizione e l'imminente lancio del 6x86 può cominciare a dare un minimo di fastidio ad Intel stessa.
Ultima arrivata sul mercato Nexgen, società californiana con diversi importanti investitori tra i quali Compaq, Olivetti e Harvard, anch'essa priva di stabilimenti di produzione per la quale si è affidata esclusivamente alla IBM Microelectronics.
Fondata nell'86, dopo diversi ritardi rispetto all'originaria intenzione di entrare nel mercato di classe 386, ha fatto il suo debutto solo l'anno scorso con un prodotto posto come concorrente diretto dei Pentium, che però necessita di chipset di supporto (fornito dalla stessa Nexgen) e MB totalmente specifiche e questo fino adesso ne ha frenato le vendite. Proprio in questi ultimi giorni poi è giunta totalmente inattesa la notizia sull'accordo per l'acquisto di Nexgen da parte di AMD che dovrebbe portare ad una fusione delle due aziende: l'accordo è particolarmente sensato perché entrambe hanno CPU di classe 586 con un cuore RISC ma AMD pur avendo un progetto più sofisticato e una propria fabbrica produttiva adatta ha avuto problemi nella verifica di compatibilità finale (pare in particolare con alcuni Sistemi Operativi) e nel salire di clock che hanno causato diversi rinvii mentre Nexgen ha un prodotto finito da tempo e una esperienza maggiore.

Tabella CPU

Nella tabella sopra sono elencate tutte le versioni di CPU, a partire dai 486 con duplicatore di clock, con tutte le caratteristiche fondamentali.
Diffidate delle analoghe tabelle pubblicate sui periodici di informatica che sono colme di errori e imprecisioni: le uniche voci non sicure sono la tensione di alimentazione consigliata (che in pratica poi permette spesso una tolleranza di almeno +/-0.15Volt) che col raffinarsi del processo produttivo tende ad abbassarsi verso i 3,3 Volt e in pochi casi la miniaturizzazione delle geometrie interne che può venire variata anche sullo stesso modello per esigenze di convenienza produttiva.

Grafico CPU

(12KB)

Nel grafico precedente sono riportati i risultati massimi riscontrati per ogni CPU dell'indice CPUMark 16 del benchmark "Ziff-Davis' PC Bench (TM) Version 9.0" eseguito con MSDOS (R) 6.2 e motherboard con 256KB cache e 8MB RAM.
Questo benchmark è particolarmente significativo perché mette alla prova in maniera piuttosto completa l'insieme CPU+MB ed è usato da diversi periodici del settore; oltre ai test sull'unità ad interi comprende anche un test su quella in virgola mobile ,che ha però una piccola influenza sull'indice complessivo, penalizzando solo marginalmente i microprocessori privi di FPU. Bisogna però precisare che l'indice dell'AMD DX4 120 è ottenuto con la cache interna WT, visto che in WB è leggermente inferiore, mentre in tutti gli altri benchmark ,come è ovvio, la situazione è opposta e la CPU ottiene indici maggiori del Pentium 75.
Questo mi fa dubitare quindi anche sui valori relativamente bassi ottenuti dai 486 e dal 5x86 Cyrix e sul mancato vantaggio degli Intel P24D sui DX2 normali e in parte anche sulla scarsa performance del P24T; cercherò di appurare la questione presso la Ziff-Davis ma mi aspetto un imminente nuova versione che spero risolva il probabile problema. L'aver scelto i valori massimi fornisce un indice di paragone in qualche modo più indipendente dalla particolare scheda madre, i cui chipset e cache influiscono pesantemente sul risultato; occorre precisare però che mentre sui 486 con frequenza della MB fino a 33, e in parte anche 40MHz, l'indice è facilmente avvicinabile dai 50 Mhz in poi e quindi su tutti i Pentium non è così facile.
Occorrono infatti MB di qualità settate ad arte con chipset performanti e cache molto veloce (tipicamente 2 banchi interleaved di SRAM asincrona da 15ns sui 486 e la costosa SRAM sincrona o pipelined burst sui Pentium); la velocità della DRAM e sopratutto la eventuale presenza della nuova EDO influisce invece solo marginalmente.

Segue una descrizione sommaria di tutti i principali modelli di microprocessori a partire dai 486 DX2, raggruppati in "famiglie" o "serie", intendendo con questi termini un unico chip in silicio che a seguito di un test di affidabilità viene impacchettato e marchiato con clock differenti. Di qui viene quindi la possibilità (troppo spesso abusata) di "overclockare" una CPU alla frequenza maggiore prevista per la serie (talvolta anche oltre) migliorandone il raffreddamento e talvolta alzando leggermente il voltaggio: la casa costruttrice infatti garantisce il funzionamento corretto al clock previsto fino ad una certa temperatura superficiale relativamente alta ed è possibile che ad una più bassa superi il test per clock maggiori. Per overclock moderati in genere non c'e' rischio di rottura irreparabile ma solo di crash sistematici o saltuari (non bastassero quelli del software) e magari di un accorciamento della normalmente lunga vita dei processori, ma nel malaugurato caso non si può poi contare sulla garanzia: personalmente ve lo sconsiglio sopratutto per i possibili errori casuali introdotti, oltretutto non necessariamente palesi e quindi potenzialmente pericolosi anche per i dati.

Intel

Le CPU 486 di Intel sono in pratica costituite dal nucleo di un 386 migliorato con una pipeline ad interi a 5 stadi e integrato con una cache interna di 8KB (dati+istruzioni) e nelle versioni DX anche con un coprocessore matematico 387 collegato alla pipe e il tutto con la gestione dell'I/O con la MB migliorato: tutto ciò porta quasi a un raddoppio di performance sui 386 di pari clock. Partendo dai DX2, i modelli a clock interno doppio rispetto alla MB, la famiglia originale da 50 e 66 MHz a 5V è da molto fuori produzione, si trova invece ancora la serie "SL Enhanced" arricchita con il SMM (ereditato dai precedenti 486 SL) nei modelli SX2 50, DX2 50 e DX2 66: si distingue dalle vecchie serie per la scritta superficiale "5V1X" e molti BIOS la identificano al boot con un "-S".
Nell'ultimo anno poi è stata introdotta anche una variante del solo DX2 66, denominata P24D, che ha la cache interna di 8KB gestita con il più efficiente protocollo write-back al posto del vecchio write-through; dovrebbe recare la scritta W5V1X. Il gradino successivo è dato dai DX4 usciti nelle frequenze di 75 e 100MHz, che contrariamente a quanto possa far pensare il nome contengono 2 moltiplicatori di frequenza distinti selezionabili dalla MB: x3 e x2 (quest'ultimo inibito sul 75). Queste CPU funzionano a 3V (anche se poi sono usciti gli Overdrive con riduttore di tensione incorporato che vanno su MB a 5V) e hanno una cache raddoppiata a 16KB (ma sempre Write Through) per diminuire gli accessi alla memoria esterna eseguiti a un clock 3 o 2 volte più basso; da notare che hanno anche un moltiplicatore per interi a 16 bit hardware anziché in microcodice che può talvolta falsare verso l'alto benchmark troppo sintetici. Insieme ai DX4 è uscita la prima famiglia 586, battezzata Pentium per poterne registrare in esclusiva il nome, con importanti innovazioni quali: architettura superscalare a due vie con pipeline a 5 stadi, due unità per interi (di cui una con shifter) spesso in grado di operare in parallelo (sopratutto però con codice appositamente compilato), una FPU notevolmente velocizzata con pipeline e con le principali operazioni in hardware (ma legata ad una delle integer unit), cache dati e codice distinte e entrambe da 8KB, bus esterno raddoppiato a 64 bit, branch prediction dinamica per prevedere i salti condizionati e altre soluzioni avanzate. Uscita nelle frequenze di 60 e 66MHz, sincrone con la MB, non ha avuto grande diffusione sia per i problemi di surriscaldamento dovuti alla tensione di 5V, sia per le non eccezionali prestazioni, dovute in parte al difficile disegno di MB funzionanti a frequenze tanto alte e in parte agli impliciti limiti dovuti alla compatibilità all'indietro della famiglia x86. La successiva serie (P54C) è passata ai 3 Volt con tecnologia da 0.6 Micron e un package ridotto dal pin-out diverso e ha adottato un moltiplicatore 1.5 permettendo di produrre versioni a 75, 90 e 100 MHz; ha in seguito anche guadagnato l'SMM (probabilmente nelle CPU con codice Sx921 o superiore).
Tutte queste prime CPU Pentium sono state tutte inizialmente affette da un bug sulla FPU che causa errori in alcune rare divisioni in virgola mobile: la vicenda ha avuto ampia risonanza e ha portato alla sostituzione gratuita, su richiesta del possessore, da parte di Intel in prima persona; esistono numerosi semplici programmi in grado di individuare l'errore con sicurezza (le versioni corrette dei P54C comunque dovrebbero iniziare dalla Sx957). Da qualche mese inoltre esiste un Overdrive Pentium (P24T) per MB 486 che prevedano l'apposito zoccolo più ampio, una versione ridotta per forza di cose ad un bus esterno a 32 bit, con cache però raddoppiata a 16+16 KB, moltiplicatore x2.5, funzionamento del nucleo a 3Volt con riduttore di tensione dai 5V incorporato, ventolina di raffreddamento integrata. E' uscito inizialmente nella versione a 63MHz per MB a 25 e adesso anche a 83MHz per quelle a 33 ma offre vantaggi prestazionali ridottissimi sugli equivalenti upgrade DX4 (probabile motivo del lungo ritardo che si sarebbe tramutato in una cancellazione se non fosse stato per le forti attese del mercato, illuso dalla precedente propaganda); si ottiene solo una discreta velocizzazione della FPU oppure globale nel caso di montaggio su MB prive di cache o con gestione e quantità insufficienti. Dei Pentium a 75 e 90 MHz esiste anche una versione VRT, ideata per i portatili, con il core funzionante a 2.9 Volt e quindi minor consumo e surriscaldamento, e un package innovativo denominato TCP (Tape Carrier Package) estremamente sottile e valido nella dissipazione del calore. Nei mesi scorsi è stata introdotta l'ultima revisione P54C, con moltiplicatore x2, nelle frequenze di 120 prima e poi 133MHz, senza particolari differenze strutturali; si attende invece per fine anno una nuova serie (P55C) con clock iniziale di 150 MHz (moltiplicatore 2.5) e in seguito anche 167, con tensione ridotta e diverse caratteristiche integrate orientate alla multimedialità e quindi legate al progetto Intel NSP (Native Signal Processing). Tornando alla famiglia Pentium vera e propria si attendono altri Overdrive con clock interno maggiore per le MB iniziali a 5V e una evoluzione denominata P55 con cache raddoppiate e moltiplicatore x2.5 con clock quindi di 150 e 165MHz.
Intanto è in dirittura d'arrivo la famiglia "686", nome in codice P6 e commerciale Pentium Pro (non Hexium o simili per non dover affrontare nuove e costose campagne pubblicitarie e avendone già uno tanto noto su cui sono stati investiti centinaia di milioni di dollari in promozione) con soluzioni innovative;dovrebbe essere disponibile inizialmente nei clock di 133 e 150 MHz . La CPU integra in un solo package ceramico dalla forma rettangolare due chip separati: uno è il microprocessore a 32bit vero e proprio con le sue due Level 1 cache da 8KB per codice e dati e il secondo è una Level 2 cache da 256KB collegata quindi con un bus separato a 64 bit a clock pieno; vi è poi il classico bus esterno a 64 bit a 1/2, 1/3 o 1/4 della frequenza interna. L'architettura interna, superscalare a 3 vie (con un massimo di 3 istruzioni per ciclo) e una superpipeline a 14 stadi, come ormai tendenza comune, scinde le complesse istruzioni x86 in più semplici istruzioni simil-RISC a formato fisso (micro-ops) da indirizzare poi alle cinque unità di esecuzione: due a interi, una floating point avanzata(parzialmente dipendente da una a interi), due address generation e una load-store. Non mancano ovviamente branch-prediction dinamica, esecuzione out-of-order, 40 registri fisici fra i quali far corrispondere poi i soli 8 logici del codice x86; tutto questo porta a un vantaggio prestazionale su un Pentium di pari clock tutto sommato ridotto, circa il 30%, ma sono previste versioni fino a 200MHz; il vero punto di forza è invece nel supporto per il Symmetric Multi Processing (SMP), in configurazioni fino a 4 CPU con il chipset Intel, con prestazioni notevolmente superiori al mediocre Dual Processor Pentium, con 2 CPU e L2 cache condivisa, e costi notevolmente inferiori a soluzioni proprietarie. Dalle prime prove effettuate risulta inoltre che nell'esecuzione di codice a 16 bit il P6 a 150MHz ha le medesime prestazioni di un Pentium 100MHz; questo è dovuto a un ottimizzazione esclusiva per il codice a 32 bit (a causa di un errata previsione sulla diffusione di Sistemi Operativi più moderni effettuata quattro anni fa agli inizi del progetto) che indirizza ancor maggiormente il processore in ambito server e workstation almeno fino alla disponibilità di frequenze molto più alte o maggior diffusione di SO come OS/2,UNIX o Windows NT.

Advanced Micro Devices

AMD vanta alle spalle una completa gamma di CPU x86 fin dal lontano 8086 ma solo a partire dai 386 ha cominciato a progettare in proprio, diversificando gradualmente la gamma da quella Intel con clock diversi e funzionalità accessorie. Oggi si trova ancora raramente la vecchia serie DX2 a 5 Volt, del tutto analoga a quella Intel come microcodice e prestazioni, e venduta nei modelli DX2 50, SX2 66, DX2 66, DX2 80 (rarissimo) dopo l'analisi qualitativa. La seconda e più attuale famiglia presenta le stesse caratteristiche di base con alcune differenze quali: tensione ridotta a 3.45 Volt, SMM proprietario supportato però da pochi chipset, moltiplicatore di clock selezionabile tra 2x e 3x tramite pin però diversi da Intel. Si riconosce dalle scritte superficiali "3 VOLT" e "NV8T" e viene venduta come SX266, DX266, DX280, SX4100 e DX4100; alcune serie iniziali di SX2 e DX2 hanno erroneamente il moltiplicatore 3x impostato come default per cui occorre una MB dotata del settaggio specifico AMD per selezionare il 2x e ottenere il corretto clock interno, quelle più recenti hanno di base il 2x o addirittura il 3x inibito. L'ultima serie presentata è quella DX4 Enhanced con l'importante novità della cache interna Write Back, sempre da 8KB, e l'adeguamento alle versioni Intel di SMM e pin di selezione del moltiplicatore, ora del tutto compatibili: è disponibile come DX4 100 e 120 in formato PGA e 75 e 100 in PQFP. Se la vostra MB non supporta esplicitamente gli Enhanced settatela per un iP24D per attivare la cache WB o se non fosse possibile come iDX4 piuttosto che come aDX4 per poter sfruttare il SMM SL compatibile.
A Novembre invece uscirà quello che sarà forse l'ultimo chip 486: un DX4 a 133MHz con cache raddoppiata a 16KB per bilanciare il grosso gap con il clock esterno di soli 33MHz dovuto al moltiplicatore 4x; nonostante sia il solo DX4 degno di tale nome verrà probabilmente battezzato X5, per testimoniare le sue prestazioni di classe 586. Per primavera '96 si attende invece il debutto del K5, prima CPU x86 totalmente di disegno AMD, P54C pin compatibile ma prossima al P6 per caratteristiche e prestazioni, dotata di un sofisticato cuore RISC e di soluzioni avanzate, con una architettura molto aperta per successivi miglioramenti: dovrebbe uscire con un clock iniziale di 100MHz e si attendono prestazioni superiori del 30% rispetto ad un Pentium di pari frequenza. Dotata di due cache interne separate da 16 e 8 KB, rispettivamente per istruzioni e dati, è un processore superscalare a 4 vie con pipeline a 5 stadi e traduce le istruzioni x86 in uno o più R-ops RISC-like, da inoltrare alle cinque unità di esecuzione totalmente indipendenti: due per interi (di cui una con shifter), una FPU, una load-store e una branch unit; naturalmente sono presenti l'esecuzione out-of-order, branch prediction dinamica e 16 registri fisici mappati sui soli 8 GPR logici x86 con register renaming.

Cyrix

Cyrix è solo un azienda di progettazione per cui commissiona interamente la produzione all'esterno, attualmente ha accordi con IBM e ST (SGS-Thomson) che rivendono la metà delle CPU fabbricate con il loro marchio; in passato ha anche avuto un accordo simile con Texas Instruments poi rotto con seguiti giudiziari. Il progetto nasce in totale autonomia dagli originali Intel pur prevedendo caratteristiche di base simili: si differenzia per la cache interna Write Back su tutti i modelli, una minor efficienza generale imputabile sopratutto alla gestione dell'I/O, maggior velocità della sezione FPU ereditata dal 387, un SMM proprietario ma ormai ampiamente supportato dalle MB e un moltiplicatore hardware per interi che anche qui ha falsato verso l'alto alcuni vecchi benchmark troppo semplici. La vecchia serie DX2 a 5V (nome in codice M7), venduta a 50 e 66MHz e riconoscibile immediatamente dal dissipatore di calore incorporato è ormai in via di scomparizione; è ancora in produzione invece quella nuova a basso voltaggio, riconoscibile da una V nella sigla o dal voltaggio esplicito, nelle frequenze di 50,66 e 80 MHz senza nessuna modifica particolare.
Di recente è uscita invece la serie DX4 (in codice M9), con il classico doppio moltiplicatore 3x o 2x, disponibile a 75 e 100MHz e con il doppio protocollo SMM proprietario e Intel SL compatibile. Appena arrivato sul mercato c'è anche il nuovo 5x86 ( alias M1sc ), una cpu pin compatibile 486 con i soliti moltiplicatori dei DX4 ma con la cache portata a 16KB e alcune feature di classe 586 ereditate dall'imminente M1: per adesso è disponibile nella frequenza di 100MHz ma entro fine anno uscirà anche una versione a 120. Fra le funzionalità avanzate introdotte ci sono: un'unità di branch prediction dinamica che prevede statisticamente i salti condizionati per cercare di minimizzare gli svuotamenti (squashing) della pipeline a 6 stadi; una unità di load/store parallela alla ALU con data forwarding che può passare i risultati di un istruzione direttamente a quella successiva, senza dover passare per una scrittura e una lettura; bus dati interno raddoppiato a 64bit; un unità FPU parallela più sofisticata e veloce. In procinto di uscire invece c'è l'M1, P54C pin compatibile, ma battezzato 6x86 per sottolineare il vantaggio prestazionale del 30% circa sui Pentium di pari clock e porlo sul piano del P6 (e indurre un po' di ulteriore confusione), destinato al debutto nella frequenza di 100 MHz, con una prossima versione a 120 e probabilmente anche una a 80 per i portatili. Il 6x86 è una CPU a 32 bit superscalare a 2 vie con pipeline a 7 stadi, cache unificata da 16KB Write Back, bus esterno a 64 bit, due unità per interi, una FPU parallela avanzata, branch prediction dinamica, data forwarding, esecuzione out-of-order, 32 registri fisici gestiti con register renaming.

Nexgen

Dopo gli annunci di voler entrare con una CPU 386 compatibile prima, e una innovativa 486 compatibile con un cuore RISC dopo, è finalmente uscita l'anno scorso con una serie di processori superscalari di classe 586, ma privi di coprocessore matematico interno, battezzata NX 586. Le CPU sono classificate, anzichè con la propria frequenza, con quella del Pentium che si intende uguagliare in prestazioni: troverete quindi le sigle P75, P80, P90 e P100 ma i clock reali sono 70, 75, 84 e 93 MHz; sono attese per inizio '96 delle nuove versioni a 120,133 e 150MHz effettivi. Il processore ha due bus esterni dedicati a 64 bit a clock sincrono: uno per l'eventuale FPU esterna e uno per la cache esterna il cui controller è integrato nel chip; a questi si aggiunge quello normale a 64 bit a metà clock. Questa architettura porta necessariamente a un pin out del tutto incompatibile con altre CPU x86 e ha bisogno quindi di un chip set apposito per la MB fornito dalla stessa Nexgen; fino ad oggi ne esisteva solo una versione che supporta VLB e ISA ma è imminente il rilascio di una nuova più attuale versione per bus PCI e ISA. Il microprocessore a 32 bit superscalare a 3 vie (4 con la FPU esterna), con pipeline a lunghezza variabile con almeno 7 stadi, ha due cache interne separate da 16KB per dati e codice e traduce le istruzioni x86 in una o più di un formato proprietario, battezzato RISC86, e le inoltre alle unità di esecuzione: due pipeline per interi (di cui una con moltiplicazione e divisione), una address unit e l'eventuale FPU; non mancano branch prediction dinamica, 14 registri con register renaming e esecuzione fuori ordine.


Beta [ Pagina Principale || Sommario || Redazione || Informazioni || Beta Browser ]
Beta - La rivista ipertestuale tecnica, copyright © 1994-95 Luciano Giustini e Fernando Carello. Tutti i diritti riservati.
(-installazione in rete)