la storia dei microprocessori. - AaLl86

Transcript

la storia dei microprocessori. - AaLl86
AaLl86 è lieto di presentare questa incredibile guida:
14/07/2005
STORIA ED EVOLUZIONE DEI
MICROPROCESSORI
DALLA LORO NASCITA AI
GIORNI NOSTRI
Pagina 1
INDICE:
1. Breve introduzione sui primi computer
pag. 3
2. L’origine dei microprocessori
pag. 4
3. Che cos’è un microprocessore?
pag. 5
4. Struttura e funzione dei microprocessori
4.1.CPU, ALU e FPU
4.2. Il Bus
pag. 5
5. Evoluzione storica dei processori e loro principali caratteristiche
5.1. Processori x86 di prima generazione
5.2. Processori di seconda generazione
5.3. Processori di terza generazione
5.4. La memoria cache
5.5. Generazione quarta: l’80486 e la cache integrata
5.6. Pentium Mmx e le istruzioni multimediali
5.7. Pentium Pro, Pentium II e Pentium III, la sesta generazione
5.8. La concorrenza di Intel: Advanced Micro Device
5.9. AMD K5 - La risposta al Pentium
5.10. AMD K6 - Il primo processore AMD di 6° generazione
5.11. AMD K6-II - Il secondo processore AMD di 6° generazione
5.12. AMD K6-III - L'ultimo esponente della famiglia K6
5.13. AMD K7 - 7° generazione ?
5.14. AMD K7 Athlon - Thunderbird e Palomino
pag. 8
6. Sviluppi recenti
pag. 18
7. Il limite tecnologico di oggi
pag. 20
8. Prospettive future
pag. 21
Pagina 2
1. INTRODUZIONE
L’informatica come noi la conosciamo oggi è il frutto di anni e anni di ricerca da parte di scienziati ed
ingegneri di tutto il mondo. L’intera evoluzione dei computer e dell’informatica è stata caratterizzata da
una crescita esponenziale che ha avuto un interruzione solo negli ultima anni (per la precisione nel
2004). Millenni di calcoli a mente o al massimo con strumenti primi come l’abaco poi, dal 1500 fino al
diciannovesimo secolo, l’uomo acquisì enormi capacità sia di pensiero che di abilità costruttive e inizia
a produrre piccoli congegni, talvolta anche di grande complessità e precisione. Le geniali intuizioni,
però, o l'abilità costruttiva di parti meccaniche non bastavano, senza le fondamentali scoperte sia delle
possibilità d'impiego del vapore, che dell'energia elettrica. La vera, sconvolgente, rivoluzione avviene
dunque tutta nel ventesimo secolo e in tutti i campi della conoscenza, compresa anche quella del
calcolo automatizzato che darà origine poi all’Informatica. Prima dell'avvento dell'elettronica, ovvero
di valvole termoioniche, dei transistor e dei circuiti integrati, gli ingegneri potevano progettare
macchine basate solamente sulla meccanica o sulla elettro-meccanica. Spesso le loro idee erano
davvero geniali e sbalorditive, ma in solenne anticipo rispetto ai limiti della tecnologia del momento.
Queste prime macchine, inoltre, risentivano tremendamente di gravi limiti: la lentezza meccanica
dovuta agli attriti, una discreta inaffidabilità generale o facilità di guasto, nonchè una scarsa capacità di
memorizzazione dei dati. L'utilizzo delle valvole elettroniche accelererà il processo di evoluzione,
consentendo anche di acquisire le nozioni sperimentali indispensabili per progettare il prossimo futuro.
Quindi si può dire che il progenitore più antico del microprocessore è la Valvola. La valvola era un
piccolo congegno creato per la radio, capace di accelerare in modo incredibile i processi di calcolo
all'interno di un una macchina. Ma ancora la precarietà dei mezzi rappresenterà un freno molto forte al
vero sviluppo di sistemi pienamente soddisfacenti. Vennero costruiti dei giganteschi calcolatori,
paragonabili a dinosauri, dai costi elevatissimi e perciò confinati negli ambienti militari e scientifici, ma
non usabili dal largo pubblico aziendale, scolastico o scientifico, fatte salve rare eccezioni. La Seconda
Guerra Mondiale accelerò sicuramente i processi di crescita e il contributo inventivo, perchè le esigenze
di difesa spinsero i principali Stati verso massicci investimenti nel settore dell'elaborazione dei dati. Il
grande acceleratore fu sicuramente il centro SAGE per la difesa territoriale degli Stati Uniti. Poi, con la
scoperta dei transistor, si diede l'avvio alla fase di miniaturizzazione ed accelerazione dei circuiti e da
lì il fiorire di nuove invenzioni, nuove macchine, linguaggi per programmarle e nuove concezioni dei
sistemi, che subirono una inarrestabile accelerata. Il colpo finale lo diedero i microscopici circuiti
integrati, i chip, con milioni di transistor dentro pochi millimetri quadrati. Con il chip era stata tracciata
la strada per la costruzione dei primi microprocessori. Infatti l'informatica, gestita dai mainframe e dai
minicomputer era definitivamente nata e utilizzata con soddisfazione ormai su vasta scala dalla maggior
parte delle aziende del mondo. Anche per questa evoluzione ci fu un progetto trainante: la corsa delle
imprese spaziali e la difesa o attacco missilistico (epoca della Guerra Fredda).
L'ultimo passo fu quello dell'introduzione dei sistemi computerizzati anche a livello individuale e ciò
avvenne con il rapido sviluppo dei personal computer e di tutta l'enorme famiglia di programmi
applicativi d'ogni genere. Fino a colmare il divario tra i due mondi: i grossi elaboratori, pachidermi
molto affidabili, ma poco elastici, da una parte, e personal computer, paragonabili ad agilissimi fuori
strada, ma molto indisciplinati, dall'altra.
Pagina 3
2. L’ORIGINE DEI MICROPROCESSORI
Il microprocessore è nato in un modo del tutto casuale. Infatti il primo "Chip" fu ottenuto partendo da
una richiesta del Governo degli Stati Uniti ad una industria privata, la quale, nel tentativo di esaudirla,
realizzò un dispositivo che non aveva soddisfatto la richiesta ma che apriva la strada a nuove
conoscenze. L'impegno maggiore nella ricerca e progettazione dei processori è venuto sicuramente
dalla Bell Telephone, una società di Boston da sempre all'avanguardia nella ricerca e sperimentazione
di nuove tecnologie elettroniche. Alcuni scienziati, provenienti dalla Bell Telephone, intorno al 1965
fondarono, in California, la Fairchild che divenne poco tempo dopo la leggendaria Silicon Valley.
Non passarono molti anni che, sempre da parte di alcuni dei primi allontanatisi dalla Bell Telephone,
nel 1968 nacque la Integrated Electronics, più nota come Intel, ad opera di Robert Noyce e Gordon
Moore. Furono i tagli ai finanziamenti della NASA del 1970, che fecero diminuire di molto gli acquisti
per componenti elettronici ed apparecchiature, ad obbligare le industrie elettroniche a diversificare la
produzione rivolgendosi al grande mercato pubblico con la produzione delle calcolatrici tascabili. Fu
così che in quel periodo la Intel, per la costruzione di un microcalcolatore integrato per una calcolatrice
da tavolo, realizzò un prototipo di microprocessore a 4 bit, il 4000-1.
Nel 1971 Intel sviluppò il primo vero microprocessore, il 4004. L'idea che portò al 4004 era venuta a un
gruppo di ingegneri della Intel, tra i quali l'italiano Federico Faggin che perfezionò così il suo prototipo
4000-1: lavorando a una serie di 12 chip di calcolo per una compagnia giapponese di computer, misero
a punto un'unità centrale di calcolo (CPU) su un singolo chip di silicio. Con una dimensione di circa 42
x 32 mm, il 4004 conteneva 2300 transistor e aveva una potenza di calcolo paragonabile a quella del
primo computer elettronico, l'ENIAC, che aveva bisogno di circa 19.000 tubi a vuoto e occupava
un'intera stanza di dimensioni cospicue. Il 4004 e il successivo 8080 (a 8 bit), introdotto nel 1974,
trovarono un grande numero di applicazioni, dalle calcolatrici portatili ai semafori. L'8080 venne
installato anche sul primo personal computer, l'Altair 8800 e, nel 1980, la IBM scelse il chip a 8 bit
8088 per la sua serie di PC, portando così Intel al vertice dei produttori mondiali di microprocessori. Il
rapido sviluppo del mercato dei personal computer si deve anche all'8088 e ai suoi successori.
L’informatica moderna ha la sua base nel microprocessore Intel 8086 sviluppato nel 1981. Questo
microprocessore (il primo che utilizza una logica interna a 16 bit) ha dato il via all’architettura moderna
x86 utilizzata ancora oggi. Realizzato con circa 29000 transistor prodotti con tecnologia a 3 micron
(micro metri cioè 0,008 mm, indica la distanza tra un circuito e l’altro) , l’8086 operava con una
frequenze tra i 5 e i 10 mhz (mhz indica la frequenza, in questo caso il numero di oscillazioni della
corrente in un secondo di tempo, 5 milioni di volte in un secondo). I personal computer moderni sono
nati quindi nel 1981 con il microprocessore Intel 8086. Questo ha permesso all’azienda californiana di
ottenere innumerevoli successi e quindi di espandersi e guadagnare parecchio denaro…
Pagina 4
3. CHE COS’È UN MICROPROCESSORE?
Si definisce Microprocessore una piccola unità centrale di elaborazione (CPU, Central Processing
Unit), impiegata in computer di dimensioni compatte e, come circuito indipendente, in una vasta
gamma di altre applicazioni. La CPU svolge tutte le operazioni necessarie al funzionamento del
computer: in poche parole elabora i dati inseriti secondo le indicazioni ricevute dall’utente tramite
appositi comandi, raggruppati in programmi. Numerosissimi sono i dispositivi elettronici di uso
quotidiano che funzionano grazie a un microprocessore; tra questi, il televisore, il telefono cellulare, il
videoregistratore. L'avvento del microprocessore è stato reso possibile dalla progressiva
miniaturizzazione dei circuiti integrati e dall’evoluzione della tecnologia dei semiconduttori.
Il microprocessore è l'unità di elaborazione caratteristica dei personal computer. Si distingue dalle altre
CPU (unità centrali di elaborazione) per le dimensioni straordinariamente contenute: su una piccola
lastrina di silicio esso ospita tutti i circuiti integrati necessari a leggere, elaborare e memorizzare i dati
gestiti dal computer. Possiamo quindi affermare che un microprocessore è un chip evoluto di
dimensioni compatte. Basta pensare che un microprocessore moderno (l’Intel Pentium 4 per esempio)
ha dimensioni di soli 3 cm di lunghezza e larghezza.
4. STRUTTURA E FUNZIONI DI UN MICROPROCESSORE
Un microprocessore è realizzato su una singola lastrina di silicio, detta wafer o chip, opportunamente
protetta da un contenitore di pochi centimetri per lato. Malgrado le piccole dimensioni, riunisce
centinaia di migliaia di componenti e può essere programmato per svolgere un gran numero di funzioni.
Un microprocessore integrato contiene tipicamente i registri (celle di memoria ad alta velocità), il
coprocessore matematico, deputato a eseguire calcoli a virgola mobile, e la ALU (Unità LogicoAritmetica). Dispone inoltre di interfacce per collegarsi a memorie esterne e ad altri sistemi. Esso
attinge i dati e le istruzioni da eseguire alla memoria centrale, quindi procede con le elaborazioni e
restituisce i dati ottenuti alla memoria centrale. La velocità di esecuzione di questo complesso di
operazioni dipende dalla frequenza di clock e dall’architettura del sistema; la prima si misura in MHz
(megahertz), la seconda, in bit.
La frequenza di clock, come già accennato in precedenza, è quella più menzionata nelle indicazioni
della velocità di un computer. La sua unità di misura, l’hertz, è l’unità di misura che corrisponde ad una
oscillazione o ciclo per secondo. Un hertz è dato ad esempio da un pendolo che in un secondo oscilla da
destra a sinistra e da sinistra a destra. In un computer non si parla di hertz ma di megahertz e gigahertz,
ovvero di milioni e miliardi di hertz. Le oscillazioni sono prodotte da una piastrina di quarzo che,
sollecitata elettricamente, si mette a vibrare ad una velocità di svariati miliardi di oscillazioni al
secondo (GHz). Nei computer, le informazioni vengono trasferite seguendo le oscillazioni, che in gergo
informatico si chiamano cicli. Sono le vibrazioni della piastrina di quarzo che forniscono gli impulsi di
temporizzazione al microprocessore, il quale svolge i suoi compiti a seconda della velocità dei cicli,
quindi del clock interno.
Il principale criterio di classificazione dei microprocessori è il numero di bit di informazione che
possono essere trasferiti "in parallelo" (contemporaneamente) e conservati nei registri interni. Questo
numero è in continuo aumento, grazie allo sviluppo della tecnologia dei circuiti; attualmente sono
comuni microprocessori a 16 e 32 bit, e sono già stati sviluppati integrati a 64 bit. Questa è
l’architettura di un microprocessore: la capacità di trasferire parallelamente per ogni ciclo di clock più
bit diversi. L’architettura di oggi prende il nome di X86 e indica CPU con la capacità di trasferire 32 bit
Pagina 5
contemporaneamente. L’architettura X86-64 invece indica CPU con la capacità di trasferire 64 bit:
questo tipo di architettura è stata introdotta per la prima volta da AMD con il suo processore Athlon 64.
I microprocessori svolgono le loro funzioni con il sistema binario e non con il sistema decimale.
Capire come mai i microprocessori utilizzano un sistema binario è relativamente semplice. In
elettronica quando un generatore fornisce tensione ad un utilizzatore nel circuito passa una corrente e
questo equivale al bit 1 = acceso. Se invece il generatore a causa di un interruzione del circuito non
fornisce più tensione all’utilizzatore nel circuito non fluisce più corrente e si ha quindi il bit 0 = spento.
Mentre se volessimo utilizzare il nostro ben amato sistema decimale a dieci cifre dallo 0 al 9 dovremmo
creare circuiti aritmetici in grado di distinguere almeno 9 segnali diversi tra loro. Diventerebbe tutto
estremamente complicato e delicato! Pensate poi di estendere il concetto alla memorizzazione di una
lettera dell'alfabeto e di tutti i caratteri speciali che usiamo sulla tastiera. Ci sarebbe da impazzire. Non
è facile in un circuito creare segnali diversi l'uno dall'altro. Con il sistema binario, invece, qualsiasi sia
il supporto in cui vogliamo memorizzare un dato, ci basterà applicare la convenzione del segnale
presente o assente in una data posizione. Le cifre (e i dati che esprimono altri caratteri) si allungano di
sicuro, ma il concetto si sviluppa in modo assolutamente premiante in termini di semplicità e quindi di
affidabilità. Anche a noi capita a volte di non capire bene se una cifra scritta un pò male a mano sia un
3 o un 8, oppure un 9 o uno 0, no? Questa è la ragione per cui tutti i computer usano nel loro interno un
sistema elementare di registrazione binaria. Ma non solo i computer, ormai siamo nell'era digitale e il
successo si è esteso ad una serie molto grande di apparati elettronici, dalle trasmissioni TV, ai cellulari,
alla robotica, ecc. Quando un computer deve farci conoscere i risultati o ricevere da noi dei dati, magari
da tastiera, si avvale di circuiti che provvedono ad una adeguata conversione verso il nostro linguaggio.
Un microprocessore moderno è costituito da milioni di piccolissimi transistor (basta pensare che il
processore Intel Pentium 630 ne utilizza 169 milioni) disposti sul wafer di silicio. Il transistor è quindi
l’unità base di un microprocessore. Costituito da una combinazione di materiali semiconduttori (di
solito germanio o silicio) messi in comunicazione attraverso contatti elettrici, questo dispositivo svolge
le stesse funzioni di un tubo a vuoto, ma con costi, peso e consumo di potenza assai ridotti e con
maggiore affidabilità. Un tubo a vuoto (o più comunemente detto Valvola) rende possibile la
manipolazione e l'amplificazione dei segnali. Deboli segnali radio e audio possono essere amplificati, e
segnali musicali o vocali possono venire sovrapposti alle onde. Lo sviluppo di diverse varietà di tubi,
progettati per funzioni specializzate, permise il rapido progresso della tecnologia delle
radiocomunicazioni prima della seconda guerra mondiale, mentre durante la guerra apparvero i primi
calcolatori elettronici, che utilizzavano migliaia di tubi a vuoto. I transistor che costituiscono un
microprocessore opportunamente collegati tra loro formano i circuiti logici di base (AND, OR, NOT,
XOR). I circuiti logici di base costituiscono qualsiasi operazione di calcolo se utilizzati correttamente
dal processore. Essi, a loro volta sono collegati secondo le regole dell’algebra detta “di Boole” per
formare i registri, ovvero memoria RAM e ROM, circuiti aritmetici e di controllo.
Pagina 6
4.1. Cpu, Alu ed Fpu
I processori di classe x86, possiedono due unità di calcolo distinte: la Alu e la Fpu. La Alu (Aritmetic
Logic Unit - Unità Aritmetico Logica) serve per processare i numeri interi ossia i numeri naturali
positivi e negativi nonchè operazioni di logica booleana. La maggior parte dei software di
videoscrittura (Word), database (Access) e di grafica 2D usa la unità Alu del processore.
L’unità Fpu (Floating Point Unit - Unità di calcolo in virgola mobile) serve invece
per processare i numeri con virgola ossia quelli razionali frazionari ed irrazionali
(3.14 ad esempio) e quindi per il calcolo di divisioni, radici, funzioni
trigonometriche, logaritmi ecc.. Questo tipo di calcolo è usato da applicativi
software di ingegneria come Autocad, di calcolo scientifico e, in parte, dai fogli di
calcolo come Excel. Negli ultimi tre anni sempre più applicativi multimediali
vanno ad usare queste istruzioni ed in particolare i sempre più diffusi videogiochi
3D e le applicazioni di streaming video quali Flaskmpeg, Adobe premiere ecc.
L’unità Fpu è detta anche “Coprocessore matematico” in quanto sui processori 8086, 80286 e 80386 la
Fpu era situata su un chip esterno detto 8087, 80287 ed 80387. E’ per questo che le istruzioni classiche
in virgola mobile dei processori Intel ed Amd sono dette anche x87. Nella figura potete osservare un
chip coprocessore matematico 387 a 33 Mhz prodotto da Cyrix che andava inserito in uno zoccolo a
parte vicino a quello del processore 386 Dx 33 Mhz di cui potenziava le capacità di elaborazione dei
numeri con virgola di circa 20 volte lavorando in parallelo ad esso. L’insieme dell’unità Alu e della
Fpu forma la Cpu (Central Processing Unit) ed è per questo che Cpu e processore significano la stessa
cosa.
4.2. Il Bus
In informatica, il Bus è un insieme di linee di connessione usato per il trasferimento dati tra i
componenti di un computer. Il bus è una via di collegamento suddivisa in "corsie", che permette lo
scambio di informazioni tra le diverse parti del sistema: microprocessore, controllore del disk drive,
memoria e porte di input/output.
Gestiti di norma dal microprocessore, i bus sono specializzati nel trasporto di diversi tipi di
informazioni: il data bus, costituito da un gruppo di linee realizzate come piste su una scheda a circuito
stampato, è destinato a trasportare i dati; l'address bus, a trasportare gli indirizzi (locazioni di memoria)
in cui sono reperibili specifiche informazioni; il control bus, le istruzioni e i segnali di controllo che
coordinano il corretto funzionamento delle diverse parti del sistema.
Ogni bus è caratterizzato dal numero di bit che può trasferire contemporaneamente: un bus dati a 16 bit,
ad esempio, trasferisce dati a 16 bit per volta. Il tempo necessario per il trasferimento attraverso un bus
è solitamente dell'ordine dei nanosecondi.
I bus sono parte integrante del sistema interno di trasferimento dati. Nei computer che dispongono di
uno o più slot di espansione (connettori per l'aggiunta di schede stampate) quando le schede di
espansione vengono inserite, si collegano elettricamente ai bus e divengono a tutti gli effetti parti del
sistema.
Pagina 7
5. EVOLUZIONE STORICA DEI PROCESSORI e loro principali caratteristiche
Qui inizia la parte principale di questo approfondimento: analizzeremo tutta la storia dell’evoluzione
del cuore delle macchine da calcolo e descriveremo le loro principali caratteristiche. Questo non deve
essere considerato solo un "semplice approfondimento", ma una vera dimostrazione della corsa
tecnologica che ha contraddistinto questo campo negli ultimi 11 anni. Nella prima parte daremo
un'occhiata a tutti i processori di casa Intel, dall'inizio fino ai giorni nostri. Successivamente,
continueremo con la controparte AMD. Molti lettori ricorderanno i tempi in cui un sistema dotato di
processore Pentium 100 e 16 MB di memoria erano lo "stato dell'arte", e rappresentava
l'equipaggiamento definitivo per. Questo accadeva nel 1994, e il prezzo di un computer del genere
superava i 3000$.
Per comprendere l’architettura degli attuali processori per Computer è necessario conoscere bene la
loro evoluzione e la tecnologia elettronica che ne è alla base. La famiglia di processori x86 ha radici
profonde nella storia dell'elettronica moderna e con tutti i pro e i contro del caso ancora oggi, a 20 anni
dalla sua introduzione sul mercato, continua a costituire il cuore dei computer.
5.1. Processori x86 di prima generazione
Tornando agli albori della tecnologia informatica nel 1981 Intel (Integrated Tecnology) introdusse il
primo processore a 16 Bit per Personal Computer Ibm Xt: il mitico Intel 8086; Nell' 8086 sono state
definite le linee guida dell’architettura x86 e a distanza di 20 anni, ancora oggi per garantire la
compatibilità con il passato, troviamo intatti nei processori moderni elementi architetturali di questo
chip capostipite della famiglia x86. La Cpu era costruita integrando nel silicio circa 29.000 transistor.
La potenza di calcolo era così bassa che persino le applicazioni Dos in semplice testo a 16 colori erano
lentissime ed il refresh (aggiornamento a video) dei fogli di calcolo come il Lotus 1-2-3 era cosi lento
che durante un ricalcolo si poteva assistere alla ricostruzione della tabella dall’angolo in alto a sinistra a
quello in basso a destra dello schermo. Ne venne prodotta anche una versione a 8 bit detta 8088 la
quale, avendo costi inferiori, fu poi quella maggiormente commercializzata.
Il benchmark (programma utilizzato per analizzare le prestazioni
di un microprocessore) usato allora per la misura delle prestazioni
era il “Norton System Information” che per la Cpu 8086 a 4.8
Mhz segnava un indice pari a “1” e saliva a 2 per l’8086 a 10 Mhz.
Questo processore poteva indirizzare al massimo 1 Megabyte di
memoria Ram (memoria ad accesso casuale) di cui realmente solo
640 Kbyte erano disponibili per il sistema operativo Dos.
5.2. Processori di seconda generazione
L’introduzione dell’80286 nel 1982 significò un vero salto da un punto di vista
tecnologico; con i suoi 134.000 transistor e frequenze tra 6 e 20 Mhz otteneva
un indice Norton tra 8 e 21. Grazie alla sua capacità di gestire 16 Mbyte di
memoria Ram rese possibile l’apparire delle prime arcaiche interfacce grafiche
(Windows 2.0 e 2.1). Il 286, come tutti i processori Intel successivi, disponeva
di una perfetta compatibilità all’indietro con i programmi Dos scritti per l’8086
mentre i programmi che volessero usare la memoria al di sopra del megabyte
Pagina 8
dovevano accedervi con una modalità “protetta” che rendeva disponibile tramite un driver Xms
(Extended memory specification) la memoria da 2 a 16 Mbyte.
5.3. Processori di terza generazione
Il primo 80386 Dx fu realizzato nell’Ottobre 1985 integrando 275.000 transistor, partito dai 16 Mhz
arrivò fino a 40 Mhz con un indice di prestazioni Norton da 22 a 43. Con il suo bus interno a 32 Bit
poteva indirizzare una maggiore quantità di dati e gestire una quantità di memoria Ram fino a 4
Gigabyte contro il massimo limite di 16 megabyte dei precedenti processori Intel a 16 Bit. La sigla Dx
sta per Double word eXternal ed indica la capacità del processore di gestire due word (parole) di
16+16=32 Bit. External sta a significare che il processore comunica verso l’esterno, ossia verso il bus
di memoria della scheda madre, sempre a 32 Bit. Intel produsse in seguito anche una versione a basso
costo 80386 Sx (Single word eXternal) con bus interno a 32 bit ed esterno a 16 bit.
La potenza di calcolo del 386 era divenuta sufficiente a gestire un vero
sistema operativo grafico di tipo Gui (Graphical User Interface) e ciò ha
permesso la definitiva affermazione di Windows 3.0 e poi 3.1. In realtà queste
versioni di Windows continuavano ad usare la modalità di indirizzamento
della memoria segmentata a 16 Bit e bisognerà attendere Windows 95 per
vedere in opera i primi programmi operare interamente a 32 Bit. Questo
processore segna anche l’entrata in campo della concorrenza di Intel: Amd
(Advanced Micro Devices) aveva appena prodotto il suo primo "clone" 386 a
40 Mhz e da qui cominciò la battaglia a suon di denunce e carte bollate tra le
due grandi aziende costruttrici di processori.
5.4. La memoria cache
Il 386 Dx segna anche l’introduzione della tecnologia di caching della memoria. Si vide che il costoso
(per l’epoca) 386 a 33 Mhz, in condizioni standard e con l’uso di comune memoria Ram dinamica, non
risultava affatto più veloce del 386 a 25 Mhz. La lentezza della memoria Ram da 80 nanosecondi a cui
il processore accedeva per scrivere e rileggere dati fungeva da collo di bottiglia strozzando le
prestazioni. Si pensò cosi di saldare sulla scheda madre un paio di chip da 32-64 Kbyte di veloce
memoria Sram (Static Ram – Ram Statica) da 20 ns per velocizzare la trasmissione dati tra il
processore e la memoria Ram di sistema (vedi figura).
Il meccanismo è basato sul principio che alcuni dati, appena impiegati, possano
essere richiesti di nuovo per la successiva elaborazione. Se gli stessi vengono
quindi memorizzati in un’area di memoria ad accesso ultrarapido il processore
può avere immediato accesso agli stessi senza stare a richiederli di nuovo alla
lenta memoria Ram. Per fare un esempio pratico prendiamo una Cpu a 386 a 40
Mhz funzionante su una scheda madre dotata di memoria Ram dinamica da 80
ns; a 40 Mhz il 386 impiega 20 ns per completare un ciclo di eleborazione,
ogni accesso alla memoria centrale deve durare quindi almeno quattro cicli di
clock (80/20=4). La ram dinamica ha anche dei cicli di attesa (Wait States) che
possono far lievitare a 6 i cicli di clock nei quali il processore rimane in stato di
Idle (ozio) ossia a “girarsi i pollici” in attesa che la memoria Ram fornisca i
dati richiesti.
Ciò accade perché la Ram dinamica Dram è costruita in modo tale da
trattenere le informazioni in essa memorizzate solo per un brevissimo lasso di
tempo e quindi richiede un continuo rinnovo (refresh) del proprio contenuto, sia che le informazioni (i
Pagina 9
bit di dati) in essa presenti vengano aggiornati o meno. La necessità del refresh della memoria DRam
dipende dal fatto che i singoli bit sono registrati per mezzo di transistor in celle che mantengono, a mo’
di condensatori, una carica elettrica. Se la cella è carica il Bit vale 1, se è scarica vale 0. Esiste a tale
scopo un apposito circuito che si occupa di effettuare il refresh delle celle di memoria ogni x cicli di
clock della Cpu. Possiamo quindi immaginare la memoria Ram dinamica di un computer come una
smisurata griglia di celle atte a contenere i dati che di volta in volta il processore richiede.
La memoria Ram statica invece può conservare meglio i dati più poiché, essendo le sue celle in grado
di trattenere a lungo la carica elettrica, viene meno il bisogno di effettuare continui refresh. Frapporre
quindi una piccola quantità di memoria cache Sram, ossia una memoria di transito veloce da 20 ns, tra
il processore e la memoria Ram dinamica di sistema può far si che il 386 a 40 Mhz possa accedere ai
dati in un sol ciclo di clock aumentando di fatto le prestazioni nell'accesso alla memoria del 400-600%.
Questa piccola e costosissima memoria Sram, è stata appunto definita memoria cache e contiene i dati
più prossimi alle unità di esecuzione del processore. Ho voluto a lungo sottolineare questo aspetto
poiché, come è facile immaginare, con l’aumentare delle frequenze in Mhz dei processori si verificò (e
continua tuttoggi a verificarsi) il problema dei cicli di latenza delle memorie Ram che costituisce oggi il
maggior impedimento alle prestazioni degli attuali processori.
5.5. Generazione quarta: l’80486 e la cache integrata
Con l'introduzione del primo Intel 80486 un piccola porzione di cache venne inserita all'interno dei
microcircuti nel nucleo (core) del processore, il quantitativo era limitato a soli 8 Kbyte ma, essendo la
cache integrata il doppio più veloce di quella esterna su scheda madre, gli 8 Kb erano sufficienti a far
ottenere un raddoppio netto delle prestazioni rispetto al 386. Grazie ad un nuovo algoritmo questa
piccola cache integrata non solo immagazzina i dati impiegati più di recente come le cache Sram su
scheda madre ma anticipa anche gli accessi del processore importando una certa quantità di dati dalla
memoria di sistema anche quando gli stessi non sono al momento richiesti dal software. Questa
funzione, detta Read-Ahead (lettura anticipata), rende disponibili al processore anche una certa quantità
di dati che, con elevata probabilità, verranno poi effettivamente richiesti dall’applicativo.
La maggiore efficienza del 486 derivava quindi da tre fattori
fondamentali:
•
Maggiore integrazione dei microcircuiti (a 1 micron) che ha
permesso di elevarne la frequenza operativa in Mhz.
•
Memoria cache integrata da 8 Kbyte a quattro vie con algoritmo
Read-Ahead.
•
Integrazione nel nucleo dell’elettronica del coprocessore
matematico 80387 che era invece prima disponibile solo su un chip
esterno.
Questi tre aspetti costruttivi del 486 hanno fatto si che il nucleo di questo processore arrivasse ad
integrare ben 1.200.000 transistor (300.000 erano per l’80387) con un raddoppio delle prestazioni della
unità Alu e la triplicazione della potenza di calcolo della unità Fpu. Tale gap prestazionale nel calcolo
dei numeri in vigola mobile rispetto alla accoppiata 386+387 è dovuta in parte alla memoria di transito
ad alta velocità da 8 Kbyte integrata ma soprattutto alla riduzione delle distanze circuitali tra i vari
elementi. In elettronica il segnale deve seguire percorsi più brevi possibile per limitare al massimo sia
le interferenze elettromagnetiche che le dispersioni del segnale stesso. Raggruppare i tre componenti ed
Pagina 10
integrarli sullo stesso quadratino di silicio ha quindi ridotto la lunghezza delle connessioni all’ordine
dei millesimi di millimetro contro gli svariati centimetri di rame che è necessario stendere su un
circuito stampato per unire i tre componenti (Alu, Fpu e Cache) a sé stanti.
I primi esemplari del 486 presentati nel 1989 funzionavano con una frequenza di 25 MHz e sono in
seguito passati ai 33 MHz. Il 486 Sx era invece una versione economica privata del coprocessore
matematico 80387 integrato. Quando Intel ha però introdotto il modello 486 Dx a 50 Mhz i produttori
di schede madri fecero notare che una frequenza così elevata (per l’epoca) poteva introdurre disturbi di
segnale e correnti parassite sulle piste delle schede madri. Di conseguenza intel produsse il processore
486 Dx2 il quale per via di un moltiplicatore interno 2x (leggi “2 per”) poteva andare a 66 Mhz pur
funzionando su un bus di sistema a 33 Mhz. In seguito venne introdotto il 486 Dx4 a 100 Mhz con
moltiplicatore interno 3x (33.3x3=100). La tecnica del moltiplicatore interno è stata portata all’estremo
negli attuali processori e nel Pentium 4 in particolare. Avrete dunque capito che ad impostare la
frequenza in Mhz del processore è un apposito circuito presente sulla scheda madre. Questo circuito
detto “clock generator” è un oscillatore al quarzo che genera la frequenza di bus di sistema, frequenza
dalla quale poi si ricavano, tramite moltiplicatori o divisori quella del processore e di tutti gli altri
componenti (Memoria Ram, bus Pci e Agp ecc.). L’indice di prestazioni Norton Si variava dai 54 per il
486 a 25 Mhz ai 290 per il 486 a 133 Mhz di Amd.
Nel marzo del 1993 Intel introdusse il primo Pentium con frequenza di 60 Mhz, Intel non lo chiamò,
come sembrava scontato, "586" al fine di aggirare la legge americana che non consente di riservarsi il
copyright di un numero. La dicitura “Pentium” diveniva quindi un diritto d’autore di Intel e nessuna
altra società avrebbe potuto usare in seguito quel nome.
Il Pentium venne realizzato integrando nel silicio 3.100.000 transistor e
rispetto ai 486 proponeva tecniche avanzate di gestione interna dei dati
come una Branch Prediction Unit (unità di predizione dei salti) e tecniche
di parallelismo nell’elaborazione del codice che stanno alla base di tutti i
più recenti processori. Capire come funziona un Pentium è dunque
importante per comprendere le strategie tecnologiche che hanno
permesso di sviluppare processori negli ultimi 10 anni. La potenza della
unità coprocessore matematico (Fpu) del Pentium è praticamente
quadrupla rispetto a quella del 486 e questo lo si deve al fatto che sono
state introdotte nel nucleo del processore tre nuove sezioni che eseguono
direttamente in hardware calcoli di addizione, moltiplicazione e divisione. Da un punto di vista
dell’elettronica le primissime versioni di Pentium a 60 e 66 Mhz erano integrate a 0.8 micron con
alimentazione a 5 volt per poi passare ai 0.6 micron nelle successive release da 75 a 166 Mhz con
alimentazione a 3.3 Volt. La tecnica di integrazione usata era la nuova Bicmos che fa uso di transitori
bipolari in quei punti della microcircuiteria ove necessitano tempi di risposta rapida e di transitor Cmos
(complementary metal oxide semiconductor) per la restante parte. Questi ultimi fanno uso di strati di
isolante sul silicio e sulle micropiste in allumino per ridurre le correnti e le dispersioni
elettromagnetiche contenendo i consumi e la potenza dissipata dai circuiti. L’indice Norton variava dai
190 per il modello a 60 Mhz a 638 per il modello a 200 Mhz. I nuovi processori Intel con FSB a 66
mhz venivano montati su schede madri con Socket 7 (in informatica viene definito socket un
particolare tipo di alloggiamento per il processore).
Pagina 11
5.6. Pentium Mmx e le istruzioni multimediali
È stato introdotto nel Gennaio 1997 ed è stato l’ultimo processore della quinta
generazione. Sfruttando una integrazione a 0.35 micron ha potuto essere
alimentato a soli 2.8 volt crescendo in frequenza dai 166 ai 233 Mhz (266 Mhz
nella versione per Notebook) con un indice Norton di 750. Il bus rimaneva a
64bit 66MHz. Era più veloce del Pentium classico del 8-10% a parità di
frequenza in quanto disponeva di una cache L1 raddoppiata a 32 Kbyte
(16+16) che ha fatto lievitare il numero dei transistor integrati a 4.5 milioni. La
vera novità sta però nella introduzione di 57 nuove istruzioni nel codice base
x86. Queste istruzioni, dette Mmx (MultiMedia Extension) sono state il primo
tentativo di estendere il codice base x86 ed adattarlo alle nuove applicazioni multimediali di grafica 2D
e (in parte) 3D, streaming video, audio, riconoscimento e sintesi vocale. Trattasi di istruzioni di tipo
Simd (Single Instructions Multiple Data) ciascuna delle quali può operare su diversi blocchi di dati
sfruttando le unità di elaborazione parallele interne al processore. Le istruzioni eseguite dai software
multimediali infatti ben si prestano ad essere parallelizzate in quanto sono costituite per lo più da cicli
ripetitivi ed operano spesso sugli stessi gruppi di dati. Le istruzioni MMX operano su 64bit alla volta,
configurabili secondo l'applicazione specifica come 8 word da 8bit, 4 word da 16bit, o 2 word da 32bit.
Tutti i successivi processori x86 hanno poi adottato queste istruzioni ma il loro sfruttamento reale da
parte dei programmatori di applicativi software ha tardato un paio di anni prima di venire
implementato.
5.7. Pentium Pro, Pentium II e Pentium III, la sesta generazione
Per aumentare la potenza di elaborazione di un processore si può agire
per due vie: aumentare la sua frequenza operativa (Clock) in Mhz
oppure migliorare le sue capacità IPC (Instructions per Clock) ossia
la possibilità di elaborare, parallelizzandole, più istruzioni per ciclo di
clock. La parola clock in inglese letterale significa orologio ma in
questo contesto è da intendersi come “temporizzatore”; parliamo cioè
di un apposito circuito oscillante al quarzo che genera una determinata
frequenza sulla quale vengono temporizzati diversi eventi logici.
Il Pentium Pro ha rappresentato un vero salto generazionale.
Costituito da 5.5 milioni di transistor integrati a 0.6 micron e introdotto da Intel nel Novembre 1995
questo processore superscalare implementa delle nuove tecniche di elaborazione dati che possiamo
riassumere in:
•
Cache L2 integrata nel package: oltre alla cache di primo livello da 32 Kbyte anche la cache di
secondo livello da 256 Kbyte è stata integrata nel chip per fornire più rapidamente i dati alle
unità di esecuzione. In realtà la cache non è integrata sullo stesso pezzo di silicio (die) ma su una
porzione separata che condivide con il nucleo principale lo stesso package ed un canale di
comunicazione preferenziale. Questo rendeva il Pentium Pro costosissimo da produrre ma tale
direzione, abbandonata con il Pentium II sarà reintrodotta in seguito nel Celeron e da li in tutti i
processori successivi.
•
Superpipeline: è stata aumentata a 14 la profondità delle pipeline di esecuzione delle istruzioni,
più stadi di preparazione intermedia delle operazioni permettono di mantenere le unità di
elaborazione sempre occupate e consentono di accrescere la frequenza operativa in Mhz del
Pagina 12
processore. La pipeline è assimilabile ad una catena di montaggio nella quale scorrono le
istruzioni da elaborare, ogni stadio esegue una parte dell’elaborazione. Pipeline profonde
possono sì garantire alte frequenze operative, ma in caso di errori nella previsione per
l’elaborazione anticipata del codice, è necessario svuotare completamente la catena di montaggio
per riempirla con i dati corretti. Ciò significa perdere preziosi cicli di elaborazione, che
diminuiscono le prestazioni generali del sistema. La pipeline quindi consente l'elaborazione di
nuovi dati senza necessità di attendere che i dati precedentemente inviati termino la loro
elaborazione. Con questo metodo i processori centrali, o quelli della scheda grafica, possono
ricevere dati mentre ne elaborano altri, migliorando l'efficienza del sistema.
•
Superscalarità spinta: sono state portati a tre i canali di elaborazione parallela delle istruzioni
contro i due del Pentium. Possiamo dire, con buona approssimazione, che il Pentium Pro
implementa al suo interno tre 486 operanti in parallelo.
•
Esecuzione fuori ordine (Out of order): Nel Pentium, era possibile l’esecuzione
contemporanea di due istruzioni utilizzando due pipeline separate; l'esecuzione era legata alla
sequenza definita dal programma, perciò ogni volta che un'operazione non poteva essere eseguita
subito a causa di un stallo, entrambe le pipeline restavano ferme. Nel Pentium Pro invece le
operazioni x86 vengono convertite in istruzioni micro-ops (micro-operazioni). Attraverso questo
passaggio si eliminano molte delle limitazioni tipiche del set di istruzioni x86, cioè la codifica
irregolare delle istruzioni e le operazioni sugli interi che richiedono il passaggio di dati dai
registri interni alla memoria. Le micro-ops vengono quindi passate a un motore di esecuzione
capace di eseguirle fuori ordine, modificandone la sequenza così da mandare in esecuzione quelle
pronte e lasciare in attesa quelle che non sono. Con ciò se una Pipeline nel Pentium Pro va in
stallo le altre due possono continuare ad operare senza essere svuotate. La sequenza delle
istruzioni viene infine riordinata da una apposita sezione hardware detta Reorder Buffer alla fine
della elaborazione.
Per quanto possa sembrare strano dopo l’architettura del Pentium Pro, che è stata la base di
realizzazione di tutti i processori successivi, non ci sono state grandi mutazioni tecniche strutturali nel
miglioramento delle prestazioni delle Cpu Intel atte ad aumentare il fattore Ipc.
Il nucleo del Pentium II deriva direttamente dell'architettura “P6” del Pentium
Pro. Addirittura si potrebbe parlare quasi di una semplificazione (es: riduzione
delle pipeline da 14 a 10 stadi, finestra per l'esecuzione fuori ordine e
speculativa più piccola, etc..) con l'obbiettivo di concentrarsi più sull' aumento
della frequenza operativa che non sull'aumento del fattore Ipc (Istructions per
Clock). Con il Pentium II si cambia anche formato, dal vecchio processore su
zoccolo (socket) Intel passa ad un nuovo formato proprietario denominato Slot I
consistente in un connettore a pettine nel quale alloggiare una "cartuccia" processore contenente il chip
vero e proprio e un certo quantitativo di cache L2 ad alta velocità (512KB a metà frequenza nei modelli
normali,1MB o 2MB a piena frequenza nei modelli Xeon dedicati ai server). Lo slot I sarà disponibile
prima a 66MHz e successivamente a 100MHz per meglio supportare i processori con frequenze di circa
400MHz. Il Pentium II è stato introdotto per la prima volta nel Maggio 1997 e contava circa 7,5 milioni
di Transistor realizzati con tecnologia a 0,35 micron.
Dopo il Pentium II è la volta del debutto del Celeron. Intel si rende conto che l'assemblamento della
cartuccia e della cache di secondo livello rendono il prodotto troppo costoso e difficile da offrire alla
Pagina 13
fascia bassa del mercato per cui prima immette sul mercato una versione del Pentium II priva della
cache di secondo livello, e poi viste le scarse prestazioni di questa soluzione, mette a punto un
processore dotato di cache L2 ridotta a 128K ma direttamente integrata nel die di silicio. Il Celeron
debutta a 300MHz con bus a 66MHz e per molto tempo sarà il cavallo di battaglia di Intel nel settore
entry-level vendendo moltissimi pezzi e sbaragliando la concorrenza di AMD. Con il Celeron debutta
anche la tecnologia di integrazione a 0.25 micron con tensione di core di 2V, utilizzata anche nei
Pentium II dai 350MHz in poi.
Al Pentium II succede il Pentium III (Marzo 1999), invero estremamente simile al suo predecessore. Il
PIII debutta a 450MHz, utilizza ancora lo Slot I ed ha un FSB (Front Side Bus) a 100MHz.
Internamente, a parte piccole ottimizzazioni, la innovazione più importante è costituita
dall'introduzione delle estensioni SSE. Le SSE (Streaming Simd Extension) rappresentano per i numeri
in virgola mobile quello che le MMX rappresentano per i numeri in virgola fissa. In pratica viene
potenziata l'unità floating point per poter gestire operazioni di tipo SIMD (Single Istruction Multiple
Data). L'unità manipola dati ampi 128bit e configurabili come 4 numeri floating point a singola
precisione (32bit) o come 2 numeri a doppia precisione (64bit). Le SSE risultano utili nella
manipolazione dei contenuti multimediali, nella decompressione dei filmati MPEG2 (DVD) e
nell'elaborazione della geometria 3D (T&L).
L'ultima evoluzione dell' architettura P6 porta al Pentium III Coppermine. Il Core
Coppermine integra nel die 256KB di cache L2 a piena frequenza, bassa latenza ed
elevata banda (256bit di collegamento con il core). Con il Coppermine si torna
anche al socket (socket 370), abbandonando il costoso Slot I, e si raggiungono i
133MHz di FSB. Intel coglie anche l'occasione per innaugurare la nuova tecnologia
a 0.18 micron che porterà il Coppermine dai 600MHz del debutto alle soglie dei
1100MHz, frequenza alla quale la tecnolgia P6 comincia a mostrare tutti i suoi limiti
costringendo Intel ad un lungo stallo nell'avanzamento tecnologico, stallo che durerà fino alla
presentazione del Pentium 4 e del Pentium III Tualatin.
Mentre il Pentium 4 rappresenta di fatto il passaggio per Intel dalla sesta alla settima generazione, il
Pentium III Tualatin non è altro che l'ennesima ottimizzazione della collaudata architettura P6 tesa a
servire il mercato dei portatili e dei server in attesa della definitiva stabilizzazione della piattaforma
Pentium 4. Il core Tualatin annovera una cache L2 integrata da ben 512KByte e una tecnologia di 0.13
micron, per il resto risulta identico al Pentium III. Nuova veste anche per il Celeron il cui bus passa a
100MHz e che nelle ultime versioni eredita la tecnologia Tualatin a 0.13 micron che permette
l'integrazione di 256KByte di cache. Con il Pentium 4, introdotto nel Novembre 2000, Intel vince la
sfida al processore più veloce con il suo diretto concorrente AMD e si aggiudica una forte quota di
mercato nelle vendite. Il nuovo componente Intel aveva un solo svantaggio però: costava parecchio
denaro e questo fu uno dei motivi per cui molte aziende preferirono soluzioni molto più economiche
targate AMD (vedi “Sviluppi recenti” a pagina 16)
5.8. La concorrenza di Intel: Advanced Micro Device
AMD è praticamente da sempre attiva nel mondo dell'elettronica, in particolare nell'ambito delle
memorie, delle logiche programmabili e, ovviamente, dei processori. Benchè adesso sia acerrima
avversaria di Intel, un tempo le cose tra i due colossi non stavano in questi termini, ma anzi c'era
collaborazione e (addirittura) amicizia, ma partiamo dall'inizio...
Pagina 14
Advanced Micro Device nasce nel 1969, nel ' 76 inizia la partnership con Intel con la quale firma un
accordo per lo sfruttamento dei microcodici degli allora neonati processori Intel, nel 1982 AMD e Intel
rafforzano la collaborazione firmando un accordo decennale in cui si impegnano a lavorare
congiuntamente sulla piattaforma x86. Nel '87 arriva però la rottura, AMD accusa Intel di non aver
rispettato i patti e vince la causa nel 1992 anno in cui comincia a sviluppare autonomamente un
processore alternativo a quello Intel.
Ai tempi del 486, quando ancora erano in corso gli accordi di collaborazione con Intel, AMD e Cyrix
(altro produttore di processori e coprocessori x86) detenevano addirittura quote di mercato del 30%. I
prodotti AMD erano in pratica "cloni" dei processori Intel e Intel sopportava la situazione in nome di
un principio noto nel mondo dell'elettronica come "Second Source"; in pratica per l'affermazione di un
chip è necessario che esistano sul mercato almeno due fornitori dello stesso (o di un prodotto
equivalente ed intercambiabile) per scongiurare eventuali problemi di approvvigionamento.
La situazione mutò improvvisamente con l'avvento del Pentium, Intel decise di mettere fine al
fenomeno dei processori cloni e da allora i progettisti di CPU alternative ai prodotti Intel si sono dovuti
arricciare le maniche per sviluppare da capo prodotti competitivi e al contempo totalmente compatibili.
5.9. AMD K5 - La risposta al Pentium
Fu così che AMD propose il suo primo processore "indipendente": il K5. Il K5 era, sugli interi,
migliore a parità di clock rispetto sia al Pentium che al Cyrix 6x86 ma fu introdotto
in ritardo sul mercato esibendo minori frequenze rispetto alla concorrenza e
prestazioni inferiori sul versante Floating-Point. Questo ritardo nell'introduzione di
valide alternative al Pentium fece perdere molte quote di mercato ai concorrenti
che dovettero negli anni successivi faticare molto per recuperare il terreno perduto
(già nel '98 Intel deteneva l'87% del mercato!). A poco valse l'introduzione del PRating...Il K5 aveva 16K di I-cache L1 e 8K di D-cache L1 annoverando 4.3
milioni di transistor, massima freq. raggiunta: 166MHz
5.10. AMD K6 - Il primo processore AMD di 6° generazione
Il K6 implementò l'architettura RISC86 superscalare, aggiunse il supporto alle
istruzioni MMX, eliminò il P-Rating e portò la cache di primo livello a ben 32K +
32K (contro i 16 + 16 del Pentium MMX, Pentium Pro e Pentium II). L'architettura
interna ricalca le features già descritte per i processori di sesta generazione . Il
processore AMD utilizzava ancora il socket 7 e veniva prodotto con una tecnologia
a 0,35 micron. È stato introdotto per la prima volta nell’Aprile del 1997. Benchè
fosse dotato di features avanzate, il K6 aveva una pecca: era costruito su pipeline a bassa latenza a 6
stadi e 8,8 milioni di transistor, ottima per ridurre gli stalli ma difficile da far salire in frequenza,
almeno rispetto ai 10 stadi del Pentium II. La FPU esibiva performance ampiamente inferiori al
Pentium. La cache di secondo livello è sempre saldata su piastra e funziona a 66Mhz contro la cache
integrata su schedina dedicata del Pentium II e cloccata a metà frequenza del processore; questo
rappresentò una debolezza ma anche un punto di forza della piattaforma K6 perchè permetteva il
riutilizzo di piastre Socket 7 (quelle del Pentium) ed in ogni caso costi minori rispetto alla proposta
Intel.
Pagina 15
5.11. AMD K6-II - Il secondo processore AMD di 6° generazione
Nel giugno del 1998 AMD passa al K6-2 (9,3 milioni di transistor) che inaugura il Super Socket 7 a
100MHz e introduce la tecnologia 3DNow!. Si tratta di 21 nuove istruzioni multimediali che
anticiperanno le successive SSE di Intel. La tecnologia 3DNow! introdusse l'approccio SIMD (Single
Istruction Multiple Data) anche con i numeri in virgola mobile (MMX opera solo sugli interi) e permise
l'esecuzione di fino a 4 istruzioni su numeri a virgola mobile a singola precisione (32bit). AMD
pensava di compensare le scarse prestazioni della sua unità FPU con la tecnologia 3DNow!, ma lo
scarso supporto da parte degli sviluppatori fece presto riemergere le gravi debolezze in quel settore. Il
K6-II ottenne comunque un discreto successo nella fascia entry-level del mercato ma al salire della
frequenza cominciò a pesare la scarsa velocità della L2 cache esterna (100MHz). Questo processore
venne introdotto per la prima volta nel Maggio del 1998
5.12. AMD K6-III - L'ultimo esponente della famiglia K6
Nel '99 AMD introdusse il K6-3 che per un po’ fece dimenticare i problemi del
Super Socket 7 grazie ad una L2 cache da 256KByte integrata direttamente sul die
del processore ed operante alla stessa frequenza. Questo stratagemma fece vedere di
cosa era realmente capace il core K6-II e permise ad AMD di ottenere prestazioni
sugli interi migliori del corrispondente P-III. Il 22 Febbraio del 1999 furono lanciati
i modelli a 450 e 500MHz. Nel K6-3 AMD riuscì a integrare 21.300.000 transistor
usando una tecnologia 0.25 micron. Ancora scarse le prestazioni sul versante
Floating-Point.
5.13. AMD K7 - 7° generazione ?
Intenzionata a superare tutti i limiti dei precedenti progetti, AMD produce un
nuovo processore capace finalmente di competere su tutti i fronti con i prodotti
Intel. Ed infatti con l'immissione sul mercato del K7 Athlon, per la prima
volta, Intel viene battuta su tutti i fronti: sul fronte della massima frequenza di
clock, sul fonte delle prestazioni velocistiche assolute e relative, sul fronte dei
prezzi. E' un vero smacco per Intel. All'uscita del K7 Athlon a 600MHz Intel proponeva il Pentium III a
"solo" 550 MHz, ed inoltre il K7 era più veloce sia su gli interi che sul Floating Point rispetto al
Pentium III grazie ad un redesign complessivo del core ma in particolar modo della unità Floating Point
Unit, che fece salire il numero dei transistor a ben 22 Milioni (esclusa la L2 cache esterna).
I primi Athlon furono costruiti con tecnologia a 0.25 micron e interconnessioni in Alluminio ed erano
posti in una cartuccia tipo Pentium II e inseriti in uno slot chiamato Slot A, simile concettualmente allo
Slot I di Intel. Nella cartuccia era presente una L2 cache di 512KB funzionante tipicamente ad 1/2 o 1/3
della frequenza del core. Queste CPU furono introdotte sul mercato per la prima volta nell’Agosto del
1999.
Pagina 16
5.14. AMD K7 Athlon - Thunderbird e Palomino
Come Intel, anche AMD passò più tardi (seconda metà 2000) all'integrazione di
una cache di secondo livello direttamente sul die del processore. Con il passaggio
alla tecnologia 0.18 micron con interconnessioni in Rame (core Thunderbird),
AMD è riuscita a portare un consistente aumento delle frequenze e una sensibile
diminuzione del calore prodotto oltre alla su menzionata integrazione di una L2
cache, da 256KByte per il modello Athlon e da 64KByte per il Duron, operante a
piena velocità. Il passaggio coincidette anche con l'abbandono dello Slot A in
favore del più economico e pratico Socket A.
Il resto è storia dei nostri giorni: Il Pentium III ha perso la sfida con il Thunderbird sia sotto il profilo
delle frequenza (il Pentium III si è dovuto fermare a 1.1GHz per limiti tecnologici) che sotto quello
della potenza specifica e del costo. Certamente AMD ha saputo sfruttare bene il grave momento di
stallo che Intel vissuto dai tempi del fallimentare Pentium III a 1.13 GHz fino a poco tempo fa,
giocando molto sulla leva prezzo per abbracciare sempre più ampie fette di mercato ai danni
dell'avversario. Alla stabilizzazione della piattaforma Pentium 4 da parte di Intel, AMD risponde con
una ulteriore ottimizzazione della collaudata ed efficientissima architettura K7: l'Athlon XP da poco
uscito nei negozi. Poche le innovazioni del core Palomino ma sufficienti a guadagnare un incremento
di prestazioni dell'ordine del 10-20% rispetto alle soluzioni precedenti e a consolidare la quota di
mercato di AMD che pare sia ritornata su un valore del 30%. Con L'Athlon XP AMD introduce anche
il Model Number: un sistema di classificazione atto ad identificare i propri processori in base ad un
indice di prestazioni. Il model Number è un numero che segue il nome della famiglia del processore e
ne fornisce una indicazione delle prestazioni. Questo sistema si rivelò ben presto essere una strategia
commerciale per rispondere alle elevate frequenze raggiunte dal nuovo Pentium 4 di Intel non
rappresentative della potenza sviluppata in relazione ai prodotti AMD.
Come preannunciato, AMD non ha introdotto grosse modifiche al suo nuovo core (in particolare le
unità di elaborazione principali e le cache rimangono identiche a quelle precedenti) ma ne ha
ottimizzato alcuni aspetti per poter ottenere minori consumi, maggiori velocità di clock e maggiore
potenza utilizzando lo stesso numero di transistor (37,5 Milioni contro i precedenti 37 Milioni del
Thunderbird)
Qui finisce la nostra analisi storica. Dall’introduzione dell’Athlon XP e del Pentium 4 siamo giunti alla
storia dei giorni nostri: vedremo ora nel successivo paragrafo gli sviluppi recenti della battaglia in corso
per il microprocessore più veloce in atto da ormai anni tra AMD e Intel… Prima però voglio
presentarvi una tabella riassuntiva con le principali caratteristiche di tutti i processori menzionati fin ora
Pagina 17
6. SVILUPPI RECENTI
Negli ultimi tre c’è stata una lotta per il processore più veloce tra AMD e Intel. Intel ha puntato molto
sul suo chip Pentium 4 per gli ambienti industriali e domestici e sul chip Xeon per gli ambienti
Professionali. AMD da parte sua ha introdotto il processore Athlon 64 nelle sue numerose varianti e
l’Opteron per gli ambienti professionali. Ma analizziamo ora le principali caratteristiche di questi
processori.
L’Intel Pentium 4 è stato introdotto per la prima volta nel Novembre del 2000, era dotato del core
chiamato “Willamette” e aveva frequenze iniziali di 1300 Mhz. Veniva inizialmente montato su schede
madri dotate del nuovo Socket 423. Caratterizzato da un FSB di 400 Mhz, era costituito da circa 42
milioni di Transistor con tecnologia produttiva a 0,18 micron. Le novità di questo processore erano
molte ma la più importante è che furono introdotte le istruzioni multimediali SSE2 (Streaming simd
Extension 2) con l’aggiunta di 144 nuove istruzioni alle precedenti SSE del Pentium 3. Questo set di
istruzioni riusciva anche a lavorare con interi a 128 bit e con i numeri in virgola mobile a precisione
doppia. Nell’Agosto 2001 il Socket di montaggio del processore passò a 478 piedini e
nell’anno successivo venne introdotto il core NorthWood con una veloce memoria cache
L2 portata a 512 kilobytes e la famosissima tecnologia Hyper-Threading. Questa nuova
tecnica permetteva a sistemi monoprocessori di operare come se fossero disponibili due
processori che si suddividono il carico delle operazioni da effettuare svolgendole in
parallelo. Questo ottimizzò l'esecuzione dei thread, e lo spreco di cicli di clock della
CPU. La tecnica descritta si rilevò presto efficace soprattutto in ambienti professionali. Ma la svolta si
ebbe nel Febbraio 2004 con l’introduzione da parte di Intel del core Prescott. Questo nuovo Pentium 4
(da molti considerato ormai come Pentium 5 viste le numerose differenze con la precedente
generazione) veniva montato sul nuovo socket a 775 piedini, contava ben 125 milioni di transistor
realizzati con tecnologia a 0,09 micron e integrava molteplici novità nella
sua architettura interna. Nella sua ultima revisione di pochi mesi fa’ (la
nuova serie 6) il processore ha acquisito un’architettura interna
completamente a 64 bit (anche se i 64 bit puri in ambiente professionale
erano già stati introdotti nel lontano 2000 nei processori ultracostosi Itanium
per il calcolo scientifico sperimentale) per contrastare le spinte a 64 bit di
AMD. Le novità più importanti del nuovo chip sono: una memoria cache di
primo e secondo livello moltiplicata rispetto alla generazione precedente e
portate rispettivamente a 16 kilobyte e a 1 megabyte; la riduzione del
processo produttivo del chip che ha consentito ad Intel di raddoppiare il
quantitativo di cache ottenendo al tempo stesso un core più piccolo; una pipeline potenziata e resa a 31
stadi, nuove unità di predizione dei salti e soprattutto l’aggiunta di nuove 13 istruzioni SSE3. L’ultima
evoluzione di Maggio 2005 di Intel è l’introduzione della Serie 6 di Pentium basati su core Prescott 2M
che integrano l’incredibile cifra di ben 169 milioni di transistor in un core di dimensioni 3 x 3
centimetri.
Pagina 18
AMD invece da parte sua ha tentato di contrastare il dominio di Intel sul mercato dei processori con
l’introduzione del suo nuovo Athlon 64 avvenuta nel Settembre del 2003. Questo processore e le sue
future varianti utilizzavano un socket a 754 e 939/940 piedini e derivavano dal
chip professionale di AMD chiamato Opteron. La novità principale era
l’introduzione dell’archittetura a 64 bit completi chiamata per l’occasione, vista
la perfetta retrocompatibilità con i 32 bit, X86-64. Questo significava poter
eseguire sia programmi a 64 bit sia a 32. Questa strategia di mercato fu
vincente: in circa un’anno Intel (che affermava che i 64 bit nel mondo
domestico non sarebbero serviti) ha dovuto adeguarsi alle richieste di mercato
creando la sua prima CPU interamente a 64 bit con core Prescott. L’Athlon 64
era si cloccato a frequenze più basse di Intel ma con le sue caratteristiche architetturali d’avanguardia e
soprattutto grazie al suo costo molto più basso del Pentium 4, riusciva a dare filo da torcere ai più
potenti processori del colosso americano. La caratteristica più evidente dei processori Athlon 64 di
AMD e quella di integrare un controller della memoria (più comunemente chiamato in informatica
northbridge) direttamente nel core del processore in modo tale da ridurre i tempi di attesa dei dati dalle
più lente memorie RAM.
Questa è la situazione attuale del mondo dei microprocessori. La famosa legge di Moore afferma che in
media, il numero di transistor che possono essere inseriti in un chip di silicio aumenta di circa il 60%
all’anno. Questa legge è stata valida fino allo scorso anno ma oggi è venuta meno in quanto gli
ingegneri di tutto il mondo sono andati in contro ad un grande limite tecnologico che affligge il silicio
(il materiale con cui sono costituiti la maggior parte dei processori). Nel paragrafo successivo di questo
approfondimento è mia intenzione spiegarvi questo limite al quale nessuno fino ad oggi è stato ancora
in grado di porre rimedio.
Pagina 19
7. IL LIMITE TECNOLOGICO DI OGGI
Da 18 mesi ad oggi a causa di vari problemi legati alla dissipazione termica, i processori non possono
più affidarsi solo a un incremento di clock per aumentare le proprie prestazioni. Questo ha infatti
causato diversi mesi di stallo. Un nuovo passo è infine stato fatto, e sia Intel che AMD si sono
concentrati sulla produzione di processori che integrano sullo stesso chip più core. Con questo
sviluppo, è infatti possibile effettuare un nuovo salto prestazionale. Quindi in questi ultimi mesi non è
più possibile un aumento di frequenza a causa di questi 2 motivi:
• Dissipazione termica - Generalmente parlando, dal punto di vista fisico, a transistor di dimensioni
minori corrisponde un aumento dell’efficienza degli stessi (possono cioè cambiare il loro proprio
stato logico più velocemente), minore consumo di energia, possibilità di
costituire chip più piccoli e più economici. Ciò non è sempre vero dal
punto di vista pratico, come dimostrano le difficoltà incontrate nelle CPU
più recenti nell’aumentare la frequenza di funzionamento e nel dissipare il
calore prodotto. Proprio quest’ultimo elemento è il risultato della presenza
di correnti di dispersione (leakage) all’interno del chip legate
all’inefficienza dei circuiti e degli stessi transistor costruiti con il silicio.
Parte dell’energia fornita, infatti, viene dispersa sotto forma di calore,
calore che con la densità di impacchettamento raggiunte dai chip attuali ne
comprometterebbe il funzionamento portanto il chip ad una temperatura
maggiore della soglia dei 90° tollerata. A questa soglia di temperatura i circuiti interni del
processore bruciano e il processore se non sufficientemente raffreddato si dice che fonde. Basta
pensare che un moderno Pentium 570J, che opera alla frequenza di 3,8 Ghz ed è costituito con un
processo produttivo a 0,09 micron, assorbe più di 115 W di corrente e il 35% di questi sono perduti
sotto forma di calore. Questo calore porta la CPU ad operare a temperature molto vicine agli 80° C.
• Motivo elettronico – Un conduttore, per quanto abbia una sezione piccola, percorso da corrente
produce un campo elettrico e un campo magnetico (vedi parte di fisica più avanti in questo
approfondimento). Si è notato che se un transistor in silicio percorso da corrente viene messo ad una
distanza inferiore agli 0,065 micron da un altro transistor percorso da corrente i due campi magnetici
generati si trovano ad una distanza così vicini da impedire il corretto mantenimento del segnale
elettrico (che costituisce poi l’informazione binaria) nel transistor. Quindi questo fatto crea
un’incongruenza a livello logico e impedisce così al microprocessore di operare correttamente.
Pagina 20
8. PROSPETTIVE FUTURE
Dato per assodato il supporto ai 64 bit, il 2005 sarà l’anno di un'altra evoluzione epocale per i
microprocessori che migreranno progressivamente verso soluzioni multicore, ovvero verso architetture
in cui su un singolo chip opereranno in parallelo duo o più Cpu complete. Duplicare le unità operative
su un singolo chip sembra ormai la migliore soluzione per dare una nuova spinta alle
prestazioni delle Cpu, a seguito dei limiti incontrati nell’incremento delle frequenze
operative. Il primo passo sarà la soluzione più semplice, ovvero quella a doppio core,
mentre il passaggio al multicore vero e proprio avverrà non prima del 2007. Gia nel
Giugno 2005 Intel ha presentato la sua prima soluzione dualcore: il Pentium D840 (3,2
Ghz) basato su core Smithfield conta oltre 230 milioni di transistor prodotti a 0,09
micron e integra ben 2 Megabyte di cache L2. Dall’estremo opposto AMD introdurrà
l’Athlon 64 X2 basato sul core Toledo. Entrambi i due chip derivano da due soluzioni professionali già
esistenti: il Pentium Extreme Edition 840 offre anche la tecnologia Hyper-Threading che permette al
sistema di vedere ben 4 Cpu e di eseguire 4 thread contemporaneamente; l’Opteron 875 di AMD per il
mondo dei server e workstation professionali. Per superare il limite del silicio più di 500 scienziati
stanno studiando al centro IBM di Almaden in California i complessi legami formati da polimeri
organici e il loro comportamento elettrico. È infatti possibile immaginare di utilizzare queste catene
polimeriche coniugate come dispositivi semiconduttori (transistor, o anche diodi e resistenze) ma per
fare ciò è necessario superare una serie di problemi. Questa nuova tecnologia per sostituire il silicio ed
abbattere così il suo limite, è ancora in fase sperimentale ma se funzionerà potrà dare una nuova svolta
al mercato mondiale di microprocessori permettendo di nuovo l’incremento di frequenza.
Pagina 21
9. COPYRIGHT E RINGRAZIAMENTI
Questa guida è il risultato degli sforzi compiuti da AaLl86 per diplomarsi. Infatti la presente guida è
stata presentata agli esami di stato del 2005 (esattamente il 1° luglio 2005) come tesina per la parte
orale degli esami. È stata pensata, scritta con molte difficoltà a causa dell’assenza di alcune
informazioni per motivi commerciali (vedi per esempio la parte che riguarda il limite tecnologico), e
assemblata interamente da AaLl86 senza nessun aiuto. Se vi piace questa guida fatemelo sapere
mandandomi un e-mail all’inidrizzo [email protected]
Ringrazio tutti coloro che hanno visitato il mio sito web, utilizzato il mio server e in genere tutti quelli
che hanno apprezzato il mio lavoro non dimenticandomi di ringraziare tutti i miei amici e i miei
compagni che l’anno prossimo non vedrò più tutti i giorni.
Un ringraziamento anche allo staff di Catfishcrew e soprattutto di VbSimple che mi ha fornito
importantissimi suggerimenti sulla programmazione in VB.
www.aall86.altervista.org
Copyright© 2005 AaLl86®
Tutti i diritti sono riservati.
Pagina 22