Home
NUOVI ARRIVI
Access Modding
Neon, Led, Lights, etc
Rheobus, FanControll, Cardreader, etc
Molex, Sleeve, Raccoglicavi, etc
Alimentatori
Celle di Peltier
Case
Cavi
Dissipatori Chip
Dissipatori CPU
Pasta termocond.
Ventole
Griglie, filtri, viti, etc
 
 
Listino completo
Out Of Stock
Articoli
Download
Links


Vieni a trovarci al nostro negozio:
Via Mantellini 32 a ROMA
Orari: Lun-Ven 16-19

updating...


Clicca qui per sapere come unire gli ordini!

 

CPU Story: from P1 to nowdays

 

Quinta generazione: la rivoluzione Pentium

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.
Nello schema che vedete di lato si può osservare, nella struttura logica del nucleo di un 486, 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 (nella figura visibile di seguito) 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.
Pentium Mmx e le istruzioni multimediali
E’ 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 Si 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 loop (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.

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 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 processore.
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, come abbiamo visto, 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) con una tecnica che ricorda i processori Risc. 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.
Esecuzione speculativa: nel Pentium Pro le funzioni di predizione dei salti sono state potenziate ed oltre alla unità di predizione dei salti è presente una elaborazione speculativa. Essa consiste nell'eseguire istruzioni che si trovano al di là di un'istruzione di salto prima che quest'ultima sia stata eseguita e che quindi si sappia con certezza che esito avrà la diramazione. Il processore non può naturalmente aggiornare i registri interni o la memoria centrale con i risultati "speculativi" ma deve aspettare il responso della unità di branch. In caso di errata predizione del salto, il processore deve essere in grado di ritornare sui propri passi azzerando tutte le operazioni già eseguite che si riferiscono a istruzioni collocate oltre il punto di salto. Nel caso la speculazione risultasse poi sbagliata le istruzioni speculative vengono cancellate prima che giungano alla fase di termine. E’ un po’ il meccanismo logico che usano gli speculatori di borsa che vendono azioni non appena una società comincia ad andare male pur non avendo dati certi su un suo effettivo crollo ne su una sua possibile ripresa.
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.
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 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, 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 (note anche come KNI). Le SSE 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.
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 (vedi anche schema più in basso):
- Advanced RISC86 superscalar microarchitecture
- Seven parallel execution units
- Multiple sophisticated x86 to RISC86 decoders
- Two level branch prediction
- Speculative execution Out-of-Order Execution
- 64K on-chip level one cache
- 32K instruction cache
- 32K writeback data cache
- MMX capability
- Socket 7 compatible
- .35 micron architecture
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 floating point unit non è completamente pipelined e quindi esibisce 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 Socket7 (quelle del Pentium) ed in ogni caso costi minori rispetto alla proposta Intel.

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 innaugura 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! introduce l'approccio SIMD (Single Istruction Multiple Data) anche con i numeri in virgola mobile (MMX opera solo sugli interi) e permette l'esecuzione di fino a 4 istruzioni su numeri Floating point a singola precisione (32bit). AMD pensava di compensare le scarse prestazioni della sua Floating point unit 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).

AMD K6-III - L'ultimo esponente della famiglia K6

Nel '99 AMD introdusse il K6-3 che per un pò 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.

Ecco infine lo schema funzionale del core K6, K6-II e K6-III:

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.


L'architettura dell'Athlon

L' Athlon include 3 decoders per istruzione x86. Questi decoders traducono le istruzioni x86 in macro operations (MacroOPs) a lunghezza fissa per un più alto rendimento nell'esecuzione dell'elaborazione. Invece di eseguire direttamente le istruzioni x86 che hanno lunghezza da 1 a 15 bytes, l'Athlon esegue le MacroOPs RISC-Like migliorando di molto le prestazioni delle altre unità di elaborazione ed ottimizzazione.

Una volta che le MacroOPs sono decodificate, fino a 3 MacroOPs sono inviate all' ICU, per ogni ciclo di clock. L'ICU è un Buffer Reorder per MacroOPs a 72 entry che gestisce lo smistamento delle istruzioni, esegue la rinominazione del registro per gli operandi, e gestisce tutti gli stati d'eccezione e le operazioni di ritiro. L' ICU invia le MacroOPs agli Schedulers delle numerose unità di esecuzione multiple presenti nel K7.
L' Athlon contiene uno scheduler a 18 entry per le istruzioni sui numeri interi e uno scheduler a 36 entry per l'FPU/3DNow. Questi schedulers distribuiscono le MacroOPs alle nove pipeline di esecuzione indipendenti:

3 per i calcoli sugli interi
3 per il calcolo degli indirizzi
3 per l'esecuzione delle Mmx, 3dnow! e istruzioni floating point x87

L' Athlon offre il più potente e avanzato motore di floating point per piattaforma x86. L'FPU dell' Athlon è basata su 3 unità di esecuzione completamente pipelined (contro le due unità del PIII). Queste 3 unità di esecuzione (FMUL, FAD e FSTORE) eseguono tutte le istruzioni x87, Mmx, Enhaced 3dnow.

I primi Athlon sono stati costruiti con tecnologia a 0.25 micron e interconnessioni in Alluminio posti in una cartuccia tipo Pentium II e inseriti in uno slot chiamato Slot A, simile concettualmente allo Slot I di Intel. Nella cartuccia è presente una L2 cache di 512KB funzionante tipicamente ad 1/2 o 1/3 della frequenza del core.

Qui di seguito trovate lo schema esplicativo del core di tutta la famiglia K7:


 

 

 
Le informazioni contenute in questa pagina possono essere modificate senza alcun preavviso. Zeta Byte Italia SRL non è responsabile in alcun modo di errori presenti in queste informazioni
2001-2003 Copyright di ZetabyteItalia SRL ...more info