Come funziona un microprocessore?
Il microprocessore è un chip di silicio programmabile pilotato da un clock: il suo principale compito è l’elaborazione dei dati in ingresso fornendo poi dei risultai in uscita.
Nell’immaginario comune quando si parla di microprocessore si pensa subito ad un computer. Ma le applicazioni dei microprocessori comprendono sia sofisticati sistemi di controllo, che delle semplici macchine da gioco.
Ad esempio, un’auto moderna possiede un numero di microprocessori maggiore rispetto ad un computer. Oggi quasi tutte le apparecchiature utilizzano un microprocessore: lettori MP3, telefoni cellulari, lavatrici, frigoriferi, robot da cucina e persino degli spazzolini da denti.
Un microprocessore è fondamentalmente costituito (secondo una visione a blocchi) da un’ALU (Unità Aritmetico Logica), da una Control Unit (CU) e da un array di registri.
- L’ALU, come indica il nome, esegue tutte le operazioni aritmetiche e logiche sui dati ricevuti dalla memoria o dai dispositivi di input.
- L’array di registri è costituito da un gruppo di registri identificati con diverse lettere dell’alfabeto. Questi registri fungono come posizioni di memoria ad accesso rapido per l’elaborazione dei dati.
- La Control Unit controlla il flusso di istruzioni e dati di tutto il sistema.
Ma come funziona effettivamente un microprocessore?
Cercheremo di spiegarlo in modo semplice partendo dal livello più basso dell’architettura: il transistor.
Nei microprocessori vengono usati i transistor ad effetto di campo (FET). Questi transistor possono funzionare come degli interruttori. Quando il transistor conduce (interruttore acceso) la corrente scorre attraverso di esso, tale condizione è considerata come uno stato logico alto (pari a 1). Invece se il transistor non conduce (interruttore spento) si ottiene uno stato logico basso (pari a 0).
Dai transistor si passa ad un livello di astrazione maggiore: le porte logiche.
Di fatto tutte le operazioni eseguite da un microprocessore possono (e sono) essere realizzate da queste porte. Quando viene collegato un gruppo di transistor, si ottengono appunto delle unità chiamate porte logiche. Ad esempio, è possibile creare una porta AND, cioè una porta che ha 2 ingressi ed un’uscita; la sua uscita è pari a uno soltanto se entrambi gli ingressi sono pari a uno. Invece in una porta OR l’uscita è zero se gli ingressi sono entrambi pari a zero, viceversa l’uscita sarà uguale a uno. L’immagine seguente potrebbe spiegare meglio il funzionamento delle due porte.
Esistono diverse tipologie di porte logiche, come NOT, XOR, NAND, NOR, ma quello che bisogna capire è che combinando insieme molti transistor si ottengono delle unità funzionali chiamate porte logiche che effettuano diverse operazioni sui bit 1 e 0.
Si sale ancora più di livello di astrazione: combinando infatti più porte logiche tra di loro, si possono creare circuiti complessi che fanno delle operazioni come sommare o moltiplicare due numeri, oppure spostare i dati da un posto all’altro. I lettori più attenti avranno a questo punto intuito che l’ALU e la Control Unit al loro interno contengono degli insiemi di porte logiche.
Come si passa da un gruppo di bit ad un’immagine su un browser o ad un video riprodotto sul cellulare?
Tutti i dati in un microprocessore vengono interpretati tramite dei codici binari, cioè un sistema numerico posizionale in base 2 che utilizza solo le cifre 0 e 1. Ad esempio, il numero decimale 86 convertito in binario è 1010110.
Quindi numeri, immagini, video e tutto ciò che un microprocessore elabora possono essere suddivisi in stringhe di 1 e 0. Un’immagine può essere trasformata in un’enorme stringa di numeri binari composta da diversi bit che rappresentano l’intensità dei colori rosso, verde e blu, ovvero dei colori che compongono ciascun pixel.
Inoltre, il microprocessore non può funzionare da solo! Infatti un computer, un cellulare o qualunque altro dispositivo possiede delle periferiche per il corretto funzionamento. Ogni periferica possiede il proprio “indirizzo”, costituito anche da certo numero di bit. Ad esempio nel tuo computer, la scheda grafica, la scheda Ethernet, i moduli RAM hanno il loro spazio d’indirizzo. Poiché ogni periferica ha il suo indirizzo, il software in esecuzione può dire al processore qualcosa del tipo: “Procura il dato XXX nella locazione di memoria YYY”. Ovviamente, l’intero processo non è così semplice come è stato descritto, ma questa descrizione fa intuire come funziona un microprocessore. In ogni caso, tutte le elaborazioni all’interno del processore avvengono attraverso il linguaggio macchina, che è la lingua che i processori comprendono formata dai numeri 1 e 0.
Quindi, per riprodurre un video, servono moltissime stringhe binarie e, per far sì che tutto accada, ci vogliono tantissime porte logiche. Poiché ogni porta logica è creata da singoli transistor, questo spiega per quale motivo i moderni processori contengono miliardi di transistor!