Le unità di elaborazione centrale (CPU) sono il cervello dei nostri computer. Elaborano tutto ciò che facciamo quotidianamente, dall'apertura di un'applicazione alla visione di un film. Ma cos'è esattamente una CPU? Come funziona? E qual è la differenza tra le CPU e le vCPU sempre più popolari?
Capire il cervello dei computer
I primi computer elettronici furono creati all'inizio del 1800, secondo la guida completa alla storia pubblicato da G2. Tuttavia, questi computer erano grandi e costosi e potevano essere utilizzati solo da matematici e scienziati qualificati.
Charles Babbage è accreditato per aver inventato la prima macchina informatica, il Difference Engine, che potrebbe essere programmato per eseguire qualsiasi calcolo che potrebbe essere eseguito manualmente. Tuttavia, il progetto Difference Engine non è mai stato completato per mancanza di fondi, secondo il Computer History Museum.
Nel 1937, Babbage menzionò per la prima volta il motore analitico, che sarebbe diventato il primo computer meccanico multiuso al mondo. "Il motore analitico incorporava tutti gli elementi di un computer moderno: un'unità logica aritmetica, flusso di controllo sotto forma di ramificazioni e loop condizionali e memoria integrata" (
Note elettroniche).Un componente chiave dei computer odierni è la CPU o l'unità di elaborazione centrale. La CPU è responsabile dell'esecuzione delle istruzioni fornite da software come un sistema operativo o un'applicazione. In parole povere, puoi pensare alla CPU come al cervello del tuo computer. La CPU è composta da due parti principali: l'unità di controllo e l'unità logica aritmetica (ALU). Se queste abbreviazioni ti confondono, consulta il ns panoramica delle differenze tra APU, CPU e GPU.
L'unità di controllo ha il compito di recuperare le istruzioni dalla memoria, decodificarle e quindi inviarle all'unità logica aritmetica per l'esecuzione. L'ALU esegue operazioni aritmetiche e logiche sui dati memorizzati nei registri, che sono unità di memoria interna all'interno della CPU.
Moderno Le CPU contengono anche una cache, che è una piccola quantità di memoria ad alta velocità che memorizza istruzioni e dati utilizzati di frequente. Le cache sono suddivise in livelli; La cache di livello 1 (L1) è incorporata nella CPU stessa, la cache di livello 2 (L2) si trova su un chip separato vicino a la CPU e la cache di livello 3 (L3) si trovano più lontano dalla CPU sul proprio chip o anche sul proprio circuito asse.
CPU vs. vCPU
Con l'ascesa dei servizi cloud è arrivata l'avvento dell'unità di elaborazione centrale virtuale, o vCPU in breve. TechTarget definisce vCPU come "un'unità di elaborazione centrale fisica (CPU) assegnata a una macchina virtuale (VM)."
Le macchine virtuali sono fondamentalmente sistemi operativi autonomi che vengono eseguiti all'interno di un altro sistema operativo come se fossero applicazioni. Le macchine virtuali vengono utilizzate per una varietà di scopi, come testare nuovi software in un ambiente sicuro, eseguire più sistemi operativi (ad es. Windows e Linux) sullo stesso computer o il consolidamento di più server fisici in un unico server per risparmiare spazio e ridurre costi.
Quindi, una vCPU è un'implementazione software di una CPU; non esiste fisicamente all'interno del tuo computer come fa una vera CPU. L'hypervisor, che è il software che crea e gestisce le VM, assegna le vCPU alla macchina virtuale. Ogni vCPU è vista dal sistema operativo all'interno della VM come un vero e proprio core della CPU. Vedi il nostro spiegazione degli hypervisor per saperne di più.
Tuttavia, poiché le vCPU sono basate su software, non sono efficienti come le vere CPU. Pertanto, è importante specificare quanti core ha il tuo processore quando acquisti un computer (ad esempio, "quad-core" significa quattro core). La stessa regola si applica quando si sceglie un server privato virtuale (VPS) o un piano di hosting di server dedicato.
La principale differenza tra CPU e vCPU è che le CPU sono basate su hardware mentre le vCPU sono basate su software. Ciò significa che le CPU esistono fisicamente all'interno del tuo computer mentre le vCPU no; vengono invece creati dagli hypervisor quando necessario. A causa di questa differenza nell'implementazione, le CPU sono molto più efficienti delle vCPU; non hanno il sovraccarico associato all'esecuzione del software.
Dall'inizio degli anni 2000, le vCPU sono diventate sempre più popolari perché sono più economiche e più facili da assegnare rispetto alle CPU fisiche; tuttavia, se stai cercando prestazioni, è meglio utilizzare un computer con più core della CPU poiché ogni core può elaborare le istruzioni in modo indipendente.
Core vs. Fili
Una CPU può avere uno o più core, che è l'unità di elaborazione che esegue le attività in un momento specifico. Il core manterrà l'ordine di esecuzione delle attività, i registri e la cache (se applicabile) ed eseguirà le operazioni tramite l'ALU. La CPU controlla i core, ma il core esegue ogni processo software o thread pianificato dal sistema operativo. Un thread è una sequenza indipendente di istruzioni che possono essere elaborate da una CPU.
Più thread possono esistere all'interno dello stesso processo e condividere lo stesso spazio di memoria. Ciò consente loro di comunicare tra loro più facilmente che se fossero in esecuzione all'interno di processi separati. I thread vengono spesso utilizzati per migliorare le prestazioni delle applicazioni multithread consentendo a diverse parti del programma di essere eseguite contemporaneamente su diversi core o processori.
Il termine "filo" è stato usato nella terminologia informatica per molti anni; tuttavia, è stato solo all'inizio degli anni 2000 che il supporto a livello hardware per i thread è stato introdotto nei processori. Ciò ha consentito di eseguire più thread contemporaneamente su core separati. In precedenza, era possibile eseguire un solo thread alla volta su un singolo core, indipendentemente dal numero di core presenti nel processore. I processori multicore sono ormai comuni e la maggior parte dei sistemi operativi fornisce un certo livello di supporto per l'esecuzione di programmi come thread multipli.
Riepilogo dei problemi principali
Per riassumere, le CPU sono il cervello basato sull'hardware dei nostri computer, mentre la loro controparte virtuale, le vCPU, sono basate su software e create da hypervisor per funzionare all'interno di macchine virtuali. I core sono le unità di elaborazione basate su hardware all'interno di una CPU, mentre i thread sono le istruzioni basate su software che possono essere elaborate da una CPU.
I thread possono essere eseguiti contemporaneamente su core separati, il che consente a diverse parti del programma di essere eseguite contemporaneamente. Ciò può migliorare le prestazioni hardware poiché è possibile elaborare più attività contemporaneamente anziché in sequenza.
Ora che hai compreso la differenza tra CPU, vCPU, core e thread, puoi prendere una decisione informata quando scegli un computer o un server. Se stai cercando prestazioni, è meglio scegliere un computer con più core CPU poiché ogni core può elaborare le istruzioni in modo indipendente. Tuttavia, se stai cercando una soluzione conveniente, le vCPU potrebbero essere la strada da percorrere.