caratteri piccoli caratteri medi caratteri grandi
[m] mappa del sito | [a] navigazione facilitata
 » Home »  Segreteria  »  Information technology e organizzazione  »  Ottimizzazione architettura informatica  » Quinta generazione: la rivoluzione Pentium
+++ Quinta generazione: la rivoluzione Pentium
Elettronica ed evoluzione dei Processori x86
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” di
Pentium 3704

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. Analizzeremo pertanto in profondità le caratteristiche di questa Cpu mettendo a confronto la sua struttura con quella molto più semplice del 486.

Nella struttura logica del nucleo di un 486 si può osservare la presenza di una unità aritmetico logica Alu per il calcolo degli interi ed una Fpu 80387 collegate tra loro da un bus a 64 Bit. La cache da 8 Kbyte è unificata per i dati e le istruzioni ed è collegata ad entrambe le unità di calcolo Alu ed Fpu da un bus a 32 Bit. La unità prefetcher è adibita a reperire blocchi di istruzioni dalla memoria Ram e spostarli nella cache con la quale comunica con un bus a 128 Bit. L’interfaccia di comunicazione verso il bus della memoria è infine a 32 bit.

Nel Pentium la prima cosa che risalta è la presenza di due distinte cache da 8 Kbyte ciascuna. La prima cache è destinata alle istruzioni (codice di programma) e la seconda ai dati a cui tali istruzioni vanno applicate. Il vantaggio rispetto alla cache del 486 sta nella riduzione dei conflitti tipici di una cache unificata. Oltre alla cache sono state raddoppiate anche le unità di elaborazione Alu; in pratica nel Pentium è come se operassero due Alu 486 in parallelo. Dopo aver ricevuto e parzialmente decodificato una istruzione il Pentium stabilisce se esiste la possibilità di eseguire in parallelo l’istruzione stessa insieme a quella successiva. Non tutte le istruzioni possono essere parallelizzate ma in quelle ove è possibile applicare questa tecnica l’elaborazione richiederà tempi dimezzati. Un processore che riesce a smistare le istruzioni fra più pipeline e a parallelizzare la loro esecuzione è definito Superscalare ed il Pentium è il primo processore x86 dotato di questa proprietà. In particolare le istruzioni vengono prelevate, decodificate ed eseguite nelle due Alu che vedete in figura. In condizioni ottimali il Pentium può pertanto elaborare due istruzioni (operanti sui numeri interi) per ciclo di clock.



Una ulteriore innovazione nel Pentium è la introduzione della Branch Prediction Unit. Trattasi di una piccola zona di memoria cache di appena mezzo Kbyte strutturata in forma tabellare ed adibita a contenere una History (cronistoria) degli indirizzi a cui il software sta eseguendo salti condizionati (tipo If-Then-Else). In base a ciò, sfruttando il fatto che molti programmi eseguono più volte la stessa routine di salto, si cerca di prevedere a che punto avverrà il salto successivo. In base alla previsione il dato viene caricato nel buffer e se il salto avverrà proprio in quella posizione l’elaborazione ne sarà ampiamente agevolata.

Questa features da sola è in grado di fornire al Pentium il 20-25% di prestazioni in più rispetto al 486 ove i salti nell’esecuzione del codice non sono precognizzati. Domanda; cosa è un salto? Il codice dei programmi è in gran parte di tipo sequenziale ma di tanto in tanto (in media una volta su otto) il programma richiama routine di codice diverse poste a monte (GoTo all’indietro) o, più di rado, a valle (GoTo in avanti) del codice in esecuzione corrente interrrompendo la sequenzialità delle istruzioni. Tutto questo non è ben gradito ad un processore che si trova cosi di fronte ad una condizione di Branch (salto) ed è per questo che è stata ideata la Branch Prediction Unit. E se la predizione non va a buon fine cosa accade? Una previsione errata comporta lo svuotamento completo delle Pipeline del processore. Con il termine Pipeline (canalizzazione) si usa indicare la catena di montaggio delle istruzioni interna al processore; nel 486 ne abbiamo una e nel Pentium, come abbiamo visto, ne abbiamo due che lavorano in parallelo. Tali pipeline sono divise in cinque diversi stadi: incanalando le istruzioni in una Pipeline a più stadi e suddividendo il processo elaborativo tra gli stadi stessi la Cpu può cominciare ad elaborare il primo stadio di una successiva istruzione mentre quella in fase di elaborazione corrente è appena passata allo stadio successivo. Come si può osservare nella schema mentre la istruzione (1) ha passato il primo stadio la (2) inizia ad essere elaborata. Quando la (2) è salita al secondo stadio la (1) è salita al terzo e la (3) è in ingresso ecc. Il vantaggio (teorico) è dunque di poter elaborare una istruzione per ogni singolo ciclo di clock per ogni pipeline. Abbiamo detto “teorico” perchè una condizione di Branch nel 486 cosi come una previsione di Branch errata nel Pentium crea un punto di ingorgo nella canalizzazione che costringe ad eliminare tutte le istruzioni precedenti e le successive a tale punto. Questa condizione è nota anche come Stallo della pipeline.



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 Si variava dai 190 per il modello a 60 Mhz a 638 per il modello a 200 Mhz.

Fonte: Lithium
  torna alla pagina iniziale home page
Segreteria
Sottocategorie di Information technology e organizzazione
icona categoria Amministrazione rete
icona categoria Apple
icona categoria Open Source
icona categoria Ottimizzazione architettura informatica


Schede Correlate
AMD K5 - La risposta al Pentium
AMD K6 - Il primo processore AMD di 6° generazione
AMD K6-II - Il secondo processore AMD di 6° generazione
AMD K6-III - L'ultimo esponente della famiglia K6
AMD K7 - 7° generazione ?
AMD K7 - Thunderbird e Palomino
Come ragiona un processore?
Cpu, Alu ed Fpu
Generazione quarta: l’80486 e la cache integrata
La memoria cache
La storia dei processori x86 targati AMD
L'architettura dell'Athlon
Pentium Mmx e le istruzioni multimediali
Pentium Pro, Pentium II e Pentium III, la sesta generazione
Processori x86 di prima generazione
Processori x86 di seconda generazione
Processori x86 di terza generazione
Storia ed evoluzione dei Processori x86


Links esterni al sito
Home page di Lithium


Galleria Immagini
Architettura Pentium 3703 Pentium 3704 Architettura Pentium (2) 3705
Stallo delle pipeline 3706    

Argomenti della Scheda
microprocessori
[c]



valid w3c document  |  valid css

esecuzione in 0,078 sec.