Il processore (CPU, per Central Processing Unit, ossia Unità Centrale di Trattamento) è il cervello del computer. Esso permette di manipolare delle informazioni digitali, cioè delle informazioni codificate sotto forma binaria, e di eseguire le istruzioni stoccate nella memoira.
Il primo microprocessore (Intel 4004) è stato inventato nel 1971. Si trattava di un'unità di calcolo a 4 bits, cadenzato a 108 kHz. Da qui, la potenza dei microprocessori aumenta in maniera esponenziale. Quali sono quindi questi piccoli pezzi di silicio che dirigono i nostri computer?

Il processore (sigla CPU, per Central Processing Unit) è un circuito elettronico cadenzato al ritmo di un orologio interno, grazie ad un cristallo di quarzo che, sottoposto ad una corrente elettrica, invia degli impulsi, detti « top ». La frequenza dell'orologio (detta anche ciclo, corrispondente al numero di impulsi al secondo, è espressa in Hertz (Hz). Così, un computer a 200 MHz ha un orologio che invia 200 000 000 battiti al secondo. La frequenza dell'orologio è generalmente un multiplo della frequenza del sistema (FSB,Front-Side Bus), cioè un multiplo della frequenza della scheda madre
Ad ogni top dell'orologio il processore esegue un'azione, corrispondente ad un'istruzione o ad una parte di istruzione. L'indicatore detto CPI (Cycli Per Istruzione) permette di rapresentare il numero medio di cicli di orologio necessario all'esecuzione di un'istruzione su un microprocessore. La potenza può quindi essere caratterizzata dal numero di istruzioni che è capace di trattare al secondo. L'unità utilizzata è il MIPS (Milioni di Istruzioni al Secondo) corrispondente alla frequenza del processore che divide il CPI.
Un ' istruzione è l'operazione elementare che il processore può eseguire. Le istruzioni sono stoccate nella memoria principale, per essere poi trattate dal processore. Un'istruzione è composta da due campi :
| Codice operazione | Campo operando |
Il numero di bytes di un'istruzione è variabile secondo il tipo di dato (l'ordine di grandezza va da 1 a 4 bytes).
Le istruzioni possono essere classificate in categorie fra cui le principali sono :
Quando il processore esegue delle istruzioni, i dati sono temporaneamente stoccati in piccole memorie rapide da 8, 16, 32 o 64 bits che vengono chiamate Registri. Secondo il tipo di processore il numero totale dei registri può variare da una dozzina fino a più centinaia.
I principali registri sono :
La Memoria cache (detta anche antimemoria o memoria tampone) è una memoria rapida che permette di ridurre i tempi di attesa delle informazioni stoccate nella memora viva. In effetti, la memoria centrale del computer ha una velocità molto meno importante rispetto al processore. Esistono comunque delle memorie molto più rapide, ma ad un costo decisamente elevato. La soluzione consiste quindi nell'includere questo tipo di memoria rapida in prossimità del processore e immagazzinarvi temporanemente i dati principali che devono essere trattati dal processore. I computer recenti hanno più livelli di memoria cache :
I Segnali di comando sono dei segnali elettrici che permettono di orchestrare le differenti unità del processore partecipanti all'esecuzione di un'istruzione. I segnali dei comandi sono distribuiti grazie a un elemento detto sequenziatore. Il segnale Read / Write, in italiano lettura/scrittura, permette di segnalare alla memoria che il processore vorrebbe leggere o scrivere un'informazione.
Il processore è costituito da un insieme di unità funzionali collegate fra loro. L'architettura di un microprocessore può variare di molto da un'architettura ad un'altra, tuttavia gli elementi principali di un microprocessore sono i seguenti :
Lo schema sottostante da una rappresentazione semplificata degli elementi che costituiscono il processore (l'organizzazione hardware degli elementi non corrisponde alla realtà) :

Per effettura il trattamento dell'informazione, il microprocessore ha un insieme di istruzioni, dette « set di istruzioni », realizzate mediante dei circuiti elettronici. Più esattamente, il set di istruzioni è realizzato con l'aiuto di semiconduttori, « piccoli interruttori » che utilizzano l'effetto transistor, scoperto nel 1947 da John Barden, Walter H. Brattain e William Shockley che ricevettero il premio Nobel nel 1956 per questa scoperta.
Un Transistor (contrazione di transfer resistor, in italiano resistore di trasferimento) è un componente elettronico semi-conduttore, che ha tre elettrodi, capaci di modificare la corrente che li attraversa mediante uno dei suoi elettrodi (detti elettrodi di comando). Si parla quindi di «componenti attivi», in opposizione ai « componenti passivi », come la resistenza o il condensatore, che hanno solo due elettrodi (si parla di « bipolare »).
Il trasistor MOS (metallo, ossido, silicio) è il tipo di trasistor maggiormente utilizzato per la concezione di circuiti integrati. Il transistor MOS è composto da due zone caricate negativamente, dette rispettivamente sorgente (che ha un potenziale quasi nullo) e DRAIN (con un potenziale di 5V), separati da una regione caricata positivamente, detta substrato (in inglese substrate). Il substrato è sormontato da un elettrodo di comando, detto cancello (in inglese gate, talvolta chiamato anche griglia), che permette di applicare una tensione al substrato.

Quando non si applica nessuna tensione all'elettrodo di comando, il substrato caricato positivamente agisce come una barriera e impedisce all'elettrone di andare dalla sorgente al drain. Se invece si applica una tensione alla porta, le cariche positive del substrato sono respinte e si stabilisce un canale di comunicazione, caricato negativamente, che collega la sorgente al drain.

Il transistor agisce quindi globalmente come un interruttore programmabile grazie all'elettrodo di comando. Quando si applica una tensione all'elettrodo di comando, esso agisce come un interruttore chiuso, in caso contrario come un interruttore aperto.
Una volta assemblati, i trasistor possono formare dei circuiti logici, che, assemblati a loro volta, costituiscono dei processori. Il primo circuito integrato data 1958 ed è stato messo a punto dalla società Texas Instruments.
I transistor MOS sono quindi realizzati in sezioni di silicio (dette wafer, traduisez gaufres), ottenute dopo vari trattamenti. Queste sezioni di silicio sono quindi ritagliate in elementi rettangolari, che costituiscono quello che viene chiamato un « circuito ». I circuiti sono in seguito posti in case provvisti di connettori di entrata-uscita, per formare un « circuito integrato ». La finezza dell'incisione, espressa in micron (micrometri, sigla µm) definisce il numero di transistor per unità di superficie. Possono esistere fino a numerosi milioni di transistor in un solo processore.
La legge di Moore, pubblicata nel 1965 da Gordon E. Moore, cofondatore della società Intel, prevedeva che le performance dei processori (per estensione il numero di transistor integrati sul silicio) raddoppiavano ogni 12 mesi. Questa legge è stata rivista nel 1975, portando il numero di mesi a 18. La legge di Moore è ancora ad oggi in atto.
Dato che il case rettangolare ha dei PIN d'entrata-uscita che assomigliano a delle zampe, è spesso utilizzato il termine « pulce elettronica » per designare i circuiti integrati.
Ogni tipo di processore ha il proprio set di istruzione. Distinguiamo quindi le seguenti famiglie di processori, ciascuna con un proprio set di istruzione specifico :
Questo spiega perché un programma realizzato per un tipo di processore non possa funzionare direttamente su un sistema con un altro tipo di processore, a meno che non si faccia una traduzione delle istruzioni, dettasimulazione. Il termine « simulatore » è usato per designare il programma che realizza questa traduzione.
Viene detto set di istruzioni l'insieme delle operazioni elementari che un processore può compiere. Il set di istruzioni di un processore determina quindi la sua architettura, sapendo che una stessa architettura può dare delle implementazioni differenti secondo i costruttori.
Il processore lavora effettivamente grazie ad un numero limitato di funzioni, direttamente cablate sui circuiti elettronici. La maggior parte delle operazioni possono essere realizzate attraverso delle funzioni di base. Alcune architetture prevedono tuttavia delle funzioni evolute correnti nel processore.
L'architettura CISC (Complex Instruction Set Computer, ossia « computer con set di istruzioni complesso ») consiste nel cablare nel processore delle istruzioni complesse, difficili da creare partendo dalle istruzioni di base.
L'architettura CISC è usata in particolare per i processori di tipo 80x86. Questo tipo di architettura ha un costo elevato dovuto alle funzioni evolute stampate sul silicio.
D'altra parte, le istruzioni sono di lunghezza variabile e possono talvolta avere bisogno di più di un ciclo d'orologio. Ora, un processore basato sull'architettura CISC non può trattare che una sola istruzione alla volta, con un conseguente tempo di esecuzione.
Un processore che usa la tecnologia RISC (Reduced Instruction Set Computer, ossia « computer con set di istruzioni ridotto ») non ha delle funzioni cablate evolute.
I programmi devono quindi essere tradotti in istruzioni semplici, cosa che provoca uno sviluppo più difficile e/o un compilatore più potente. Un'architettura simile ha un costo di fabbricazione ridotto rispetto al processore CISC. Inoltre, le istruzioni, semplici per natura, sono eseguite in un solo ciclo di orologio, cosa che rende più rapida l'esecuzione dei programmi che non con dei processori basati su un'architettura CISC. Infine, simili processori sono capaci di trattare più informazioni simultaneamente trattandole in parallelo.
Durante gli anni, i costruttori di microprocessori (detti fondatori), hanno messo a punto un certo numero di miglioramenti che permettono di ottimizzare il funzionamento del processore.
Il parallelismo consiste nell'eseguire simultaneamente, su processori differenti, delle istruzioni relative ad uno stesso programma. Questo si traduce con la divisione di un programma in più processi trattati in parallelo per guadagnarne in tempo di esecuzione.
Questo tipo di tecnologia necessita tuttavia di una sincronizzazione e una comunicazione tra i diversi processori, allo stesso modo della divisione dei compiti in un'azienda : il lavoro è diviso in piccoli processori distinti, trattati da servizi diversi. Il funzionamento di una simile azienda può essere disturbato quando la comunicazione tra i servizi non funziona correttamente.
La pipeline (o pipelining) è una tecnologia che punta a permettere una maggiore velocità di esecuzione delle istruzioni eseguendo in parallelo le varie tappe.
Per capire il meccanismo della pipeline, è necessario comprendere prima le fasi di esecuzione di un'instruzione. Le fasi di esecuzione di un'istruzione per un processore contenenti una pipeline « classica » a 5 piani sono le seguenti :
Le istruzioni sono organizzate in file d'attesa nella memoria, e sono caricate le une presso le altre.
Grazie alla pipeline, il trattamento delle istruzioni ha bisogno al massimo d cinque tappe precedenti. Dato che l'ordine di queste tappe non cambia (LI, DI, EX, MEM et ER), è possibile creare nel processore un certo numero di circuiti specializzati per ciascuna di questi fasi.
L'obiettivo della pipeline è di essere capace di realizzare ogni tappa in parallelo con le tappe a monte e a valle, cioè di poter leggere un'istruzione (LI) mentre la precedente è in corso di decodifica (DI), e quella ancora prima è in corso di esecuzione (EX), e quella posta ancora prima accede alla memoria (MEM) e infine la prima della serie è già in corso di scrittura nei registri (ER).

Solitamente bisogna contare da 1 a 2 cicli d'orologio (raramente di più) per ogni fase della pipeline, ossia 10 cicli d'orologio al massimo per istruzione. Per due istruzioni, saranno necessari al massimo 12 cicli d'orologio (10+2=12 au lieu de 10*2=20), dato che la precedente istruzione era già nella pipeline. Le due istruzioni sono quindi in trattamento nel processore, con una differenza di uno o due cicli di orologio). Per 3 istruzioni, saranno così necessari 14 cicli d'orologio, ecc.
Il principio della pipeline è quindi paragonabile ad una catena di produzione di automobili. L'automobile passa da una postazione di lavoro all'altra seguendo la catena di montaggio ed esce completamente assemblata all'uscita del complesso. Per ben capire il principio, è necessario guardare la catena nel suo insieme, e non veicolo per veicolo. Servono quindi 3 ore per fabbricare un'auto, ma si produce un veicolo ogni minuto!
Da notare tuttavia che esiston differenti tipi di pipeline, da 2 a 40 piani, ma il principio resta lo stesso.
La tecnologia superscalare (in inglese superscaling) consiste nel disporre di più unità di trattamento in parallelo per poter trattare più istruzioni per ciclo.
La tecnologia HyperThreading (o Hyper-Threading, sigla HT, tradotto HyperFlots o HyperFlux) consiste nel definire due processori software all'interno di un processore hardware. Così, il sistema riconosce due processori hardware e si comporta come un sistema multitask inviando due thread simultanei, si parla allora di SMT (Simultaneous Multi Threading). Questa « astuzia » permette di utilizzare al meglio le risorse del processore garantendo che i dati gli siano inviati in massa.