Nozioni di base sulla CPU: cosa sono i core, l'hyper-threading e le CPU multiple?
Pubblicato: 2023-03-19L'unità di elaborazione centrale (CPU) del tuo computer svolge il lavoro computazionale, in pratica eseguendo i programmi. Ma le moderne CPU offrono funzionalità come più core e hyper-threading. Alcuni PC utilizzano anche più CPU. Spiegheremo le differenze e come funzionano.
Cosa sono l'Hyper-Threading e il Multithreading simultaneo?
Cosa sono i core della CPU?
Tutte le configurazioni della CPU multi-core sono uguali?
Che dire di più CPU?
Cosa sono l'Hyper-Threading e il Multithreading simultaneo?
Il multithreading simultaneo (chiamato Hyper-Threading da Intel) consente a una singola CPU di eseguire più attività contemporaneamente anziché in sequenza, il che migliora le prestazioni nella maggior parte delle situazioni.
L'hyper-threading è stato il primo tentativo di Intel di portare il calcolo parallelo sui PC consumer nel 2002. I Pentium 4 del giorno presentavano solo un singolo core della CPU, quindi poteva eseguire solo un'attività alla volta, anche se fosse in grado di passare da una all'altra compiti abbastanza velocemente da sembrare multitasking. L'Hyper-Threading, chiamato multithreading simultaneo (SMT) su AMD e altri processori non Intel, ha tentato di rimediare.
Nota: a rigor di termini, solo i processori Intel hanno l'hyper-threading, tuttavia, il termine è talvolta usato colloquialmente per riferirsi a qualsiasi tipo di multithreading simultaneo.
Un singolo core della CPU fisica con hyper-threading o multithreading simultaneo appare come due CPU logiche per un sistema operativo. La CPU è ancora una singola CPU, quindi è un po' un imbroglio. Mentre il sistema operativo vede due CPU per ogni core, l'hardware effettivo della CPU ha un solo set di risorse di esecuzione per ogni core. La CPU finge di avere più core di quanti ne abbia e utilizza la propria logica per accelerare l'esecuzione del programma. In altre parole, il sistema operativo viene indotto a vedere due CPU per ogni vero core della CPU.
L'hyper-threading consente ai due core logici della CPU di condividere le risorse di esecuzione fisica. Questo può accelerare un po' le cose: se una CPU virtuale è bloccata e in attesa, l'altra CPU virtuale può prendere in prestito le sue risorse di esecuzione. L'hyper-threading può accelerare il tuo sistema, ma non è neanche lontanamente buono come avere core aggiuntivi effettivi.
Per fortuna, l'hyper-threading ora è solo un bonus. Mentre i processori consumer originali con hyper-threading avevano solo un singolo core mascherato da più core, le moderne CPU ora hanno sia più core che hyper-threading o tecnologia SMT. La tua CPU hexa-core con hyper-threading appare come 12 core nel tuo sistema operativo, mentre la tua CPU octa-core con hyper-threading appare come 16 core. L'hyper-threading non sostituisce core aggiuntivi, ma una CPU dual-core con hyper-threading dovrebbe funzionare meglio di una CPU dual-core senza hyper-threading.
Cosa sono i core della CPU?
In origine, le CPU avevano un singolo core. Ciò significava che la CPU fisica aveva una singola unità di elaborazione centrale. Per aumentare le prestazioni, i produttori hanno aggiunto ulteriori "core" o unità di elaborazione centrale. Una CPU dual-core ha due unità di elaborazione centrale, quindi appare al sistema operativo come due CPU. Una CPU con due core, ad esempio, potrebbe eseguire due processi diversi contemporaneamente. Questo velocizza il tuo sistema perché il tuo computer può fare più cose contemporaneamente.
A differenza dell'hyper-threading, qui non ci sono trucchi: una CPU dual-core ha letteralmente due unità di elaborazione centrale sul chip della CPU. Una CPU quad-core ha quattro unità di elaborazione centrale, una CPU octa-core ha otto unità di elaborazione centrale e così via.
Questo aiuta a migliorare notevolmente le prestazioni mantenendo l'unità CPU fisica abbastanza piccola da stare in un singolo socket. Deve esserci solo un singolo socket CPU con una singola unità CPU inserita al suo interno, non quattro diversi socket CPU con quattro diverse CPU, ognuno dei quali necessita della propria alimentazione, raffreddamento e altro hardware. C'è meno latenza perché i core possono comunicare più velocemente, dato che sono tutti sullo stesso chip.
Il Task Manager di Windows lo mostra abbastanza bene. Qui, ad esempio, puoi vedere che questo sistema ha una vera CPU (socket) e 8 core. Il multithreading simultaneo fa sembrare ogni core al sistema operativo come due CPU, quindi mostra 16 processori logici.
Tutte le configurazioni della CPU multi-core sono uguali?
No, non tutte le configurazioni della CPU multi-core sono uguali. Ci sono due distinte filosofie di progettazione che incontrerai guardando le CPU multi-core.
Un tipo di configurazione, comune da anni nei PC consumer, utilizza più core identici. In queste configurazioni, se si dispone di un sistema octa-core, tutti e otto questi processori sono CPU ad alte prestazioni e sono tutti ottimizzati allo stesso modo.
L'altro utilizza una combinazione di core diversi (a volte chiamata architettura core eterogenea). In genere, queste configurazioni utilizzeranno due tipi distinti: core di prestazioni e core di efficienza.
Lo schema di denominazione preciso varia leggermente tra le aziende e le applicazioni, ma l'idea di base è la stessa. I nuclei di efficienza sono riservati alle attività in background e a bassa richiesta. Questi core consumano meno energia. I core delle prestazioni sono l'esatto opposto. Consumano molta più energia ma offrono prestazioni molto migliori in attività impegnative, come i giochi. La combinazione si traduce in prestazioni quando ne hai bisogno, ma in un minore consumo di energia in background.
CORRELATO: Che cos'è l'undervoltaggio di una GPU o di una CPU e quando dovresti farlo?
Questa configurazione multi-core eterogenea (chiamata big.LITTLE da ARM) è diventata popolare tra i cellulari e altri dispositivi mobili grazie al risparmio energetico che offriva. Quando hai bisogno che il tuo telefono duri tutto il giorno, non ha senso scaricare inutilmente la batteria facendo funzionare sempre un core ad alta potenza. Intel ha anche introdotto l'idea nelle CPU desktop mainstream, a partire dai suoi processori Alder Lake.
Che dire di più CPU?
La maggior parte dei computer ha una sola CPU. Quella singola CPU può avere più core o tecnologia hyper-threading, ma è ancora solo un'unità CPU fisica inserita in un singolo socket CPU sulla scheda madre.
CORRELATO: Perché non è possibile utilizzare la velocità di clock della CPU per confrontare le prestazioni del computer
Prima che arrivassero le CPU hyper-threading e multi-core, le persone tentavano di aggiungere ulteriore potenza di elaborazione ai computer aggiungendo ulteriori CPU. Ciò richiede una scheda madre con più socket CPU. La scheda madre necessita anche di hardware aggiuntivo per collegare i socket della CPU alla RAM e ad altre risorse. C'è molto sovraccarico in questo tipo di configurazione. C'è una latenza aggiuntiva se le CPU devono comunicare tra loro, i sistemi con più CPU consumano più energia e la scheda madre ha bisogno di più socket e hardware.
I sistemi con più CPU non sono molto comuni oggi tra i PC degli utenti domestici. Anche un desktop da gioco ad alta potenza con più schede grafiche avrà generalmente una sola CPU. Troverai più sistemi CPU tra supercomputer, server, alcune workstation e sistemi simili di fascia alta che richiedono tutta la potenza che possono ottenere.
Più CPU o core ha un computer, più cose può fare contemporaneamente, contribuendo a migliorare le prestazioni nella maggior parte delle attività. La maggior parte dei computer ora dispone di CPU con più core: l'opzione più efficiente di cui abbiamo discusso. Troverai anche CPU con più core su smartphone e tablet moderni.
La velocità di clock per una CPU e il suo IPC (istruzioni per ciclo) erano sufficienti per confrontare le prestazioni. Le cose non sono più così semplici. Una CPU che offre più core e hyper-threading può funzionare significativamente meglio di una CPU della stessa velocità che non dispone di hyper-threading. E i PC con più CPU possono avere un vantaggio ancora maggiore. Tutte queste funzionalità sono progettate per consentire ai PC di eseguire più facilmente più processi contemporaneamente, aumentando le prestazioni durante il multitasking o sotto le richieste di app potenti come codificatori video e giochi moderni.
Ovviamente, un numero di core più elevato non è poi così importante in ogni situazione. I sistemi operativi moderni sono abbastanza intelligenti nel suddividere le loro attività tra più core, ma non tutti i programmi sono ottimizzati così bene. In molti casi (soprattutto nei giochi) le prestazioni sono principalmente limitate dalla velocità massima di un singolo core piuttosto che dal numero totale di core di cui disponi. Quindi non affrettarti ad acquistare una CPU Threadripper a 64 core pensando che ti farà guadagnare un miliardo di FPS in Call of Duty - non lo farà.