La CPU (central processing unit), meglio conosciuta come processore, è l‘unità di elaborazione centrale. Il processore è il cuore pulsante di apparecchiature come smartphone, tablet o PC, il suo compito consiste nella gestione e nella coordinazione tra le risorse di un dispositivo. La prima CPU commercializzata è l’IBM 709 Central Processing Unit datato 1958, come tutte le prime CPU aveva un funzionamento basato sulla valvola termoionica (detta anche tubo a vuoto) che attualmente è stata sostituita dai transistor.
L’evoluzione della tecnologia fece e sta facendo attualmente passi da gigante, cresciamo con una velocità impressionante, addirittura esponenziale e già dal lontano 1965 si prospettava un’incremento delle potenzialità della tecnologia, a tal proposito Gordon Moore, cofondatore di Intel, formulò una legge empirica (basata solo su osservazioni) chiamata Legge di Moore, il suo enunciato è il seguente:
“Le prestazioni dei processori, e il numero di transistor ad esso relativo, raddoppiano ogni 18 mesi.”
Nel corso degli anni questa legge si è dimostrata vera, raggiungendo processori di dimensioni piccolissime tanto da utilizzare i nanometri come unità di misura per la dimensione del gate di ogni singolo transistor.
LA STRUTTURA DEL PROCESSORE
Per rendere meglio l’idea dell’infinitesima dimensione delle componenti pensiamo che 1 nanometro (nm) corrisponde a 10-9 che corrisponde ad un miliardesimo di metro, una misura così piccola dei transistor, naturalmente, prima o poi incontrerà limiti di natura fisica e in futuro passeremo con grande probabilità ad utilizzare la fisica quantistica (guarda anche come funziona un computer quantistico) per lo studio e la realizzazione di dispositivi elettronici come i processori.
La nascita del sistema multi-core o multi-processore nasce proprio per questa difficoltà di produzione: migliorare le prestazioni sfruttando la combinazione di più processori per un calcolo parallelo.
Attualmente un processore i7 di quarta generazione è basato su un processo di costruzione a 22 nm, un capello, in media, ha uno spessore di “soli” 80000 nm.
La struttura del processore è molto complessa, mi limiterò ad elencare la struttura di base comune ad ogni processore:
- Unità di controllo (CU): preleva le istruzioni dalla memoria, esegue l’istruzione e dove richiesto ne memorizza il risultato in memoria o in un registro della CPU.
- Unità aritmetico logica (ALU): si occupa delle operazioni aritmetiche e logiche.
- I registri: locazioni di memoria ad altissima velocità (le memorie più veloci che si trovano in un computer) interne alla CPU, i registri considerati in un insieme danno come risultato lo stato, in quel dato istante, della CPU. I registri principali sono 2:
- Il Program Counter: contiene l’indirizzo di memoria della prossima istruzione.
- Flag di stato: può contiene bit di informazioni sull’ultima operazione effettuata oppure dei valori che dettano uno stato particolare della CPU come l’overflow o l’interrupt per esempio.
- Bus di comunicazione: i Bus sono dei circuiti responsabili della comunicazione reciproca tra tutte le varie componenti del processore (CU, ALU, Registri)
Le gestioni più comuni dei registri sono gli stack di registri e i registri nominativi. Nella prima i registri sono in una struttura a pila (stack) con la particolarità di operare quasi esclusivamente sulla locazione in cima alla pila così da avere istruzioni brevi e semplici da decodificare. La seconda, invece, ogni registro è identificato singolarmente e le istruzioni che usano registri, dichiarano ogni volta quale registro utilizzare.
APPROFONDIMENTO SUL PROCESSORE
Il processore è un circuito sincrono che cambia stato ogni volta che gli viene inviato un impulso di sincronismo denominato Clock. Per spiegare in maniera semplice come funziona il clock cerchiamo di paragonarlo ai giri di un motore: Più i giri di un motore aumentano più ne aumentano le performance, raggiunto un certo picco, però, per ragioni di stabilità della macchina bisogna aumentare o diminuire la marcia inserita, la marcia inserita rende più stabile quella determinata performance della macchina.
Le marce nel processore sono le frequenze che possono variare di numero a seconda del modello della CPU, un processore con clock da 2.3 Ghz può avere un gran numero di frequenze che possono raggiungere la quindicina. Quindi il tempo di esecuzione di un’istruzione si misura in cicli di clock.
Inoltre se siete curiosi delle differenze dei processori potete leggere l’articolo dedicato alle differenze fra CPU a 32 bit e CPU a 64 Bit un approfondimento molto interessante.
Tornando al ciclo per il funzionamento della CPU lo elenchiamo di seguito:
- Fase fetch: La CPU preleva le informazioni dalla memoria centrale (RAM) seguendo l’indirizzo dettato dal Program Counter.
- Operand Assembly: Consiste nella decodifica dell’informazione per trasformarla rendendola eseguibile.
- Execute: la fase di execute consiste nell’esecuzione dell’istruzione precedentemente ottenuta. Alla fine della fase di execute viene incrementato il Program Counter di una sola unità per passare all’informazione successiva, se non viene specificato altro indirizzo dall’esecuzione appena terminata
Il chipset è l’insieme di chip presenti sulla scheda madre atti a smistare tutte le informazioni provenienti dalla CPU attraverso i bus di sistema.Per capire come funziona un bus di sistema immaginiamolo come un’autostrada dove le varie istruzioni possono prendere l’uscita giusta per raggiungere il dispositivo collegato alla scheda madre che desiderano (per esempio l’automobile “istruzione stampa” viaggerà su di un bus di sistema prendendo l’uscita stampante).
Questa è la fine della parte 1 dove abbiamo parlato dal punto di vista hardware cos’è la CPU. Nella seconda parte parleremo di come i sistemi operativi gestiscono il processore quindi si avrà un approccio sotto un punto di vista Software.
Lascia un commento