Tipo | Processore ( in ) |
---|
Datato | 1971 |
---|
Un microprocessore è un processore di cui tutti i componenti sono stati sufficientemente miniaturizzati per essere raggruppati in un'unica scatola . Dal punto di vista funzionale, il processore è la parte di un computer che esegue istruzioni ed elabora i dati del programma .
Fino ai primi anni '70 , i vari componenti elettronici necessari per il funzionamento di un processore non potevano stare su un unico circuito integrato , che richiedeva l'interconnessione di molti componenti tra cui diversi circuiti integrati. Nel 1971, l'azienda americana Intel riuscì, per la prima volta, a collocare tutti i componenti che costituiscono un processore su un unico circuito integrato, dando così origine al microprocessore.
Questa miniaturizzazione ha reso possibile:
Le principali caratteristiche di un microprocessore sono:
Il set di istruzioni che varia con il tipo di microprocessore e il produttore: aggiungi due numeri, confronta due numeri per determinare se sono uguali, confronta due numeri per determinare qual è il più grande, moltiplica due numeri ... Un processore può eseguire diverse decine, anche centinaia o migliaia, di istruzioni diverse. La complessità della sua architettura Questa complessità è misurata dal numero di transistor contenuti nel microprocessore. Più transistori contiene il microprocessore, più sarà in grado di eseguire operazioni complesse, e/o elaborare grandi numeri. Il numero di bit che il processore può elaborare contemporaneamente I primi microprocessori non potevano elaborare più di 4 bit alla volta. Hanno quindi dovuto eseguire diverse istruzioni per aggiungere numeri a 32 o 64 bit. Nel 2007 i microprocessori possono elaborare numeri a 64 bit. Il numero di bit del bus , della memoria e del processore ha un impatto diretto sulla capacità di elaborare rapidamente numeri grandi o numeri ad alta precisione (numeri di posizioni decimali significative). Velocità orologio Il ruolo dell'orologio è quello di regolare il ritmo del lavoro del microprocessore. La frequenza corrisponde a quello che viene chiamato ciclo di clock. Un'istruzione, a seconda del tipo di processore e istruzione, può richiedere uno o più cicli di clock. I processori RISC su cui tutte le operazioni in linguaggio macchina sono semplici ma cablate in genere richiedono un ciclo per istruzione. Al contrario, un processore CISC , contenente un microcodice , o un'istruzione in linguaggio macchina, è quindi una serie di istruzioni cablate. Di conseguenza, in tutti i casi, a parità di tecnologia, maggiore è la frequenza, maggiore è il numero di istruzioni eseguibili.Ad esempio, un processore A che funziona a 400 MHz può eseguire determinate istruzioni più velocemente di un altro B che funziona a 1 GHz , tutto dipende dalle rispettive architetture.
La combinazione delle suddette caratteristiche determina la potenza del microprocessore che viene espressa in "milioni di istruzioni al secondo" (MIPS). Negli anni '70, i microprocessori eseguivano meno di un milione di istruzioni al secondo, ma nel 2007 i processori potevano eseguire oltre 10 miliardi di istruzioni al secondo .
Nel 1969 , il microprocessore fu inventato da un ingegnere e un fisico di Intel , Marcian Hoff (soprannominato Ted Hoff) , e Federico Faggin , che vi aveva appena aderito, con ricerche effettuate in Italia. Federico Faggin , ingegnere italiano è nel 1968 alla Fairchild-SGS di Agrate Brianza , poi a Palo Alto con Thomas Klein , il progettista del primo circuito integrato commerciale con griglie autoallineate, il Fairchild 3708, poi project manager della Silicon Gate Technology ( SGT), il primo metodo pratico per fabbricare circuiti integrati MOS (semiconduttore/metallo/ossido) con gate autoallineati, che ha sostituito il tradizionale gate in alluminio di un transistor MOS con un gate in silicio, per integrare il doppio dei transistor nello stesso superficie. Federico Faggin viene assunto da Intel inaprile 1970, per essere il project manager, il creatore della metodologia di progettazione e il lead designer. In pochi mesi, con Marcian Hoff , dei quattro chip dell'Intel 4004, che inizialmente serviva per realizzare controller grafici in modalità testo, progettò un processore general-purpose, con licenza acquistata dalla giapponese Busicom .
Marcian Hoff ha formulato l'architettura del microprocessore (un'architettura a blocchi e un set di istruzioni). Il primo microprocessore sul mercato, il15 novembre 1971, è l' Intel 4004 a 4 bit , seguito dall'Intel 8008 a 8 bit , inizialmente utilizzato per produrre controller grafici in modalità testo. Ritenuto troppo lento dal cliente che ha richiesto il design, è diventato un processore per tutti gli usi.
Questi processori sono i precursori dell'Intel 8080 , dello Zilog Z80 e della futura famiglia Intel x86 . Federico Faggin è l'autore di una nuova metodologia di progettazione per chip e logica, inizialmente basata sulla tecnologia del gate di silicio sviluppata da lui nel 1968 a Fairchild . Ha anche guidato la progettazione del primo microprocessore fino alla sua introduzione sul mercato nel 1971 .
Quasi contemporaneamente l'azienda americana Motorola realizzava lavori e innovazioni simili sotto la direzione di Chuck Peddle , della General Electric , dove aveva progettato un registratore di cassa elettronico, ma che decise nel 1970 di abbandonare la sua attività informatica. Ha partecipato allo sviluppo del microprocessore Motorola 6800 a 8 bit, venduto poi per 300 US$, e che sarà utilizzato per i computer professionali Goupil 1 e 2 della società SMT .
Negli anni '70 comparvero i concetti di datagrammi e calcolo distribuito , con Arpanet , la rete delle Cicladi e l' Architettura di Sistema Distribuito , che nel 1978 divenne il modello “OSI-DSA” . Il microprocessore viene accolto molto rapidamente come il cardine di questo calcolo distribuito , perché permette di decentralizzare il calcolo, con macchine meno costose e meno ingombranti rispetto al monopolio IBM , prodotte in serie più grandi.
Nel 1990 , Gilbert Hyatt rivendicò la paternità del microprocessore sulla base di un brevetto che aveva depositato nel 1970 . Il riconoscimento dell'anticipo del brevetto di Hyatt avrebbe consentito alla Hyatt di rivendicare royalties su tutti i microprocessori prodotti nel mondo, ma il brevetto di Hyatt è stato invalidato nel 1995 dall'ufficio brevetti statunitense, sulla base del fatto che il microprocessore descritto nella domanda di brevetto non aveva stato prodotto, e peraltro non avrebbe potuto essere realizzato con la tecnologia disponibile al momento del deposito del brevetto.
La tabella seguente descrive le principali caratteristiche dei microprocessori prodotti da Intel, e mostra la loro evoluzione in termini di numero di transistor, miniaturizzazione dei circuiti e aumento di potenza. Va tenuto presente che se questa tabella descrive l'evoluzione dei prodotti Intel, l'evoluzione dei prodotti della concorrenza ha seguito lo stesso corso più o meno avanti o indietro.
Un programma per computer è, in sostanza, un flusso di istruzioni eseguito da un processore. Ogni istruzione richiede uno o più cicli di clock , l'istruzione viene eseguita in tanti passi quanti sono i cicli necessari. I microprocessori sequenziali eseguono l'istruzione successiva quando hanno completato l'istruzione corrente. Nel caso di parallelismo di istruzioni, il microprocessore può elaborare più istruzioni nello stesso ciclo di clock, a condizione che queste diverse istruzioni non mobilitino contemporaneamente una singola risorsa interna. In altre parole, il processore esegue istruzioni che si susseguono, e non dipendono l'una dall'altra, in diverse fasi di completamento. Questa coda di esecuzione imminente è chiamata pipeline . Questo meccanismo è stato implementato per la prima volta negli anni '60 da IBM . I processori più avanzati eseguono contemporaneamente tante istruzioni quante sono le pipeline, questo a condizione che tutte le istruzioni da eseguire in parallelo non siano interdipendenti, vale a dire che il risultato dell'esecuzione di ciascuna di esse non modificare le condizioni di esecuzione di uno degli altri. I processori di questo tipo sono chiamati processori superscalari . Il primo computer ad essere dotato di questo tipo di processore fu il Seymour Cray CDC 6600 nel 1965. Il Pentium fu il primo dei processori superscalari per PC compatibili .
I progettisti di processori non cercano semplicemente di eseguire più istruzioni indipendenti contemporaneamente, cercano di ottimizzare il tempo di esecuzione di tutte le istruzioni. Ad esempio, il processore può ordinare le istruzioni in modo che tutte le sue pipeline contengano istruzioni indipendenti. Questo meccanismo è chiamato esecuzione fuori ordine . Questo tipo di processore era essenziale per le macchine consumer negli anni '80 e '90. L'esempio canonico di questo tipo di pipeline è quello di un processore RISC (computer con set di istruzioni ridotto) in cinque fasi. L' Intel Pentium 4 ha 35 fasi di pipeline. Un compilatore ottimizzato per questo tipo di processore fornisce codice che verrà eseguito più velocemente.
Per evitare di perdere tempo in attesa di nuove istruzioni, e soprattutto il tempo necessario per ricaricare il contesto tra ogni cambio di thread , i fondatori hanno aggiunto processi di ottimizzazione ai loro processori in modo che i thread possano condividere le pipeline, le cache e i registri. Questi processi, raggruppati sotto il nome di Simultaneous Multi Threading , sono stati sviluppati negli anni 50. D'altra parte, per ottenere un aumento delle prestazioni, i compilatori devono tenere conto di questi processi, quindi è necessario ricompilare i programmi per questi tipi di processori. Intel ha iniziato a produrre processori che implementano la tecnologia SMT a due corsie nei primi anni 2000 . Questi processori, i Pentium 4 , possono eseguire contemporaneamente due thread che condividono le stesse pipeline, cache e registri. Intel ha chiamato questa tecnologia SMT bidirezionale : Hyperthreading . Il Super-threading (in) è, nel frattempo, una tecnologia SMT in cui più thread condividono anche le stesse risorse, ma questi thread vengono eseguiti solo uno dopo l'altro e non contemporaneamente.
Già da tempo l'idea di far convivere più processori all'interno dello stesso componente, ad esempio System on Chip . Ciò consisteva, ad esempio, nell'aggiungere al processore, un coprocessore aritmetico , un DSP , persino una cache di memoria, possibilmente anche tutti i componenti presenti su una scheda madre. Sono quindi comparsi processori che utilizzano due o quattro core , come POWER4 di IBM rilasciato nel 2001. Hanno le tecnologie sopra menzionate. I computer che dispongono di questo tipo di processori costano meno rispetto all'acquisto di un numero equivalente di processori. Tuttavia, le prestazioni non sono direttamente confrontabili, dipendono dal problema da trattare. Sono state sviluppate API specializzate per sfruttare appieno queste tecnologie, come i Threading Building Blocks di Intel.
Datato | Nome | Numero di transistor |
Finezza di attacco (nm) |
Numero di core | Frequenza di clock | Larghezza dati |
MIPS |
---|---|---|---|---|---|---|---|
1971 | Intel 4004 | 2.300 | 10.000 | 1 | 740 kHz | Bus 4 bit / 4 bit bit | 0.06 |
1974 | Intel 8080 | 6000 | 6000 | 1 | 2 MHz | Bus a 8 bit / 8 bit | 0,64 |
1979 | Intel 8088 | 29.000 | 3000 | 1 | 5 MHz | Bus a 16 bit / 8 bit | 0,33 |
1982 | Intel 80286 | 134.000 | 1.500 | 1 | da 6 a 16 MHz (20 MHz su AMD) | 16 bit / 16 bit bus | 1 |
1985 | Intel 80386 | 275.000 | 1.500 | 1 | da 16 a 40 MHz | 32 bit/32 bit bus | 5 |
1989 | Intel 80486 | 1.200.000 (800 nm) | da 1000 a 800 | 1 | da 16 a 100 MHz | 32 bit/32 bit bus | 20 |
1993 | Pentium ( Intel P5 ) | 3 100.000 | da 800 a 250 | 1 | da 60 a 233 MHz | Bus a 32/64 bit | 100 |
1997 | Pentium II | 7.500.000 | da 350 a 250 | 1 | da 233 a 450 MHz | Bus a 32/64 bit | 300 |
1999 | Pentium III | 9.500.000 | da 250 a 130 | 1 | da 450 a 1400 MHz | Bus a 32/64 bit | 510 |
2000 | Pentium 4 | 42.000.000 | da 180 a 65 | 1 | da 1,3 a 3,8 GHz | Bus a 32/64 bit | 1.700 |
2004 | Pentium 4 D (Prescott) | 125.000.000 | da 90 a 65 | 1 | da 2,66 a 3,6 GHz | Bus a 32/64 bit | 9.000 |
2006 | Core 2 Duo (Conroe) | 291.000.000 | 65 | 2 | 2,4 GHz (E6600) | Bus a 64 bit / 64 bit | 22.000 |
2007 | Core 2 Quad (Kentsfield) | 2 * 291.000.000 | 65 | 4 | 3 GHz (Q6850) | Bus a 64 bit / 64 bit | 2 * 22.000 (?) |
2008 | Core 2 Duo (Wolfdale) | 410.000.000 | 45 | 2 | 3,33 GHz (E8600) | Bus a 64 bit / 64 bit | ~ 24.200 |
2008 | Core 2 Quad (Yorkfield) | 2 * 410.000.000 | 45 | 4 | 3,2 GHz (QX9770) | Bus a 64 bit / 64 bit | ~ 2 * 24.200 |
2008 | Intel Core i7 (Bloomfield) | 731.000.000 | 45 | 4 | 3,33 GHz (core i7 975X) | Bus a 64 bit / 64 bit | ? |
2009 | Intel Core i5 / i7 (Lynnfield) | 774.000.000 | 45 | 4 | 3,06 GHz (I7 880) | Bus a 64 bit / 64 bit | 76.383 |
2010 | Intel Core i7 (Città del Golfo) | 1.170.000.000 | 32 | 6 | 3,47 GHz (core i7 990X) | Bus a 64 bit / 64 bit | 147.600 |
2011 | Intel Core i3/i5/i7 (Sandy Bridge) | 1.160.000.000 | 32 | 4 | 3,5 GHz (core i7 2700K) | Bus a 64 bit / 64 bit | |
2011 | Intel Core i7 / Xeon (Sandy Bridge-E) | 2.270.000.000 | 32 | da 4 a 6 | 3,5 GHz (core i7 3970X) | Bus a 64 bit / 64 bit | 1 o 2 |
2012 | Intel Core i3/i5/i7 (Ivy Bridge) | 1.400.000.000 | 22 | da 4 a 6 | 3,5 GHz (core i7 3770K) | Bus a 64 bit / 64 bit | |
2013 | Intel Core i3/i5/i7 (Haswell) | 1.400.000.000 | 22 | da 4 a 6 | 3,8 GHz (core i7 4770K) | Bus a 64 bit / 64 bit | |
2014 | Intel Core i3 / i5 / i7 (Broadwell) | 1.400.000.000 | 14 | da 4 a 10 | 3,8 GHz (core i7 5775R) | Bus a 64 bit / 64 bit | |
2015 | Intel Core i3/i5/i7 (Skylake) | 1.750.000.000 | 14 | da 4 a 8 | 4 GHz (core i7 6700K) | Bus a 64 bit / 64 bit | |
2016 | Intel Core i3/i5/i7 (Kabylake) | ? | 14 | 4 | 4,2 GHz (Core i7 7700K) | Bus a 64 bit / 64 bit | |
2017 | Intel Core i3/i5/i7 (lago di caffè) | ? | 14 | da 6 a 8 | 5,0 GHz (Core i7 8086K) | Bus a 64 bit / 64 bit | |
2019 | Intel Core i3/i5/i7/i9 (Lago di ghiaccio) | ? | 10 | 4 | 4,1 GHz (core i7-1068NG7) | Bus a 64 bit / 64 bit | |
2019 | Intel Core i3/i5/i7/i9 (Tiger Lake) | ? | 10 | 4 | 5,0 GHz (core i7-11375H) | Bus a 64 bit / 64 bit | |
2020 | Intel Core i3/i5/i7/i9 (Comet Lake) | ? | 14 | 8 | 5,3 GHz (core i9-10900K) | Bus a 64 bit / 64 bit | |
2021 | Intel Core i3/i5/i7/i9 (Rocket Lake) | ? | 14 | 8 | 5,3 GHz (core i9-11900K) | Bus a 64 bit / 64 bit | |
2021 | Intel Core i3/i5/i7/i9 (Alder Lake) | ? | 10 | ? | Bus a 64 bit / 64 bit |
I microprocessori sono generalmente raggruppati in famiglie, a seconda del set di istruzioni che stanno eseguendo. Sebbene questo set di istruzioni includa spesso una base comune a tutta la famiglia, i nuovi microprocessori di una famiglia possono presentare nuove istruzioni. La retrocompatibilità in una famiglia non è sempre assicurata. Ad esempio un cosiddetto programma compatibile x86 scritto per un processore Intel 80386 , che consente la protezione della memoria, potrebbe non funzionare su processori meno recenti, ma funziona su tutti i processori più recenti (ad esempio un Intel Core Duo o un Athlon d'AMD).
Esistono decine di famiglie di microprocessori. Tra quelli che sono stati i più utilizzati, possiamo citare:
La famiglia più nota al grande pubblico è la famiglia x86 , apparsa alla fine degli anni '70 , sviluppata principalmente dalle società Intel (produttore del Pentium ), AMD (produttore dell'Athlon ), VIA e Transmeta . Le prime due società dominano il mercato producendo dal 2006 la maggior parte dei microprocessori per personal computer compatibili con PC e Macintosh .
La tecnologia MOS 6502 che è stata utilizzata per produrre l' Apple II , Commodore PET , ei cui discendenti sono stati utilizzati per le console Commodore 64 e Atari 2600 . La tecnologia MOS 6502 è stata progettata da ex ingegneri Motorola ed è stata molto ispirata dal Motorola 6800 .
Il microprocessore Zilog Z80 è stato ampiamente utilizzato negli anni '80 nella progettazione dei primi personal microcomputer a 8 bit come il TRS-80 , il Sinclair ZX80 , ZX81 , ZX Spectrum , lo standard MSX , i CPC Amstrad e successivamente nei sistemi embedded.
La famiglia Motorola 68000 (chiamata anche m68k) a Motorola ha animato il primo Macintosh , il Mega Drive , l' Atari ST e il Commodore Amiga . I loro derivati ( Dragonball , ColdFire ) sono ancora utilizzati nei sistemi embedded.
I microprocessori PowerPC di IBM e Motorola hanno equipaggiato fino al 2006 i microcomputer Macintosh (prodotti da Apple ). Questi microprocessori sono utilizzati anche nei server della serie P di IBM e in vari sistemi di bordo . Nel campo delle console di gioco , i microprocessori derivati dai PowerPC equipaggiano la Wii ( Broadway ), il GameCube ( Gekko ), l' Xbox 360 (un derivato a tre core chiamato Xenon). La PlayStation 3 è dotata del microprocessore Cell , derivato dal POWER4, un'architettura simile al PowerPC.
I processori dell'architettura MIPS hanno animato le workstation di Silicon Graphics , console di gioco come PSone , Nintendo 64 e sistemi embedded, oltre ai router Cisco . È la prima famiglia ad offrire un'architettura a 64 bit con il MIPS R4000 nel 1991. I processori del fondatore cinese Loongson , sono una nuova generazione basata su tecnologie MIPS, utilizzate nei supercomputer e nei computer a basso consumo.
La famiglia ARM è oggi utilizzata principalmente nei sistemi embedded , inclusi molti PDA e smartphone . È stato precedentemente utilizzato da Acorn per i suoi Archimedes e RiscPC .
I microprocessori sono sincronizzati da un segnale di clock (un segnale oscillante regolare che impone un ritmo al trasferimento tra i circuiti). A metà degli anni '80 , questo segnale aveva una frequenza da 4 a 8 MHz . Negli anni 2000, questa frequenza ha raggiunto i 3 GHz . Maggiore è questa frequenza, più il microprocessore può eseguire ad alta velocità le istruzioni di base dei programmi ma più deve essere curata la qualità dei bus e adattata la loro lunghezza alla frequenza.
Ci sono degli svantaggi nell'aumentare la frequenza:
L' overclocking consiste nell'applicare al microprocessore un segnale di clock a frequenza più elevata secondo le raccomandazioni del produttore che può eseguire più istruzioni ogni secondo. Ciò richiede spesso più alimentazione a rischio di malfunzionamenti o addirittura distruzione in caso di surriscaldamento.
I microprocessori attuali sono ottimizzati per eseguire più di un'istruzione per ciclo di clock, sono microprocessori con unità di esecuzione parallelizzate. Inoltre, sono dotati di procedure che “anticipano” le seguenti istruzioni con l'ausilio di statistiche.
Nella corsa per la potenza dei microprocessori, due metodi di ottimizzazione competono:
Tuttavia, con la riduzione delle dimensioni dei chip elettronici e l'accelerazione delle frequenze di clock, la distinzione tra RISC e CISC è quasi completamente scomparsa. Laddove esistevano famiglie nette, oggi possiamo vedere microprocessori dove una struttura RISC interna fornisce alimentazione pur rimanendo compatibile con utilizzi di tipo CISC (la famiglia Intel x86 ha così subito una transizione tra un'organizzazione che inizialmente era molto tipica di un CISC struttura . Attualmente utilizza una molto veloce RISC nucleo , basato su un sistema di on-the-fly riarrangiamento code ) attuato, in parte, grazie alle sempre più grandi cache , comprendente fino a tre livelli.
L'unità centrale di un microprocessore comprende essenzialmente:
Alcuni registri hanno un ruolo ben preciso:
Solo il Program Counter è essenziale, ci sono (rari) processori senza registro di stato o senza puntatore allo stack (ad esempio l' NS320xx (en) ).
La centralina può anche essere suddivisa:
Per cominciare, il microprocessore caricherà un'istruzione contenuta in memoria grazie al program counter. Quest'ultimo viene incrementato di passaggio, in modo che il processore elabori l'istruzione successiva al ciclo successivo. L'istruzione viene quindi decodificata e, se necessario, il microprocessore cercherà nella memoria ulteriori dati. In alcuni casi, le istruzioni vengono utilizzate solo per caricare dati in un registro specifico o per scrivere dati da un registro in memoria. In questo caso, il processore carica o scrive i dati, quindi passa all'istruzione successiva. Nel caso in cui il processore debba eseguire un'operazione di calcolo, il processore chiama quindi l'ALU. In molte architetture, questo funziona con un registro accumulatore . In questo modo si salva il risultato dell'operazione precedente, che può essere riutilizzato. Nel caso di un salto ( goto, jump ), è il program counter che viene modificato direttamente. Nel caso di un salto condizionato ( if ), il processore verifica prima del salto che una condizione booleana sia valida ( true ). In alcuni salti ( jump ), il processore aggiunge un valore all'accumulatore. Ciò consente al programma di essere eseguito ovunque nella memoria. Le istruzioni sono quindi suddivise in diverse categorie:
Al termine del ciclo, il processore finisce di memorizzare i propri dati in memoria o in appositi registri. In caso di riporto, un apposito registro riceve il valore del riporto, che gli permette di essere nuovamente combinato per operare con più bit di quanti l'architettura ne consenta. In caso di errore, come una divisione per zero, il processore modifica un registro di stato e può attivare un'interruzione. Tutti questi passaggi possono essere eseguiti in più cicli di clock. Un'ottimizzazione consiste nell'eseguirli in catena (principio della pipeline) o in parallelo (architettura superscalare). Attualmente, di fronte alla difficoltà associata all'aumento della frequenza dei microprocessori, i produttori stanno cercando di aumentare il numero di istruzioni per ciclo (IPC) per aumentare la velocità dei loro processori. Ciò ha portato alla nascita di processori multi-core , composti da più unità, o core , in grado di eseguire un'istruzione indipendentemente dall'altra (a differenza di un'architettura superscalare, che mantiene i registri in comune). Parliamo quindi di calcolo in parallelo. Tuttavia, ciò richiede programmi adeguati e le prestazioni di questi processori dipendono quindi sempre più dalla qualità della programmazione dei programmi che eseguono.
La fabbricazione di un microprocessore è essenzialmente la stessa di quella di qualsiasi circuito integrato . Segue quindi un processo complesso. Ma l'enorme dimensione e complessità della maggior parte dei microprocessori tende ad aumentare ulteriormente il costo dell'operazione. La legge di Moore , che afferma che il numero di transistor sui microprocessori a doppio chip di silicio ogni due anni, indica anche che i costi di produzione sono raddoppiati insieme al grado di integrazione.
La fabbricazione di microprocessori è oggi considerata come uno dei due fattori per aumentare la capacità delle unità produttive (con i vincoli legati alla fabbricazione di memorie di grande capacità). La finezza dell'incisione industriale ha raggiunto i 45 nm nel 2006. Riducendo ulteriormente la finezza dell'incisione, i fondatori si scontrano con le regole della meccanica quantistica .
Nonostante l'uso di tecniche di incisione sempre più fini, il riscaldamento dei microprocessori rimane approssimativamente proporzionale al quadrato della loro tensione a una data architettura. Con la tensione, la frequenza e un coefficiente di regolazione, possiamo calcolare la potenza dissipata :
Questo problema è legato ad un altro, quello della dissipazione del calore e quindi spesso dei ventilatori , fonti di inquinamento acustico. È possibile utilizzare il raffreddamento a liquido. L'utilizzo della pasta termica garantisce una migliore conduzione del calore dal processore al dissipatore di calore. Sebbene il riscaldamento non rappresenti un grosso problema per le applicazioni di tipo desktop, rappresenta per tutte le applicazioni portatili. È tecnicamente facile alimentare e raffreddare un computer fisso. Per le applicazioni portatili, questi sono due problemi delicati. Telefoni cellulari, laptop, fotocamere digitali, PDA e lettori MP3 hanno batterie che devono essere conservate affinché il dispositivo portatile abbia una migliore autonomia.