I MICROPROCESSORI FONTE: HTTP://WWW.COMEFUNZIONA.NET/ STORIA DEI MICROPROCESSORI Il primo microprocessore della storia fu costruito nel 1971. Si trattava di un Intel 4004. Non poteva fare granchè, solamente addizioni e sottrazioni (4 bits alla volta). La vera novità era che tutti i componenti erano racchiusi in un singolo chip. Prima di allora infatti gli ingegneri erano costretti a costruire computers usando gruppi di chip e transistors. Il primo microprocessore ad essere inserito in un Home Computer (nel 1974) fu l'Intel 8080, che poteva effettuare operazioni ad 8 bits. Quello che però si impose veramente sul mercato fu il famosissimo 8088 che introdotto nel 1979 dalla Intel venne installato su milioni di PC IBM. Negli anni successivi lo sviluppo dei microprocessori fu incredibile e seguirono quindi altri modelli sempre della Intel : 80286, 80386, 80486, Pentium, Pentium II, Pentium III e Pentium IV. Tutti questi però usano ancora oggi il disegno originale dell'8088 anche se esguono operazioni ad una velocità superiore di circa 5000 volte ! La tabella successiva aiuta a comprendere le differenze tra i vari modelli. Nome Data Transistors Microns Velocità Bits MIPS 8080 1974 6.000 6 2 MHZ 8 8088 1979 29.000 3 5 MHZ 16 0.33 80286 1982 134.000 1.5 6 MHZ 16 1 80386 1985 275.000 1.5 16 MHZ 32 5 80486 1989 1.200.000 1 25 MHZ 32 20 PENTIUM 1993 3.100.000 0.8 60 MHZ 32 100 PENTIUM II 1997 7.500.000 0.35 233 MHZ 32 ~300 PENTIUM III 1999 9.500.000 0.25 450 MHZ 32 ~510 2.5 GHZ 32 ~1.700 PENTIUM IV 2000 42.000.000 0.18 0.64 I dati contenuti nella tabella sono i seguenti: • • • • • • Data - E' l'anno in cui il microprocessore fu lanciato sul mercato. C'è da dire che molti di essi furono reintrodotti con lo stesso nome ma con miglioramenti sulla velocità del clock. Transistors - E' il numero di transistors presente nel singolo Microprocessore. E' evidente come nel corso degli anni il numero sia cresciuto incredibilmente. Microns - E' la larghezza di ogni singolo circuito (1 Micron = 1 milionesimo di metro) Velocità - E' l'espressione in Hertz della velocità del microprocessore. Bits - E' il numero di bits che la ALU (Arithmetic Logical Unit) può gestire. Ovviamente questo parametro influenza il numero di istruzioni necessarie per i calcoli. Se dobbiamo sommare o sottrarre 2 numeri a 32 bit, un 8080 ad 8 bit eseguirà 4 operazioni mentre un Pentium IV ne eseguirà solo 1. MIPS - E' l'acronimo di Milion of Instruction Per Second, ovvero quante milioni di operazioni al secondo il microprocessore riesce ad eseguire. DENTRO AD UN MICROPROCESSORE Un microprocessore, esegue una serie di istruzioni che dicono la processore cosa fare. A seconda delle istruzioni il processore compie fondamentalmente 3 operazioni: • • Usando la ALU ( Arithmetic Logical Unit ) può eseguire operazioni matematiche come somme, sottrazioni, divisioni e moltiplicazioni. Può spostare dati da una cella di memoria all'altra. Microprocessori pag. 1 di 23 • Può prendere decisioni e spostare l'esecuzione del programma da un punto all'altro dello stesso. Nella figura seguente viene schematizzato un semplice microprocessore che può eseguire le funzioni di base appena elencate. Nei componenti riportati nella figura è possibile identificare: • • • • • • • • Bus Indirizzi - Può essere a 8, 16 o 32 bit e serve per inviare un indirizzo alla memoria. Bus Dati - Può essere a 8, 16 o 32 bit e serve per inviare e ricevere dati dalla memoria. Clock Line - Che stabilisce i cilci di clock del processore. Ad ogni ciclo viene eseguita una operazione. Reset Line - Che può resettare il program counter, ovvero far ripartire il programma dall'inizio. Registri - Che possono contenere informazioni a 8 bit. Sono le variabili del processore. Registro istruzioni - Contiene l'istruzione correntemente in esecuzione. Decoder istruzioni - Provvede a decodificare l'istruzione presente nell'apposito registro in veri e propri segnali da inviare ai componenti della CPU. Linee Read e Write - Provvedono a leggere e scrivere dei valori in memoria. FEDERICO FAGGIN Chi è costui vi chiederete? E cosa centra con i microprocessori? Ecco la sua storia: Faggin è nato a Vicenza il primo dicembre 1941. Diplomatosi perito industriale nel 1960, si è laureato in fisica a Padova cinque anni dopo. Nel 1968 fu assunto dalla Fairchild Camera Instruments come ricercatore e messo a capo di un team che lavorava sui semiconduttori a Palo Alto (California). Nel 1970 passò alla Intel e con le sue intuizioni inizio un cambiamento epocale nel mondo. E' infatti nel 1971 che ha inizio la 'seconda rivoluzione industriale'. Diversamente da quello a vapore della prima rivoluzione, il suo 'motore' è costituito dalla straordinaria invenzione del microprocessore o MPU (MicroProcessing Unit), ad opera di tre ingegneri della Intel di Santa Clara, Federico Faggin e gli americani Marcian Edward Hoff Jr. e Stanley Mazer, che riuscirono a concentrare su una piastrina di 4 millimetri per 3 un 'supercircuito integrato' (che venne soprannominato 'miracle chip') contenente ben 2.250 transistor che costituivano tutti i componenti di una unità di elaborazione: 'cervello', memoria d'entrata e di uscita. Microprocessori pag. 2 di 23 La spinta alla realizzazione del primo microprocessore al mondo fu la richiesta della società giapponese Busicom di sviluppare la parte elettronica di una calcolatrice da tavolo. Hoff riprogettò l'intero il circuito e invece di 12 chip ne utilizzò solo uno che conteneva tutta l'unità centrale di elaborazione (CPU, Central Processing Unit), oltre ai due per la memoria RAM ( Random Access Memory) e per quella ROM (Read-Only Memory). Lo schema di base del primo microprocessore venne messo a punto da Hoff e da Stan Mazer, mentre il compito di tradurre questa intuizione in una macchina funzionante fu di Faggin, anche lui, come gli altri due, transfuga dalla Fairchild. La realizzazione elettronica dello schema eseguita da Faggin portò alla realizzazione del primo microprocessore: l'Intel 4004. Per la loro invenzione, Faggin, Hoff e Mazer avranno un posto d'onore nella National Inventor's Hall of Fame degli Usa. Il microprocessore riunisce in un circuito integrato relativamente semplice, ma dall'architettura già perfettamente matura e chiaramente predisposta per ulteriori sviluppi, tutti gli elementi (aritmetici, logici e di controllo) indispensabili per un elaboratore. Già al momento della sua nascita, la capacità di elaborazione, 60 mila operazioni al secondo, è superiore al gigantesco ENIAC a valvole del 1946 o ad un computer IBM dei primi anni '60 con una unità centrale grande come un tavolino. Per lo sviluppo del microprocessore 4004, la Intel - fondata nel 1968 da un gruppo di entusiasti giovani ricercatori e di docenti con a capo Robert Noyce e Gordon Moore - spese solo 150 mila dollari. Oggi la Intel è il maggiore produttore al mondo e ciò conferma che l'innovazione non è solo il prodotto di ingenti investimenti, ma il risultato di applicazione e creatività di ricercatori ben preparati. Nel 1972 Faggin realizzò il microprocessore 8008, il primo chip da 8 bit di uso universale. L'8008, con la prima memoria statica, è in grado di conservare i dati sino a quando non viene interrotta l'alimentazione elettrica. Su questo chip gli ingegneri Nat Wadsworth e Robert Findley realizzarono il primo microcomputer, che fu prodotto in serie in scatola di montaggio dalla Scelbi e venduto per corrispondenza a 440 dollari. Anche la Digital realizzò nel 1974 con lo stesso microprocessore un microcomputer su un'unica scheda, ma a livello industriale non intuì il formidabile avvenire dei piccoli calcolatori, per continuare a dedicarsi ai minicalcolatori aziendali. Il microprocessore 8008 trovò immediatamente applicazioni nei più disparati settori, dal controllo dei semafori stradali a quello delle emissioni di gas di scappamento delle auto, dagli strumenti scientifici ai giochi elettronici e alle macchine 'intelligentì' di tutti i tipi. Nel '74 Faggin lasciò la Intel e si mise in proprio fondando a Cupertino la Zilog, dove mise a punto lo Z-80, uno dei chip più popolari mai realizzati. Anche il nome Zilog fu inventato dallo stesso Faggin: la lettera zeta, ultima dell'alfabeto, stava ad indicare l'ultimo grido del campo dei microcircuiti, la 'i' per integrated, e 'log' per logico. Fonte: http://it.wikipedia.org/wiki/Categoria:Microprocessori http://it.wikipedia.org/wiki/CPU CPU Da Wikipedia, l'enciclopedia libera. Microprocessori pag. 3 di 23 Vai a: Navigazione, cerca Una CPU moderna La CPU (acronimo di Central Processing Unit, detta comunemente processore) è l'implementazione fisica di uno dei due componenti della macchina di Turing (l'altro è la memoria). Compito della CPU è quello di leggere le istruzioni e i dati dalla memoria ed eseguire le istruzioni; il risultato della esecuzione di una istruzione dipende dal dato su cui opera e dallo stato interno della CPU stessa, che tiene traccia delle passate operazioni. In base all'organizzazione della memoria si possono distingure due famiglie di CPU: • • con architettura Von Neumann classica, in cui dati ed istruzioni risiedono nella stessa memoria (è dunque possibile avere codice automodificante). Questa architettura è la più comune, perché la più semplice e flessibile. con architettura Harvard: i dati e le istruzioni risiedono in due memorie separate. Questa architettura garantisce migliori prestazioni poiché le due memorie possono lavorare in parallelo ma è più complessa da gestire. È tipicamente utilizzata nei DSP. Qualunque CPU contiene: • • • una ALU (Unità Aritmetico-Logica) che si occupa di eseguire le operazioni logiche e aritmetiche; una Unità di Controllo che legge dalla memoria le istruzioni, se occorre legge anche i dati per l'istruzione letta, esegue l'istruzione e memorizza il risultato se c'è, scrivendolo in memoria o in un registro della CPU. dei registri, speciali locazioni di memoria interne alla CPU, molto veloci, a cui è possibile accedere molto più rapidamente che alla memoria: il valore complessivo di tutti i registri della CPU costituisce lo stato in cui essa si trova attualmente. Due registri sempre presenti sono: o il registro IP (Instruction Pointer) o PC (Program Counter), che contiene l'indirizzo in memoria della prossima istruzione da eseguire; o il registro dei flag: questo registro non contiene valori numerici convenzionali, ma è piuttosto un insieme di bit, detti appunto flag, che segnalano stati particolari della CPU e alcune informazioni sul risultato dell'ultima operazione eseguita. I flag più importanti sono: o Flag di stato: Overflow: indica se il risulato dell'operazione precedente è troppo grande per il campo risultato: 0 assenza di overflow,1 overflow Zero: vale 1 se l'ultima operazione ha avuto risultato zero, altrimenti vale 0. Microprocessori pag. 4 di 23 Carry: vale 1 se l'ultima operazione ha ecceduto la capacità del registro che contiene il risultato, altrimenti vale 0 (esempio: in un registro a 8 bit, che può rappresentare solo numeri da 0 a 255, la somma 178+250 darebbe come risultato 172 e il carry verrebbe posto a 1). Segno: indica il segno del risultato dell'operazione precedente: 0 risultato positivo,1 risultato negativo o Flag di controllo: Interrupt: se a questo flag viene assegnato valore 1, la CPU smette di rispondere alle richieste di servizio esterne delle periferiche (i segnali delle linee IRQ) finché non viene ripristinato al valore 0, o finché non arriva dall'esterno un segnale di RESET. A proposto di registri le CPU si distinguono in: • • basate su stack: i registri sono organizzati in una struttura a stack e tutte le istruzioni operano esclusivamente su questo stack (ad esempio il Transputer); questa architettura ha il vantaggio di non dover specificare su quale registro interno operare (è sempre quello in cima allo stack), ottenendo istruzioni (opcodes) più corte e più semplici da decodificare. L'altra faccia della medaglia è che nel caso sia necessario un dato "sepolto" in fondo allo stack, il suo recupero è un'operazione molto lenta. basate su registri: queste CPU sono dotate di ulteriori registri generici che restano a disposizione dell'utente per memorizzarci valori temporanei. Le istruzioni possono accedere a questi registri generici. La maggioranza delle CPU sono di questo tipo. Una CPU è un circuito digitale sincrono: vale a dire che il suo stato cambia ogni volta che riceve un impulso da un segnale di sincronismo detto CLOCK: quindi il tempo di esecuzione di una istruzione si misura in cicli di clock, cioè in quanti impulsi di clock sono necessari perché la CPU la completi. In effetti, una parte importante e delicata di ogni CPU è il sistema di distribuzione che porta il segnale di clock alle varie unità e sottounità di cui è composta, per fare in modo che siano sempre in sincronia: tale sistema si dirama in una struttura ad albero con divisori e ripetitori che giunge ovunque nella CPU. Nei processori più moderni (Pentium, Athlon, PowerPC) questa "catena di ingranaggi" elettronica arriva ad impiegare circa il 30% di tutti i transistor disponibili. La velocità di questa distribuzione determina in maniera diretta la massima frequenza operativa di una CPU: nessuna CPU può essere più veloce del suo critical path, cioè del tempo che impiega il clock per percorrere il tratto più lungo in tutto l'albero di distribuzione del clock. Per esempio, se il segnale di clock di una data CPU impiega un nanosecondo per attraversare tutto il chip ed arrivare fino all'ultima sottounità, questa CPU potrà operare a non più di 1 GHz, perché altrimenti le sue componenti interne perderebbero la Microprocessori pag. 5 di 23 sincronizzazione, con risultati imprevedibili (per motivi di tolleranze e margini di sicurezza, il limite pratico sarà anzi ben minore di 1GHz). Indice [nascondi] • • • • 1 Set di istruzioni 2 Architettura della CPU 3 Architetture CISC e architetture RISC o 3.1 CISC (Complex Instruction Set Computer) o 3.2 RISC (Reduced Instruction Set Computer) 4 Voci correlate [modifica] Set di istruzioni Le istruzioni di una CPU (instruction set) sono semplicemente dei numeri, detti opcode o codici operativi: in base al loro valore l'unità di controllo intraprende delle azioni predefinite, come per esempio leggere la successiva locazione di memoria per caricare un dato, oppure attivare la ALU per eseguire un calcolo, oppure scrivere il contenuto di un registro in una certa locazione di memoria o in un altro registro, oppure una combinazione di queste. Per una persona, stendere programmi scrivendo direttamente gli opcode è estremamente noioso e prono all'errore. Per questo motivo si utilizza l'assembly. L'assembly associa un simbolo mnemonico ad ogni istruzione della CPU e introduce una sintassi che permette di esprimere i vari metodi di indirizzamento. Una caratteristica importante dell'insieme (set) delle istruzioni di una CPU è la sua ortogonalità: vale a dire, il fatto che ogni istruzione che usi i registri possa usarli tutti indifferentemente (tranne quelli "speciali" come l'IP) e che nessun registro sia in qualche modo privilegiato rispetto agli altri perché su di esso si possono compiere operazioni particolari: è stato dimostrato che un set di istruzioni ortogonali, a parità di tempo di esecuzione delle istruzioni e di numero dei registri, è più efficiente di uno non ortogonale. [modifica] Architettura della CPU Microprocessori pag. 6 di 23 Qualunque CPU possiede almeno due unità distinte: • • una ALU (Unità Aritmetico-Logica) che si occupa di eseguire le operazioni logiche e aritmetiche; una Unità di Controllo che legge dalla memoria le istruzioni, se occorre legge anche i dati per l'istruzione letta, esegue l'istruzione e memorizza il risultato se c'è, scrivendolo in memoria o in un registro della CPU. Oltre a queste possono esserne presenti altre, per esempio: • • una FPU (Floating Point Unit) che si occupa di eseguire calcoli in virgola mobile; una MMU (Memory Management Unit) che si occupa di tradurre gli indirizzi di memoria logici in indirizzi fisici, supportando la protezione della memoria e/o uno o più meccanismi di memoria virtuale. Una generica CPU deve gestire una serie di operazioni sincronizzandole con il resto del sistema: perciò è dotata, oltre a quanto sopra elencato, anche di uno o più bus interni che si occupano di collegare registri, ALU, unità di controllo e memoria: inoltre, all'unità di controllo interna della CPU fanno capo una serie di segnali elettrici esterni che si occupano di tenere la CPU al corrente dello stato del resto del sistema e di agire su di esso. Il tipo e il numero di segnali esterni gestiti possono variare ma alcuni, come il RESET, le linee di IRQ e il CLOCK sono sempre presenti. Il normale ciclo di operazioni di una CPU è il seguente: l'unità di controllo legge la locazione di memoria indicata dal registro IP, incrementa il registro IP di uno e la decodifica; se la decodifica indica che l'istruzione è più lunga di una locazione di memoria, legge anche il resto dell'istruzione e incrementa l'IP del numero di locazioni lette; esegue l'istruzione; se necessario scrive in memoria (o in altri registri) il risultato. Dopodiché torna a leggere l'indirizzo puntato da IP per caricare ed eseguire un'altra istruzione, all'infinito. Questo ciclo elementare può essere migliorato in vari modi: per esempio, la decodifica di una istruzione può essere fatta contemporaneamente all'esecuzione della precedente e alla lettura dalla memoria della prossima (instruction prefetch) e lo stesso può essere fatto con i dati che si prevede saranno necessari alle istruzioni (data prefetch). La stessa esecuzione delle istruzioni può essere suddivisa in passi più semplici, da eseguire in stadi successivi, organizzando la unità di controllo e la ALU in stadi consecutivi, come delle catene di montaggio (pipeline): in questo modo più istruzioni possono essere eseguite "quasi contemporaneamente", ciascuna occupando ad un certo istante uno stadio diverso della pipeline. Microprocessori pag. 7 di 23 Il problema di questo approccio sono le istruzioni di salto condizionato, cioè istruzioni che impostano il valore stesso del registro IP, ma solo se al momento della loro esecuzione sono verificate certe condizioni (particolari valori di registri). La CPU non può sapere a priori se dovrà eseguire o no il salto prima di aver eseguito quelle precedenti, così deve decidere se impostare la pipeline tenendo conto del salto o no: e in caso di previsione errata la pipeline va svuotata completamente e le istruzioni in corso di decodifica rilette da capo, perdendo molto tempo: e si perde tanto più tempo quanti più stadi ha la pipeline. Per evitare questo i processori moderni hanno unità interne (Branch prediction unit) il cui scopo è tentare di prevedere se, data una istruzione di salto condizionato e quelle eseguite in precedenza, il salto dovrà essere eseguito o no. [modifica] Architetture CISC e architetture RISC Quando i transistor disponibili su un solo chip erano pochi e i calcolatori venivano spesso programmati in assembler, era naturale sfruttarli in modo tale da avere CPU con istruzioni potenti, evolute e complesse: più queste erano vicine alle istruzioni dei linguaggi di programmazione ad alto livello più il computer sarebbe stato facile da programmare, e i programmi avrebbero occupato poco spazio in memoria (anch'essa poca e preziosa). Le CPU progettate secondo questo approccio sono dette CISC ed avevano unità di controllo complesse capaci di sfruttare al meglio pochi registri e i cui programmi erano di dimensioni relativamente piccole. A cavallo fra gli anni '70 e gli '80 però la situazione era in gran parte cambiata: la RAM era molto più economica ed erano ormai disponibili ottimi compilatori in grado di generare linguaggio macchina molto efficiente: per questo si iniziò a pensare ad un nuovo modo di progettare le CPU, prendendo in esame la possibilità di usare i transistor disponibili per avere invece molti registri e un set di istruzioni elementare, molto ridotto, che delegasse al compilatore il lavoro di tradurre le istruzioni complesse in serie di istruzioni più semplici, permettendo così di avere unità di controllo particolarmente semplici e veloci. Oramai però la distinzione fra queste due architetture è venuta in gran parte meno: il numero di transistor disponibili su un solo chip è aumentato tanto da poter gestire molti registri ed anche set di istruzioni complesse. [modifica] CISC (Complex Instruction Set Computer) Microprocessori pag. 8 di 23 CISC è l'acronimo di Complex Instruction Set Computer: tipicamente un processore di questo tipo implementa un numero relativamente scarso (una decina) di registri di uso generale, ed ha una unità di controllo microprogrammata: vale a dire che ogni opcode viene tradotto in una serie di passi da compiere secondo un procedimento software interno all'unità di controllo stessa, che è in pratica una CPU nella CPU. Il set di istruzioni associato a CPU di tipo CISC è molto esteso e composto in genere di alcune centinaia di codici operativi diversi che svolgono funzioni anche molto complesse, fra cui sono caratteristici i trasferimenti memoria-memoria, assenti nei RISC; le istruzioni hanno lunghezza variabile e possono presentarsi in formati diversi, e sono necessari due o più (a volte molti di più) cicli di clock per completare una istruzione; è possibile specificare la posizione dei dati necessari alle istruzioni usando molti metodi di indirizzamento diversi. Il ridotto numero di registri interni obbliga questi processori a scrivere in memoria ogni volta che si verifica una chiamata di funzione, che si verifica un context switch o che viene salvato un registro nello stack. Programmare in Assembler un CPU CISC è un compito (relativamente) facile, perché le istruzioni presenti sono più vicine a quelle dei linugaggi ad alto livello: i compilatori che generano codice per CPU CISC sono piuttosto semplici ed inoltre il codice prodotto è molto compatto e occupa poca memoria. [modifica] RISC (Reduced Instruction Set Computer) RISC è l'acronimo di Reduced Instruction Set Computer: questi processori hanno una unità di controllo cablata molto semplice e riservano invece molto spazio per i registri interni: una CPU RISC ha di solito da un minimo di un centinaio ad alcune migliaia di registri interni generici, organizzati in un file di registri. Il tipico set di istruzioni RISC è molto piccolo, circa sessanta o settanta istruzioni molto elementari (logiche, aritmetiche e istruzioni di trasferimento memoria-registro e registro-registro): hanno tutte lo stesso formato e la stessa lunghezza, e tutte o quasi vengono eseguite in un solo ciclo di clock. Sono presenti solo un numero ristretto di metodi di indirizzamento. Il fatto di avere un formato unico di istruzione permette di strutturare l'unità di controllo come una pipeline, cioè una catena di montaggio a più stadi: questa innovazione ha il grosso vantaggio di ridurre il critical path interno alla CPU e consente ai RISC di raggiungere frequenze di clock più alte rispetto agli analoghi CISC. Microprocessori pag. 9 di 23 Nel caso di context-switch o di chiamata a subroutine o comunque di uso dello stack i RISC invece di accedere alla memoria di sistema usano un meccanismo chiamato register renaming, che consiste nel rinominare i registri in modo da usare per la nuova esecuzione una diversa zona del file di registri, senza dover accedere alla memoria ogni volta. La complessità nei RISC si sposta dall'hardware al software: un compilatore che genera codice per CPU RISC deve affrontare un duro lavoro per generare codice compatto ed efficiente, che in ogni caso sarà più grande ed occuperà più memoria dell'equivalente per CISC. [modifica] Clock Da Wikipedia, l'enciclopedia libera. Vai a: Navigazione, cerca In Elettronica il termine clock indica un segnale periodico utilizzato per sincronizzare il funzionamento dei dispositivi elettronici. Il ciclo di clock è il tempo che trascorre tra il verificarsi di due colpi di clock successivi. La frequenza di clock è il numero di colpi di clock che vengono eseguiti in una determinata unità di tempo. L'unità di misura usata è l'hertz, ovvero il numero di cicli di clock eseguiti in un secondo. Poiché i clock sono in genere molto veloci, si usano comunemente i multipli kilohertz (Khz), megahertz (Mhz) e gigahertz (Ghz) per indicare mille, un milione e un miliardo di cicli al secondo. Prendiamo, ad esempio, il funzionamento di un processore. Questo è composto da vari circuiti logici preposti ad eseguire operazioni diverse. Tali circuiti devono interagire tra loro e lo devono fare scambiandosi informazioni. Perché tale operazione avvenga correttamente però è necessario che ad ogni circuito sia indicato il momento esatto in cui può ritenere validi i segnali che riceve in ingresso. Il clock è il segnale che si occupa di questo, ed è condiviso tra tutti i circuiti. La sua frequenza quindi deve essere calcolata in modo tale che il ciclo di clock sia sufficientemente lungo da consentire a tutti i circuiti, anche il più lento, di completare correttamente le proprie operazioni. Più è breve, e quindi maggiore è la frequenza, maggiori sono le operazioni che possono essere eseguite nello stesso lasso di tempo. Per aumentare le prestazioni di una CPU quindi è possibile agire sul Clock. Visto che tale valore è limitato dal circuito logico più Microprocessori pag. 10 di 23 lento, è facile che alcuni circuiti molto complessi causino colli di bottiglia che riducono molto le prestazioni generali. Per ovviare a questo problema è possibile ridurre la lunghezza massima dei circuiti logici spezzando in più parti quelli che lo sono eccessivamente. Le operazione quindi non sarebbero più completate in un solo ciclo di clock. Ad esempio poniamo che un processore abbia circuiti logici che in media richiedono 1 ns (1/1.000.000.000 di secondo) per portare a termine i calcoli, ma il circuito più lento ne richiede 5. È possibile spezzare tale circuito in cinque parti, ottenendo così circuiti con latenze di 1 ns, consentendo la riduzione del clock. In particolar modo se tale circuito è sfruttato raramente la CPU ottiene un considerevole aumento di prestazioni. Tuttavia vi sono dei limiti nell'uso di questa tecnica. Un unico circuito logico infatti, nell'eseguire la medesima operazione, è complessivamente più veloce di più circuiti più piccoli in serie. Aumentare la frequenza di clock in questo modo può portare ad effettivi benefici nelle prestazioni solo se si ottiene un ragionevole compromesso. Microprocessore Da Wikipedia, l'enciclopedia libera. Vai a: Navigazione, cerca Interno di un moderno microprocessore Un microprocessore è un singolo circuito integrato in grado di effettuare operazioni decisionali, di calcolo o di elaborazione dell'informazione; il microprocessore principale di un computer viene chiamato processore o CPU; il microprocessore che si occupa delle operazione legate alla visualizzazione delle informazioni in un computer viene chiamato GPU o VPU. I processori sono circuiti contenenti da migliaia a milioni di transistor ed altri componenti elettronici, ottenuti sfruttando le caratteristiche di semiconduttività del silicio e la sua Microprocessori pag. 11 di 23 relativa facilità di essere convertito in isolante tramite drogaggio. Questi transistor conservano informazioni sotto forma di carica elettrica, variando il livello a seconda della logica usata nel funzionamento del circuito. [modifica] Storia Il primo microprocessore mai realizzato fu l'Intel 4004, che lavorava con parole di soli 4 bit: fu progettato dal vicentino Federico Faggin e i primi prototipi videro la luce nel gennaio del 1971. Fu un successo limitato, ma i successivi Intel 8008 e 8080, che invece usavano parole di 8 bit (un byte, finalmente) riscossero molto più interesse. Nel 1974 Faggin, che nel frattempo alla Intel era divenuto il responsabile di tutti i progetti di circuiti integrati MOS tranne le RAM dinamiche, lascia la Intel per fondare la Zilog, che nel 1976 lancia il mitico processore Z80, che sarà il cuore di molti home computer del decennio successivo. Il successo dello Z80 è immediato, ed eclissa in pratica la serie 8080 della Intel nonostante il lancio dei nuovi 8080A e 8085: nel 2000, a quasi 25 anni dal debutto, lo Z80 veniva ancora prodotto in grandi volumi e utilizzato come microcontroller per sistemi embedded. L'apparire dei microprocessori provocò una rivoluzione nel mercato degli elaboratori elettronici; insieme con la tecnologia delle memorie RAM a stato solido, i microprocessori resero possibile costruire e vendere un computer completo ad una frazione del prezzo dei minicomputer, che fino ad allora erano le macchine più economiche disponibili: il prezzo di queste nuove macchine era tanto basso da essere alla portata anche dei privati e degli hobbysti. Poiché erano costruiti attorno a dei microprocessori, questi nuovi elaboratori vennero chiamati microcomputer. Successivamente la Motorola e altri concorrenti entrarono nel mercato, sviluppando altri tipi di microprocessori, come il 6502 usato nell'Apple II e la versione custom 6510 prodotta appositamente per il Commodore 64; il 6800 e il 6809, tutti con registri a 8 bit. Dal 1980 in poi i fabbricanti e i modelli prodotti iniziarono a moltiplicarsi: ricordiamo soltanto il Motorola 68000 e l'Intel 8086, entrambi a 16 bit anziché a 8, ed entrambi capostipiti di due numerose e longeve famiglie di microprocessori. IBM scelse l'Intel 8088 per il suo primo PC al posto dell'8086 perché era compatibile con tutto il software per l'8086, ma aveva un bus dati esterno a 8 bit invece che a 16 ed era compatibile a livello Microprocessori pag. 12 di 23 hardware con tutti i circuiti esistenti sviluppati per l'8085. La Apple invece si basò sui chip della famiglia Motorola 68000 per i suoi prodotti della serie Macintosh. [modifica] Realizzazione La realizzazione dei chip (e quindi anche dei microprocessori) avviene in diverse fasi. Il materiale di partenza è una fetta circolare di semiconduttore detta substrato: questo materiale, già debolmente drogato, viene ulteriormente drogato per impiantazione ionica per creare le zone attive dei vari dispositivi; vengono poi depositati una serie di sottili strati di materiali diversi che vanno a creare il wafer: • • • • Strati di semiconduttore policristallino; Strati isolanti sottili; Strati isolanti di ossido molto più spessi dei precedenti; Strati metallici per i collegamenti elettrici, generalmente costituiti da alluminio e più raramente da rame La geometria delle zone che devono ricevere il drogaggio è impressa con un processo di fotolitografia: ogni volta che il circuito integrato deve ricevere un nuovo strato o una nuova impiantazione di droganti, viene ricoperto da un sottile film fotosensibile, che viene impressionato tramite una maschera ad altissima definizione. Le zone del film illuminate divengono solubili e vengono asportate dal lavaggio, lasciando in tal modo scoperto il chip sottostante. Una volta terminata la creazione dei chip sul substrato, questi vengono testati, il substrato viene tagliato e i chip incapsulati nei packages con cui verranno montati sui circuiti integrati. In un circuito integrato si possono facilmente inserire transistor e diodi: è anche possibile creare su semiconduttore delle piccole resistenze e condensatori, ma in genere questi ultimi componenti occupano molto spazio sul chip e si tende ad evitarne l'uso, sostituendoli quando possibile con reti di transistor. Non è invece possibile integrare degli induttori, dei trasformatori, che devono quindi essere collegati esternamente al circuito integrato: lo stesso vale per i condensatori di media e grande capacità. Microprocessori pag. 13 di 23 In questi ultimi anni, tuttavia, si è iniziato ad usare il Silicio in combinazione col Germanio con la tecnica del silicio stirato (Strained-Silicon). Questa tecnica consiste nel depositare, sul corpo del wafer di silicio, uno strato di silicio-germano di 2micron con concentrazione di germano pari al 20%; la concentrazione di germano non è uniforme in tutto lo strato: vi è una maggiore concentrazione sulla cima della struttura. A questo punto un sottilissimo strato di silicio dello spessore di circa 20nm viene depositato sullo strato di SilicioGermano. Questa tecnica allunga il reticolato cristallino del Silicio di circa l'1% sia in direzione laterale che verticale e ciò permette un'enorme incremento sulla mobilità dei portatori di carica, che incontrano una resistenza inferiore al loro passaggio e fluiscono fino al 70% più velocemente, cosa che rende più veloci i chip del circa 30% senza bisogno di ulteriori miniaturizzazioni. Il principio che sta alla base di tutto questo è che gli atomi di silicio dello strato sovrastante tendono ad allinearsi con quelli dello strato si SilicioGermano che, essendo più spesso, obbliga gli atomi di silicio a spaziarsi di una distanza analoga a quella degli atomi di Silicio-Germanio. Pentium 4 http://it.wikipedia.org/wiki/Pentium_4 Da Wikipedia, l'enciclopedia libera. Microprocessori pag. 14 di 23 Vai a: Navigazione, cerca Il Pentium 4 è un microprocessore x86 di settima generazione prodotto da Intel, ed è il primo design originale di quest'ultima dai tempi del Pentium Pro, nel 1995. Il processore originale, chiamato Willamette, fu lanciato il 20 novembre del 2000 con frequenze di 1,4 GHz e 1,5 GHz. Indice [nascondi] • • • • • 1 La nuova architettura o 1.1 Inefficienza in cambio di scalabilità o 1.2 Stessa architettura per tutti i segmenti di mercato 2 Caratteristiche principali delle varie evoluzioni del Pentium 4 o 2.1 Willamette o 2.2 Northwood o 2.3 Extreme Edition o 2.4 Prescott o 2.5 Cedar Mill 3 Modelli arrivati sul mercato 4 Successori o 4.1 Processori Dual Core 5 Voci correlate [modifica] La nuova architettura A partire dal Pentium Pro, si erano succeduti processori basati sull'architettura "P6", con marginali miglioramenti (il Pentium II, il Pentium III, ed i vari Celeron); il Pentium 4 invece si basa sulla nuova architettura NetBurst. Inoltre fu introdotto un velocissimo FSB a 400 MHz, formato in realtà da quattro bus a 100 MHz; tuttavia la larghezza di banda era pari a Microprocessori pag. 15 di 23 quattro volte quelle di un bus a 100 MHz, e fu così considerato come un unico bus a 400 MHz (il competitore più veloce non andava oltre i 133 MHz effettivi). [modifica] Inefficienza in cambio di scalabilità Per la sorpresa di molti tecnici del settore, il nuovo processore non migliorava il design P6 né nel calcolo intero, né in virgola mobile, generalmente considerati i fattori chiave nelle prestazioni di un processore. Furono sacrificate le prestazioni nel singolo ciclo di clock per guadagnare su due fronti: nella massima frequenza raggiungibile, e nelle prestazioni sfruttando le nuove librerie SSE2 che andavano ad aggiungersi alle precedenti SSE ed MMX. Il Pentium 4 "svolge molto meno lavoro" in ogni ciclo di clock rispetto ad altre CPU (come ad esempio i vari AMD Athlon o i vecchi Pentium III), ma l'obiettivo iniziale di sacrificare le prestazioni sul singolo ciclo di clock era bilanciato dalla possibilità di aumentare molto velocemente la frequenza di funzionamento, caratteristica che portava comunque a ottime prestazioni paragonabili a quelle dei processori della rivale AMD, pur seguendo una strategia diversa. Tutto questo è andato avanti fino a quando il processore ha trovato problemi insolubili di eccessiva produzione di calore, poco prima di raggiungere i 4 GHz (fermandosi effettivamente a 3.8 GHz con il core Prescott), molto lontano dagli annunci entusiastici del lancio che parlavano di scalabilità fino a 10 GHz. Alla metà del 2005, resasi conto che ormai la "corsa ai GHz" era finita, la casa produttrice ha spostato la sua attenzione sull'architettura del Pentium M, molto più efficiente a parità di frequenza di funzionamento, cominciando lo sviluppo di alcuni derivati dedicati al segmento desktop e piccoli server. Infatti l'architettura del Pentium M, è ottimizzata anche dal punto di vista energetico, ed è basata sul design del Pentium III. Questo significa essenzialmente che Intel è tornata al Pentium III e che del Pentium 4 sopravviverà solo il sistema del FSB, oltre ovviamente ad una serie di tecnologie collaterali come HyperThreading, SSE2, SSE3, EM64T e XD-bit. [modifica] Stessa architettura per tutti i segmenti di mercato Come ormai consuetudine dai tempi del Pentium II, Intel ricavò dai vari step evolutivi del Pentium 4 anche versioni indirizzata ad altri ambiti del mercato: per il mercato dei pc Microprocessori pag. 16 di 23 economici arrivarono le versioni economiche del chip, che continuavano comunque a chiamarsi Celeron, mentre per il settore dei server di medio livello vennero ricavate versioni per sistemi multiprocessore che presero il semplice nome di Xeon. Successivamente arrivarono anche le versioni mobile con i Pentium 4-M prima, e i Mobile Pentium 4 poi. [modifica] Caratteristiche principali delle varie evoluzioni del Pentium 4 [modifica] Willamette Il primo Pentium 4 aveva core Willamette ed operava ad una frequenza di 1,5 GHz. Inizialmente la sua architettura lo rendeva più lento dei propri antagonisti, Pentium III ed Athlon, ma poi l'enorme scalabilità gli consentì di arrivare in meno di una anno alla barriera "storica" dei 2 GHz, soglia a cui dovette cedere il passo al suo successore Northwood. Per approfondire, vedi la voce Willamettevedi le voci [[{{{2}}}]] e [[{{{3}}}]]vedi le voci [[{{{4}}}]], [[{{{5}}}]] e [[{{{6}}}]]vedi le voci [[{{{7}}}]], [[{{{8}}}]], [[{{{9}}}]] e [[{{{10}}}]]. [modifica] Northwood Per abbattere la barriera dei 2 GHz, arrivò Northwood, i cui miglioramenti consistevano in un ampliamento della memoria cache L2, che passava da 256 KB a 512 KB, e il passaggio ad un nuovo processo di produzione a 130 nm. Cambiò anche il socket che divenne il 478, e col tempo arrivarono anche aggiornamenti alla frequenza di BUS che passò dagli iniziali 400 MHz, a 533 Mhz e poi addirittura a 800 MHz. Dal modello a 3,06 GHz (l'ultimo a 533 MHz di bus) venne introdotta anche la tecnologia Hyper-Threading che venne estesa a tutta l'ultima gamma con bus a 800 Mhz da 2,4 GHz fino all'ultimo Northwood arrivato sul mercato a 3,4 GHz. Extreme Edition Nel settembre del 2003 fu annunciato all'Intel Developer Forum il Pentium 4 Extreme Edition (P4EE), poco più di una settimana prima del lancio dell'Athlon 64 e dell'Athlon 64 Microprocessori pag. 17 di 23 FX (anche se la sua commercializzazione, per la verità molto scarsa, iniziò solo il 3 novembre). Il design rimaneva pressoché invariato rispetto al Northwood (per farlo funzionare sulle stesse schede madri), ma possedeva ulteriori 2 MB di cache L3 ereditati dal progetto dello Xeon Gallatin. Un anno più tardi, il 15 novembre 2004 fu aumentata la velocità di bus da 800 MHz a 1066 MHz, con un piccolo miglioramento delle prestazioni, ma fu rilasciato solo un chip che utilizzava tale frequenza di bus, il modello a 3,46 GHz. Successivamente anche il Pentium 4 Extreme Edition passò al core Prescott. Il nuovo EE a 3,73 GHz aveva le stesse caratteristiche di un Prescott della serie 6x0, ma con un bus a 1066 MHz. Prescott Il 2 febbraio 2004 Intel lanciò un nuovo core, chiamato Prescott. Questo era prodotto con un processo a 90 nm, mai usato prima, ed era una revisione profonda del processore, tanto che alcuni si stupirono del fatto che non fu chiamato "Pentium 5". Le sue caratteristiche dovevano consentirgli di ricominciare la "corsa ai GHz", ma non fu propriamente così; essa effettivamente ripartì ma si arresto velocemente a 3,8 GHz senza nemmeno raggiungere la soglia "psicologica" dei 4 GHz originariamente previsti. Considerando che Intel prevedeva di poter portare il Pentium 4 fino a 10 GHz, questo resta l'insuccesso più pubblicizzato, se non più grave, nella storia del marchio. Intel ha rilasciato il 21 febbraio 2005 un nuovo processore Prescott, chiamato "6xx", con tecnologie EM64T, XD-bit e SpeedStep oltre ad una cache L2 di 2 MB. Il vantaggio di quest'ultima è tuttavia pressoché annichilito dall'alta latenza di questa e dalla doppia dimensione delle parole in modalità EM64T: risulta quindi un tentativo di mantenere le performance anche in modalità 64 bit. Cedar Mill Ad inizio 2006 arriverà in nuovo core Cedar Mill, un Prescott costruito con processo produttivo a 65 nm. L'architettura sarà la stessa di Prescott, e anche le tecnologie implementate saranno le stesse presenti nelle ultime evoluzoni del predecessore. Tra queste la più innovativa sarà la tecnologia di virtualizzazione Vanderpool. Modelli arrivati sul mercato Microprocessori pag. 18 di 23 La tabella seguente mostra tutti i modelli di Pentium 4 arrivati sul mercato. Molti di questi condividono caratteristiche comuni pur essendo basati su core diversi; per questo motivo, allo scopo di rendere maggiormente evidente tali affinità e "alleggerire" la visualizzazione alcune colonne mostrano un valore comune a più righe. Di seguito anche una legenda dei termini (alcuni abbreviati) usati per l'intestazione delle colonne: • • • • • • • • • • • • • • • • Nome Commerciale: si intende il nome con cui è stato immesso in commercio quel particolare esemplare. Data: si intende la data di immissione sul mercato di quel particolare esemplare. Socket: lo zoccolo della scheda madre in cui viene inserito il processore. In questo caso il numero rappresenta oltre al nome anche il numero dei pin di contatto. Clock: la frequenza di funzionamento del processore. Molt.: sta per "Moltiplicatore" ovvero il fattore di moltiplicazione per il quale bisogna moltiplicare la frequenza di bus per ottenere la frequenza del processore. Pr.Prod.: sta per "Processo produttivo" e indica tipicamente la dimensione dei gate dei transistors (180 nm, 130 nm, 90 nm) e il numero di transistor integrati nel processore espresso in milioni. Voltag.: sta per "Voltaggio" e indica la tensione di alimentazione del processore. Watt: si intende il consumo massimo di quel particolare esemplare. Bus: frequenza del bus di sistema. Cache: dimensione delle cache di 1° e 2° livello. XD: sta per "XD-bit" e indica l'implementazione della tecnologia di sicurezza che evita l'esecuzione di codice malevolo sul computer. 64: sta per "EM64T" e indica l'implementazione della tecnologia a 64 bit di Intel. HT: sta per "Hyper-Threading" e indica l'implementazione della esclusiva tecnologia Intel che consente al sistema operativo di vedere 2 core logici. ST: sta per "SpeedStep Tecnology" ovvero la tecnologia di risparmio energetico sviluppata da Intel e inserita negli ultimi Pentium 4 Prescott serie 6xx per contenere il consumo massimo. VT: sta per "Vanderpool Tecnology", la tecnologia di virtualizzazione che rende possibile l'esecuzione simultanea di più sistemi operativi differenti contemporaneamente. Core: si intende il nome in codice del progetto alla base di quel particolare esemplare. Nome Commerciale Data Pentium 4 1,3 GHz gen/2001 Socket Clock Molt. Pr.Prod. Voltag. Watt Bus 1,3 GHz 13x 1,4 GHz 14x 1,5 GHz 15x 2/lug/2001 1,6 GHz 16x Pentium 4 1,7 23/apr/2001 GHz 1,7 GHz 17x Pentium 4 1,4 GHz Pentium 4 1,5 GHz Pentium 4 1,6 GHz 20/nov/2000 423 180 nm 1,75 V 42 mil. Cache XD 64 HT ST VT Core 60 400 L1=8KB No No No No No Willamette W MHz L2=256KB L3=0KB Microprocessori pag. 19 di 23 Pentium 4 1,8 GHz 1,8 GHz 18x Pentium 4 1,9 GHz 1,9 GHz 19x Pentium 4 2,0 GHz 2,0 GHz 20x 1,6 GHz 16x Pentium 4 1,8 GHz A 1,8 GHz 18x Pentium 4 2,0 GHz A 2,0 GHz 20x Pentium 4 2,2 7/gen/2002 GHz 2,2 GHz 22x Pentium 4 2,4 GHz 2,4 GHz 24x 2,5 GHz 25x 2,6 GHz 26x 2/lug/2001 Pentium 4 1,6 27/ago/2001 GHz A Pentium 4 2,5 GHz Pentium 4 2,6 GHz 2/apr/2002 26/ago/2002 478 Pentium 4 2,267 GHz 2,267 17x GHz Pentium 4 2,4 6/mag/2002 GHz B 2,4 GHz Pentium 4 2,533 GHz 2,533 19x GHz Pentium 4 2,667 GHz 2,667 20x GHz Pentium 4 2,8 GHz 26/ago/2002 21x 3,06 GHz 23x Pentium 4 2,4 GHz C 2,4 GHz 12x Pentium 4 2,6 21/mag/2003 GHz C 2,6 GHz 13x Pentium 4 2,8 GHz C 2,8 GHz 14x Pentium 4 3,0 14/apr/2003 GHz 3,0 GHz 15x Pentium 4 3,2 23/giu/2003 GHz 3,2 GHz 16x Pentium 4 3,4 GHz 3,4 GHz 17x 2,4 GHz 18x Pentium 4 2,4 GHz A 14/nov/2002 2/feb/2004 1,525 V 18x 2,8 GHz Pentium 4 3,06 GHz 55 W 130 nm 55 mil. 62 W L1=8KB L2=512KB 533 L3=0KB MHz Northwood Sì 1,55 V 1,525 V 82 W 800 MHz 1,55 V 90 nm 125 mil. 1,4 V N.A. 533 L1=16KB MHz Microprocessori pag. 20 di 23 Prescott Pentium 4 2,8 GHz A 2,8 GHz 21x Pentium 4 2,8 GHz E 2,8 GHz 14x Pentium 4 3,0 GHz E 3,0 GHz 15x Pentium 4 3,2 GHz E 3,2 GHz 16x Pentium 4 3,4 GHz E 3,4 GHz 17x Pentium 4 3,2 3/nov/2003 GHz EE 3,2 GHz 16x Pentium 4 3,4 GHz EE 3,4 GHz 17x 2/feb/2004 Pentium 4 505 775 2,933 22x GHz Pentium 4 520 2,8 GHz 14x 3,0 GHz 15x Pentium 4 540 3,2 GHz 16x Pentium 4 550 3,4 GHz 17x Pentium 4 560 3,6 GHz 18x Pentium 4 520 J 2,8 GHz 14x Pentium 4 530 J 3,0 GHz 15x Pentium 4 540 J 3,2 GHz 16x 3,4 GHz 17x Pentium 4 560 J 3,6 GHz 18x Pentium 4 570 J 3,8 GHz 19x 2,8 GHz 14x Pentium 4 531 3,0 GHz 15x Pentium 4 541 3,2 GHz 16x Pentium 4 550 J Pentium 4 521 21/giu/2004 15/nov/2004 28/giu/2005 800 MHz 130 nm 178 mil. 2,667 90 nm 20x GHz 125 mil. Pentium 4 515 Pentium 4 530 L2=1MB L3=0KB 1,55 V L1=8KB L2=512KB L3=2MB 1,6 V Gallatin L1=16KB 533 L2=1MB MHz L3=0KB 1,4 V Prescott 800 MHz 84 W 115 W Sì 84 W 115 W 84 W Microprocessori pag. 21 di 23 Sì Pentium 4 551 3,4 GHz 17x Pentium 4 561 3,6 GHz 18x Pentium 4 571 3,8 GHz 19x Pentium 4 3,4 21/giu/2004 GHz EE 3,4 GHz 17x Pentium 4 15/nov/2004 3,46 GHz EE 3,46 GHz 13x Pentium 4 630 3,0 GHz 15x Pentium 4 640 3,2 GHz 16x 3,4 GHz 17x Pentium 4 660 3,6 GHz 18x Pentium 4 3,73 GHz EE 3,73 GHz 14x 3,8 GHz 19x 3,6 GHz 18x 3,8 GHz 19x Pentium 4 650 Pentium 4 670 Pentium 4 662 Pentium 4 672 21/feb/2005 27/mag/2005 15/nov/2005 115 W 130 nm 178 mil. 1,6 V N.A. 84 W 90 nm 168 mil. L1=8KB L2=512KB No No 1066 L3=2MB MHz 800 MHz L1=16KB L2=2MB Sì Sì 1066 L3=0KB MHz 1,4 V Gallatin Sì Prescott 115 W 800 MHz Sì Successori Con i problemi incontrati dal core Prescott Intel ha deciso di fermare lo sviluppo del successore di questo core, Tejas e anche di quello dedicato agli Xeon, Jayhawk nel maggio 2004. Verrà prodotta invece nei primi mesi del 2006 una versione dei "6xx" a 65 nm, chiamata Cedar Mill. Le prestazioni non dovrebbero cambiare significativamente, ma diminuirà di circa il 20% il consumo massimo. Cedar Mill sarà probabilmente il "canto del cigno" del Pentium 4 anche se alcune voci parlano di un possibile progetto Millville derivato dal futuro Pentium D Allendale, successore di Conroe, il primo Pentium D con architettura non basata sulla NetBurst ma su quella, molto più efficiente del futuro Pentium M Merom, evoluzione dell'imminente Yonah. [modifica] Processori Dual Core Microprocessori pag. 22 di 23 Con l'arrivo dei primi processori dual core, Intel ha deciso di abbandonare il nome "Pentium 4" per passare a Pentium D, anche se il primo processore dual core Smithfield è formato essenzialmente da 2 Prescott uniti sullo stesso package e l'imminente Presler da due Cedar Mill. Microprocessori pag. 23 di 23