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