Sistemi

CPU, Core e Thread: cosa significano e quali sono le differenze

Categoria Sistemi
Data 26 agosto 2026
Autore Simone Gardella
CPU, Core e Thread: cosa significano e quali sono le differenze

CPU, Core e Thread: cosa significano e quali sono le differenze

Quando si leggono le caratteristiche tecniche di un processore è normale incontrare espressioni come 8 core, 16 thread, 12 core, 24 thread oppure processore a 6 core. Questi numeri vengono spesso interpretati come se indicassero la stessa cosa, ma descrivono in realtà livelli differenti dell'architettura della CPU.

Per comprenderne il significato bisogna distinguere tre concetti: CPU fisica, core e thread. La CPU è il processore vero e proprio installato nel computer; i core sono unità di elaborazione fisicamente presenti al suo interno; i thread indicati nelle specifiche commerciali rappresentano invece, nella maggior parte dei casi, i processori logici che il sistema operativo può utilizzare.

Schema di una CPU fisica con quattro core e otto thread logici

Che cos'è una CPU

La CPU – Central Processing Unit è il processore che esegue le istruzioni dei programmi. In un normale computer desktop o notebook troviamo generalmente una singola CPU fisica installata sulla scheda madre, mentre workstation e server possono utilizzare anche più processori fisici.

Quando diciamo, ad esempio, che un computer possiede un processore Intel Core, AMD Ryzen oppure AMD EPYC, stiamo parlando della CPU come componente fisico.

All'interno di quella CPU possono però essere presenti numerose unità di elaborazione indipendenti: i core.

Che cos'è un core

Un core è una vera unità di elaborazione implementata fisicamente nel processore. Possiede le strutture necessarie per eseguire istruzioni e può lavorare, entro i limiti dell'architettura, indipendentemente dagli altri core presenti nella CPU.

Storicamente i processori disponevano di un solo core. Per aumentare le prestazioni era quindi necessario principalmente aumentare la frequenza di clock.

Con l'aumento dei consumi e della complessità, l'industria ha progressivamente adottato un'altra strategia: inserire più core nella stessa CPU.

Un processore quad-core contiene quindi quattro unità di elaborazione fisiche. Un processore a 16 core ne contiene sedici.

Il concetto fondamentale

Un core è hardware reale. Non è semplicemente un numero mostrato dal sistema operativo: rappresenta una vera unità di elaborazione presente nel silicio del processore.

Che cos'è un thread

Il termine thread può creare confusione perché viene utilizzato in due contesti differenti.

Nel software, un thread è un flusso di esecuzione appartenente a un processo. Un programma può avere uno oppure molti thread contemporaneamente.

Quando invece nelle specifiche di una CPU leggiamo:

8 Core / 16 Thread

il termine thread indica normalmente il numero di thread hardware, cioè il numero di processori logici che la CPU espone al sistema operativo.

Questa distinzione è importante: un thread hardware non è un nuovo core fisico.

Differenza tra core fisico e thread logico

SMT e Hyper-Threading

La tecnologia che consente a un singolo core di presentarsi al sistema operativo come più processori logici viene generalmente chiamata SMT – Simultaneous Multithreading.

Intel ha storicamente commercializzato una propria implementazione con il nome Hyper-Threading.

Con SMT, un core può mantenere lo stato di più flussi di esecuzione contemporaneamente e utilizzare meglio le proprie unità interne quando uno dei thread non riesce a sfruttarle completamente.

Un processore con:

6 core
12 thread

possiede quindi sei core fisici, ma il sistema operativo può vedere dodici processori logici.

Perché due thread non equivalgono a due core

Questo è probabilmente il concetto più importante.

Se un core supporta due thread hardware, i due thread condividono molte delle risorse fisiche del core. Non abbiamo quindi improvvisamente due core completi.

Possono essere condivise, a seconda dell'architettura, risorse come:

  • unità aritmetiche;
  • unità di esecuzione;
  • cache;
  • pipeline;
  • larghezza di banda interna;
  • risorse per il caricamento e la memorizzazione dei dati.

L'SMT cerca quindi di utilizzare meglio un core già esistente, non di duplicarlo.

8 core / 16 thread non significa avere 16 core.

Significa avere 8 core fisici capaci di eseguire complessivamente fino a 16 contesti hardware contemporaneamente.

Perché allora i thread aumentano le prestazioni?

Un core raramente utilizza ogni propria unità di esecuzione in ogni ciclo di clock.

Può accadere, ad esempio, che un thread debba attendere un dato proveniente dalla cache o dalla memoria RAM. Durante quell'attesa alcune risorse del core potrebbero rimanere inutilizzate.

SMT permette al processore di utilizzare quelle risorse per eseguire istruzioni appartenenti a un altro thread.

Il risultato è un incremento dell'efficienza complessiva.

Tuttavia il miglioramento dipende enormemente dal tipo di carico. Non bisogna quindi aspettarsi che:

8 core / 16 thread = prestazioni doppie di 8 core / 8 thread

In alcuni carichi il vantaggio può essere significativo, in altri molto più modesto.

Un esempio pratico

Immaginiamo una CPU con quattro core fisici e SMT a due vie:

CPU fisiche:        1
Core fisici:        4
Thread hardware:    8
Processori logici:  8

Windows o Linux vedranno quindi otto unità sulle quali programmare l'esecuzione dei thread software.

Fisicamente, però, il chip continua a possedere quattro core.

Thread hardware e thread software

È utile distinguere definitivamente i due significati della parola thread.

Tipo Significato
Thread software Flusso di esecuzione creato da un programma o dal sistema operativo.
Thread hardware Contesto di esecuzione che la CPU presenta al sistema operativo come processore logico.

Un computer può quindi avere migliaia di thread software attivi anche se dispone, per esempio, soltanto di 16 thread hardware.

È il sistema operativo a decidere continuamente quali thread software devono essere eseguiti sui processori logici disponibili.

Il ruolo dello scheduler

Il componente del sistema operativo che distribuisce il lavoro è chiamato scheduler.

Lo scheduler assegna i thread software ai processori logici disponibili e li sposta continuamente tra gli stati di esecuzione, attesa e sospensione.

Se un sistema dispone di 16 processori logici, ciò non significa quindi che possa avere soltanto 16 programmi attivi. Significa che, in un determinato istante, la CPU dispone di 16 contesti hardware sui quali lo scheduler può distribuire il lavoro.

I thread in eccesso vengono alternati molto rapidamente attraverso il meccanismo di scheduling.

Core e parallelismo reale

Aggiungere core permette di aumentare il parallelismo fisico.

Con quattro core indipendenti è possibile eseguire realmente più sequenze di istruzioni contemporaneamente utilizzando unità di calcolo separate.

Questo è uno dei motivi per cui, nei carichi fortemente paralleli, un incremento del numero di core può avere un impatto molto maggiore rispetto al semplice aumento dei thread logici.

Applicazioni che possono beneficiare fortemente di molti core includono, ad esempio, rendering, encoding video, compilazione, calcolo scientifico, virtualizzazione, elaborazione massiva e numerosi processi di analisi dati.

Ma tutti i programmi utilizzano molti core?

No.

Un programma deve essere progettato per suddividere il proprio lavoro in più thread affinché possa sfruttare efficacemente molti core.

Una applicazione essenzialmente single-threaded può avere a disposizione 64 core, ma la parte seriale del suo codice continuerà a essere eseguita principalmente su un solo thread alla volta.

Per questo motivo un processore con molti core non è automaticamente più veloce in ogni applicazione.

La frequenza di clock conta ancora

Il numero di core è soltanto una delle caratteristiche che determinano le prestazioni.

Bisogna considerare anche:

  • frequenza di clock;
  • architettura del core;
  • IPC, cioè istruzioni eseguite per ciclo;
  • dimensioni e struttura delle cache;
  • latenza della memoria;
  • numero di core;
  • SMT;
  • limiti energetici e termici.

Due processori entrambi da 8 core e 16 thread possono quindi avere prestazioni completamente differenti.

CPU ibride: Performance Core ed Efficient Core

Nelle architetture moderne la situazione può diventare ancora più interessante.

Alcuni processori utilizzano core di tipologia differente, per esempio core ad alte prestazioni e core ottimizzati per l'efficienza energetica.

In queste architetture non è sempre vero che ogni core esponga lo stesso numero di thread hardware.

Un processore potrebbe quindi avere, ad esempio, un certo numero di core con SMT e altri core che espongono un solo thread.

Per questo il rapporto:

thread = core × 2

non è una regola universale.

Come Windows mostra core e processori logici

In Windows è possibile osservare queste informazioni dal Task Manager.

Aprendo:

Gestione attività
? Prestazioni
? CPU

vengono visualizzati valori come:

Socket:               1
Core:                 8
Processori logici:   16

In questo caso significa che il computer possiede una CPU fisica, otto core e sedici thread hardware visibili al sistema operativo.

Come verificarlo in Linux

In Linux un comando particolarmente utile è:

lscpu

Tra le informazioni visualizzate possiamo trovare:

CPU(s):                16
Thread(s) per core:     2
Core(s) per socket:     8
Socket:                  1

Da cui possiamo ricavare:

1 socket
×
8 core
×
2 thread per core
=
16 processori logici

Socket, CPU, core e thread

Nei server e nelle workstation è utile aggiungere un ulteriore concetto: il socket.

Il socket è il collegamento fisico sulla scheda madre nel quale viene installato un processore.

Un server dual socket potrebbe quindi avere:

2 CPU fisiche
32 core per CPU
2 thread per core

Totale:
64 core
128 processori logici

In questo caso i 128 thread hardware derivano da due processori fisicamente distinti.

Un confronto semplice

Elemento Che cosa rappresenta
CPU Il processore fisico completo.
Core Una unità di elaborazione fisicamente presente nella CPU.
Thread hardware Un contesto di esecuzione esposto al sistema operativo come processore logico.
Thread software Un flusso di esecuzione appartenente a un programma.

Perché il sistema operativo mostra molti grafici CPU

Quando nel Task Manager vengono visualizzati 16 grafici separati, non significa necessariamente che esistano 16 core fisici.

Windows sta mostrando i processori logici.

Un processore 8 core / 16 thread può quindi mostrare sedici unità separate, anche se nel silicio sono presenti soltanto otto core fisici.

Qual è quindi il numero più importante?

Dipende dal tipo di lavoro.

Il numero di core indica meglio la quantità di risorse fisiche disponibili per il parallelismo, mentre il numero di thread logici indica quanti contesti hardware il sistema operativo può utilizzare contemporaneamente.

Per valutare realmente un processore, però, non è corretto utilizzare nessuno dei due valori isolatamente.

Bisogna considerare l'intera architettura della CPU e soprattutto il tipo di applicazione che dovrà essere eseguita.

Conclusioni

La distinzione tra CPU, core e thread diventa semplice quando si separa chiaramente l'hardware fisico dalla rappresentazione logica.

La CPU è il processore completo.

I core sono vere unità di elaborazione fisicamente presenti all'interno della CPU.

I thread hardware o processori logici permettono invece a un core di gestire più contesti di esecuzione e di utilizzare più efficacemente le proprie risorse interne.

Il concetto da ricordare

Un processore dichiarato come: 8 core / 16 thread

non contiene 16 core. Contiene 8 core fisici e mette a disposizione del sistema operativo 16 processori logici.

I thread aumentano l'efficienza nell'utilizzo dei core, ma due thread logici non equivalgono a due core fisici.
Hai bisogno di approfondire questo tema? Possiamo aiutarti a valutare il caso concreto e le modalità operative più adatte.
Richiedi informazioni

Hai bisogno di una valutazione tecnica?

Descrivi il contesto, i dispositivi coinvolti e l’obiettivo dell’attività. Ti aiuteremo a definire il percorso tecnico più adatto.