Processore: cos’è la CPU e come funziona

La scelta del processore – detta anche CPU – è una scelta cruciale quando si va ad acquistare (o ad assemblare) un nuovo PC, che sia un PC Desktop o una soluzione portatile. In molti, quando parlano di processori, minimizzano il tutto prendendo in considerazione solo il marchio (prevalentemente AMD e Intel), la sigla (FX, i3, i5, i7 ecc..) ed il numero di core (mono-core, dual-core, octa-core ecc..) e la frequenza (3,8Ghz), cadendo in errori macroscopici che possono compromettere l’utilizzo giornaliero del proprio dispositivo.

Adesso capiremo come non cadere in questi errori, analizzando cosa è un processore, da cosa è formato e quali sono gli aspetti fondamentali di questi piccoli pezzi di silicio che, giorno dopo giorno diventano sempre più performanti.

Cos’è il processore?

Dovessi spiegare, in pochissime parole, cosa sia un processore (rifacendomi magari alle slide di Architettura degli Elaboratori che, di università in università sono sempre molto simili) direi che “è la componente più importante dell’elaboratore, poiché esegue le istruzioni dei programmi.”

Una definizione che, in linea di principio, è giusta ma che, ovviamente, è solo piccolissima sintesi.

Il processore elabora ed esegue tutte le istruzioni che servono al computer per elaborare tutti i dati di uno o più programmi sotto l’attenta supervisione del sistema operativo. Il processore funziona in maniera ciclica, in quanto il suo funzionamento è sempre quello (Ciclo di Istruzione): preleva l’istruzione di un programma dalla memoria (operazione di Fetch), la decodifica per interpretarne le istruzioni (operazione di Decode) e poi la esegue (operazione di Execute).

Tutto ciò, sempre spiegato in maniera molto sintetica, avviene grazie ai componenti interni al Processore che sono i Registri (che possono essere quelli Utente, visibili ai programmatori, e quelli di Controllo e di stato), l’Unità di Controllo (la CU, che “interpreta” ed esegue ogni istruzione codificata in linguaggio macchina), l’Unità Aritmetico-Logica (ALU, che esegue le operazioni logiche, aritmetiche e i confronti) ed i Bus Interni (che consentono il trasferimento di informazioni tra i vari componenti dell’elaboratore).

Se questa parte vi è sembrata un po’ noiosa non vi biasimo, quindi passiamo alla parte “fondamentale”.

Il processore è a sua volta composto da due parti principali, il package e il core, che è il nucleo elaborativo del processore e che è racchiuso nel package, e la sua unità di misura è il Clock, il numeri di commutazioni tra i due livelli logici (o e 1, in quanto parliamo, al momento, ancora di sistemi binari) che i circuiti del processore sono capaci di eseguire in un secondo: 10Hz sono 10 “aggiornamenti” al secondo, ma nel caso dei processori moderni parliamo di GHz (gigahertz).

Nonostante in molti si fermino solo a questi fondamentali, ci sono altri aspetti importantissimi da pendere in considerazione. Adesso analizziamo uno ad uno i fondamentali, partendo proprio da quelli più sottovalutati.

Architettura del processore

Molti di voi avranno sentito di alcuni termini quali Skylake, Kabylake, Zen e via discorrendo, magari capendo ben poco, ma arrivando alla conclusione che più è moderna l’architettura del processore maggiori saranno i benefici. In linea di principio questo è giusto, in quanto un’architettura più moderna è figlia di innovazioni tecnologiche frutto di studi continui ed approfonditi da parte dei produttori.

cpu

Il mondo dell’architettura di un elaboratore è vastissimo, quasi infinito e di difficile sintesi (quindi non andremo troppo nel dettagli), ma basti pensare che in realtà ve l’ho già spiegata, in quanto l’architettura è formata da tutti i componenti che abbiamo già visto, quindi la CU, l’ALU, la memoria della CPU, i bus e i Registri.

In generale, le architetture dei moderni elaboratori, hanno la stessa struttura, anche se con tecnologie e innovazioni differenti, poiché si basano tutte sull’architettura della macchina di Von Neuman, ma non ne parleremo.
Cosa vuol dire questo? Tutte le successive caratteristiche di cui parleremo, faranno parte dell’architettura del processore quindi tutte riconducibili a questa voce che, quindi, le racchiude.

Processo di produzione (o LITOGRAFIA)

Sconosciuto ai più, il processo di produzione è il sinonimo dell’innovazione tecnologica dei nostri tempi. Quanti di voi immaginano che, in un futuro non molto lontano, riusciremo a portare i nostri computer comodamente in tasca? Sembra utopia ma è già così, con le dovute proporzioni, in quanto i moderni smartphone sono veri e propri computer, e se proprio non ci credete, Continuum di Microsoft e Dex di Samsung ne sono l’esempio.

All’interno del processore, sono contenuti componenti microscopici, questo grazie all’evoluzione della miniaturizzazione dei circuiti integrati, miniaturizzazione che è stata spiegata in maniera eccellente da Gordon Moore (cofondatore di Intel), che diceva che il numero si transistor (introdotti nel ’47, sono materiali semiconduttori) che possono essere inseriti in un chip di silicio raddoppia, all’incirca, ogni anno.

Ogni transistor, si misura in nanometri, (un miliardo di un metro) e più piccolo è un transistor, più transistor possono essere inseriti all’interno della CPU aumentando la velocità e la qualità di calcolo.

La storia è noiosa, ma basti pensare a quanti nanometri era il processo di produzione nel 1990 per capire come, in poco più di 25 anni, si sia evoluto il mondo tecnologico: 800 NANOMETRI, mentre nel 2010 era 32nm.

Il limite odierno è 10 nanometri, raggiunti sia in ambito desktop che in ambito portatile e sia in ambito mobile. Ma quali sono i benefici del processo produttivo più piccolo? Maggior potenza ovviamente, ma anche maggiori contenuti fruibili (basti pensare al 4K), minori consumi e temperature più basse, sebbene questo non accada sempre (basti pensare, in ambito mobile, allo Snapdragon 810 il cui processo produttivo era comunque di soli 20nm).

TDP

Se dovessimo parlare del consumo in Watt del processore, quanti di voi sarebbero in grado di spiegare cos’è il TDP? Purtroppo non molti, sebbene sia una questione di vitale importanza per la longevità, la stabilità ed il funzionamento del computer.

Immaginate di avere un Intel Xeon X5660 da un TDP di 95w, una GPU performante (perché lo Xeon non integra GPU), una Nvidia Quadro da 100w più tutti gli altri componenti e alimentarla con un alimentatore da 200w: il disastro è assicurato. Per questo, il TDP è un aspetto di vitale importanza che, però, in molti sottovalutano.

Ma il TDP non è importante solo per il consumo energetico e il suo nome, infatti, dice tutto: Thermal Design Power: questa misurazione indica la potenza media, in watt, dissipata dal processore durante il funzionamento a frequenza base con tutti i core attivi in un carico di lavoro ad alta complessità, quindi, in genere, quando il processore lavora al massimo.

I valori minori li ritroviamo nei processori da integrare nei sistemi portatili, in quanto il calore prodotto deve essere, per forza di cose, più basso e da qui nasce la serie a risparmio energetico (i famosi ix-xxxxu). Se nei notebook è bene avere un TDB abbastanza basso, non è indispensabile la stessa cosa nei sistemi desktop, ma all’aumentare del valore di TDP è importante avere un sistema di raffreddamento adeguato, sistema di raffreddamento che, in molti casi, è integrato insieme al processore ma non è sufficiente a reggere i suoi ritmi e le sue temperature (motivo per cui i produttori stanno man mano abbandonando i dissipatori stock).

Cache e registri

I meno preparati in ambito di tecnologia conoscono, prevalentemente, due tipi di memoria: la memoria di massa (Hard Disk fisico (HDD) o le recenti Unità a stato Solido (SSD)) e la Memoria RAM (Random Access Memory) e mai si immaginerebbero, non conoscendo la struttura di un processore, che anche le CPU hanno proprie memorie.

All’interno della CPU, infatti, ci sono delle memorie che sono di vitale importanza per il funzionamento del computer: se le memorie di massa servono per immagazzinare i dati e la memoria centrale serve per immagazzinare momentaneamente i dati che il processore sta elaborando, i registri, che sono memorie interne alla CPU, servono a memorizzare i risultati temporanei dell’elaborazione e le informazioni di controllo.

I registri hanno capacità piccolissime (si parla di WORD, che è un insieme di pochi Byte) ma un accesso pressoché istantaneo (sono le memorie più veloci), ma per l’utente finale sono aspetti pressoché “inutili”, in quanto possono essere visti solo in fase di programmazione.

Aspetto ben più importante per la scelta del prodotto finale è la Memoria Cache, che è una memoria intermedia tra la memoria centrale e il processore, che è nata per due limiti della macchiana di Von Neumann: il limite architetturale (il famoso “collo di bottiglia” tra CPU e Memoria centrale) e il limite tecnologico.

Tralasciando tutti gli aspetti tecnici della Memoria Cache e prima di entrare nello specifico, è importante non confondere il tipo di cache più conosciuto, cioè la cache dei programmi (famosa per il “cancella la cache di Chrome” quando questo crea qualche problema) che è un a porzione di memoria di massa che il Sistema Operativo concede ai programmi per immagazzinare alcuni dati.

Innanzi tutto, bisogna sapere che innanzi tutto è una memoria non molto grande: la perfezione sarebbe una memoria sempre più vicina alla capacità della memoria centrale, ma al momento, per via dei costi e della miniaturizzazione, questo è pressoché impossibile, “limitando” la capacità della memoria cache a pochi MB.

Il compito, come detto, è quello di interagire tra la memoria centrale e la CPU nel più breve tempo possibile e questo non è facile, perché la velocità di un sistema complesso è determinata dalla velocità del componente più lento (in questo caso la RAM).

Come è possibile immaginare, la memoria cache è una memoria velocissima (non quanto i registri, ma ci avviciniamo), ma più diventa grande più la velocità diminuisce, sebbene maggiore sia la sua utilità. Per questo, esistono vari livelli di cache, al momento tre.

  • Cache di primo livello, Cache L1.
    Si trova all’interno del processore (cache on-chip), la sua capacitò è di qualche decina di KB ed è la memoria cache più veloce e quella più “importante”;
  • Cache di secondo livello, Cache L2.
    Nel caso in cui sia l’ultimo livello (cosa sempre più rara), la cache di secondo livello si trova all’esterno del processore (anche se è un ipotesi comunque rara, anche in mancanza della L3), collegata a quest’ultimo tramite un bus esterno velocissimo. La sua capacità è all’ordine di pochissimi MB.
    Adesso la Cache L2 lavora in sinergia con la L1, raddoppiandone almeno la capacità, rendendo quindi maggiore la resa dell’interazione;
  • Cache di terzo livello, Cache L3.
    La cache di terzo livello è la cache più lenta, ma quella con una maggior capienza (teoricamente può arrivare a 256MB). Se presente, la cache di secondo livello diventa cache on-chip. La cache più capiente mai commercializzata al pubblico, fino all’arrivo degli Intel Xeon, è stata inserita nella gamma di processori Itanium 2, che arrivava fino a 9MB.

L’evoluzione della cache, oltre che nella capacità, risiede anche nell’indipendenza dalla suddivisone dei core, in quanto inizialmente, una CPU-Dual, con una cache da 2MB poteva assegnare massimo 1MB a core, mentre adesso se ad un core servisse l’80% della cache disponibile, la CPU potrà assegnarglielo, entrando quindi nell’epoca della SmartCache.

Ma quindi basta avere una memoria cache capiente per avere prestazioni ottimali? Si nella maggior parte dei casi, ma non in tutti, infatti la resa dipende anche dalla frequenza del processore: nel caso di alcuni Core2Duo, infatti, con una cache elevata ma con una frequenza molto bassa, si vennero a creare dei rallentamenti generali, mentre poca cache e frequenza elevata portano ad un collo di bottiglia abbastanza importante

Una cache ottimale, ad oggi, potrebbe essere una cache da 4mb, sebbene la maggior parte dei processori per notebook a risparsio di energia (i famosi ix-xxxxu) integrino cache da 3MB.

Scheda video: la svolta

Nel 2006 AMD presentò le sue prime APU, in breve delle CPU in cui viene integrata una GPU (Scheda video) di modesta qualità, ma in grado di rendere opzionale una GPU esterna, da quel momento la storia è cambiata.
Dal 2010 in poi, anche Intel si butta a capofitto sulle GPU integrate, svoltando grazie alla linea HD Graphics, che prende le redini della famiglia GMA.

Innanzi tutto bisogna capire l’utilità di una scheda video integrata, e cioè quella di non rendere necessario l’acquisto di una GPU dedicata, cosa obbligatoria fino a qualche anno fa anche solo per disegnare lineette su paint o aprire il blocco note, semplicemente perché la CPU non era in grado di integrare un chip grafico.

Ma, come abbiamo già detto, i tempi cambiano e la miniaturizzazione ha reso possibili cose incredibili: un Intel Pentium G4560, processore nuovissimo da 60 euro (!!!) integra una Intel HD610 con una frequenza minima da 350MHZ fino ad arrivare ad 1.05GHz che supporta il 4K e che permette di giocare a tantissimi giochi AAA di qualche anno fa e a giochi non molto esosi anche odierni, magari con dettagli al minimo.

Ovviamente per un gaming spinto, utilizzare solo la GPU integrata non è consigliato (né adatto), ma oramai non c’è più bisogno di acquistare obbligatoriamente una GPU dedicata (e questo i produttori lo stanno capendo, immettendo sul mercato sempre più GPU esterne scrause con qualche caratteristica wow per i neofiti).

Questa innovazione è importante, soprattutto, per i notebook: abbiamo parlato del TDP ed è ovvio che, in un ambiente così ristretto qual è la scocca di un portatile, è importante avere temperature più basse e più spazio per dissipare il calore.

Bene, per i notebook, a meno che non si voglia giocare in maniera spinta (ma qui bisognerebbe aprire un discorso a parte) o fare editing importante, meglio un sistema con sola GPU integrata, che se la cava bene in molte circostanze, consuma meno e non crea problemi che, in molti casi, una GPU esterna crea.

La frequenza

Cominciamo, ora, a parlare di cose più congeniali e di ciò che molti utenti pensano sia strettamente indispensabile.

La frequenza è il numero delle operazioni al secondo che un componente può fare (quindi la sua velocità di calcolo) e si indica in MHz (ultimamente solo per le schede video, soprattutto quelle integrate) e GHz (per tutti i moderni processori e schede video dedicate).

In generale, soprattutto nel gaming, più è alta la frequenza, più le prestazioni sono migliori, ma è un discorso abbastanza superficiale. Maggior frequenza non significa maggiori prestazioni, per unaq corretta comparazione bisognerebbe confrontare due processori della stessa architettura, perché sebbene un I7-940 da 2,9GHz (2008) abbia una frequenza minore di un Pentium 4 Prescott (almeno 3.1), il primo vince e stravince in tutto.

Ricordiamo, poi, che la frequenza va di pari passo alla cache, come detto prima.

I moderni processori Intel integrano una tecnologia chiamata TurboBoost che, in caso di necessità, aumenterà fino ad una soglia massima, la velocità di clock in modo automatico, per poi ritornare alle frequenze stock. Infatti, sempre grazie all’avanzamento tecnologico, le CPU sono diventate sempre più “intelligenti” e sanno quando aumentare o diminuire lo sforzo.

Bisogna poi considerare una cosa: maggiore sarà la frequenza, più alto sarà il TDP e quindi più alte saranno le temperature, soprattutto nei portatili.
I moderni processori variano, frequenza stock, dai 1.8 dei processori Pentium di ultima generazione (ancor più bassa può essere quella di un Intel Atom o un M3 che, via via, si abbassa automaticamente) ai 3.8 dei top di gamma Intel e AMD “sbloccati” che, per forza di cose, avranno temperature più alte e avranno bisogno di un sistema di dissipazione per tenerli a bada.

Se questo è un problema risolvibile nei sistemi desktop, nei notebook (o, peggio ancora, negli ultrabook) è un problema di non poco conto, perché aggiungere un sistema di dissipazione può rivelarsi complicato o, nella maggior parte dei casi, impossibile.

Per questo può rivelarsi fondamentale abbassare la frequenza dei processori sui notebook, sebbene questi siano stati congegnati per reggere temperature altissime, fino ai 100/105 gradi centigradi.

Multi-core

Come detto all’inizio, la CPU è formata fondamentalmente da due parti, il Package e il Core, che è il nucleo operativo del processore.

Ad un certo punto della storia, parliamo più o meno del 2005, le due maggiori case produttrici non sono più riuscite ad aumentare la velocità di clock, infatti al momento c’è un limite di progettazione che non si riesce ad abbataere (almeno in ambito consumer) e cioè il limite dei 5GHz (che si riescono a raggiungere con un overclock spinto, solo con determinati processori), per questo si decise di puntare sui processori multi-core, processori che faranno la storia e che divideranno in maniera decisa l’utenza.

Per prima cosa, i Core sono CPU vere e proprie e grazie alla tecnologia multi core è possibile raggiungere prestazioni elevate: in linea di principio verrebbe da dire che un quad-core sia meglio di un dual-core, ma non è sempre così. Anche per quanto riguarda il multi-core, è molto importante la quantità e la qualità della cache.

La differenza, in questo caso, la fa il software, che non abbiamo mai nominato fino ad ora, ma che è effettivamente ciò che gira sulla macchina e che sfrutta i suoi circuiti.

Se un software non è ottimizzato per il multi-core (ormai raro), questo non girerà ottimamente su una CPU multi-core, quindi praticamente se un programma è basato sul calcolo multi-core, questo andrà ottimamente su tutti i processori odierni. Ciò non vuol dire che quel programma non lavorerà sul mono-core, ma le prestazioni saranno minori (in game, invece, tutto cambia se parliamo di giochi AAA).

Fosse così semplice il discorso, non ci sarebbero tutti i dubbi che attanagliano gli utenti, perché la differenza non la fanno solo i core e la velocità di clock, ma l’approccio del processore e dell’architettura che gli conferisce l’azienda produttrice e ci sono due esempi lampanti, AMD per il settore computer e Mediatek per il settore mobile puntano molto sul “più core meglio è”, mentre Intel e Snapdragon per gli stessi settori utilizzano un approccio differente.

In sintesi (molta sintesi), Intel predilige ottimizzare il lavoro sul singolo core, mentre AMD punta molto sul lavoro in simbiosi tra i vari core, e questo approccio rende differente anche la resa finale.

Inoltre, Intel grazie alla tecnologia Hyper-Threading,  ha portato per la prima volta nelle varianti consumer la possibilità di utilizzare un  processore con x core (in principio era 1 core) sfruttando però la potenza di x core logici (ovviamente x fisici e x logici sono lo stesso numero): avremo così, per esempio, un i7 con 4 core fisici affiancati da 4 core logici grazie alla tecnologia Hyper-threading.

Le sigle

Core2Duo, Core2Quad, Atom, Pentium, Xeon,  Cherry Trail, Core i3, i5, i7, Core M e chi più ne ha più ne metta, siate onesti: quando avete sfogliato il volantino del megastore vicino casa non ci avete capito più niente.

Questo accade perché per ogni tipo di PC, in base all’utilizzo che bisogna farne, esistono vari tipi di processori. In questo caso parleremo solo dei processori Intel, non per odio verso AMD ma per far capire bene come funziona con esempi che, in molti, conoscono e possono capire in maniera più semplice.

Le sigle sono semplicemente i nomi che Intel ha deciso di assegnare alle proprie famiglie di processori e le differenze e le varie caratteristiche saranno spiegate in un articolo che uscirà a breve.

Importante è però capire che le cifre che troviamo nei Core i3, i5, i7, m3, m5 e m7 non sono le cifre di core effettivamente presenti nei processori e che ogni molti processori hanno una sigla finale che ha un significato molto importante: ad esempio in ambito portatile la sigla finale U sta a significare che quello è un processore a risparmio energetico, mentre HQ che quello sarà un processore ad alte prestazioni, mentre K in ambito desktop sta a significare che quello sarà un processore con il moltiplicatore sbloccato.

Il socket

Il computer, in sé, non è composto solo dalla CPU ma anche dalla scheda madre che, effettivamente, coordina tutto il funzionamento della macchina (se tutti i calcoli non risiedessero nella CPU, la scheda madre sarebbe il vero cervello del pc). Scheda madre che, però, ha diverse caratteristiche: tra queste c’è il socket che è la parte fondamentale della cpu, dove risiedono tutti i contatti elettrici che servono ad interagire con la CPU.

Non parliamo dei tecnicismi, non finiremmo più, ma parliamo dell’importanza del socket, in quanto una CPU su un socket sbagliato, ad esempio, 1366 non andrà mai in un socket 2011, ed è anche per questo che molti processori nel mercato dell’usato, molto potenti e performanti si trovino ad esempio a 10 o 20 euro, in quanto è complicatissimo trovare, oggi, una scheda madre compatibile (se non a prezzi elevati).

 

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

w

Connessione a %s...

Create a website or blog at WordPress.com

Su ↑

%d blogger hanno fatto clic su Mi Piace per questo: