Un processore multi-core è un circuito integrato che utilizza due o più singoli processori, o core, per gestire i dati. I nuclei possono essere collegati a un circuito integrato o incorporati in die separate in un pacchetto di chip. Ogni core ha la propria cache e ognuno ha una capacità separata per elaborare i dati.
Il vantaggio di un processore multi-core è l’aumento della velocità. Un tradizionale processore single-core memorizza alcuni dati nella sua cache e, quando sono richiesti dati al di fuori della cache, devono essere recuperati da altri luoghi come la memoria ad accesso casuale (RAM). Quando ciò accade, la velocità del processore rallenta fino alla velocità massima della RAM o di un altro dispositivo di archiviazione. Questa velocità è in genere molto più lenta della velocità massima del processore.
I processori multi-core sono più veloci perché ogni core può gestire il proprio flusso di dati. Mentre i processori multi-core continuano a memorizzare nella cache selettivamente i dati e recuperare i dati non memorizzati nella cache da altre posizioni di archiviazione, il core o i core aggiuntivi possono continuare a eseguire comandi e ricevere informazioni alla normale velocità del processore mentre un altro processore sta recuperando le informazioni necessarie da dispositivi di archiviazione lenti. In questo modo, l’intero sistema non deve rallentare durante il recupero dei dati.
Un processore multi-core è particolarmente prezioso per il multitasking, in cui più di un programma serve ciascuno il proprio set di dati per l’elaborazione. I flussi di dati separati possono essere gestiti da diversi core, aumentando la velocità di elaborazione complessiva. Affinché un singolo programma software possa sfruttare la tecnologia multi-core, deve disporre di una tecnologia multi-threading simultanea (SMT) che gli consenta di inviare set paralleli di istruzioni da utilizzare per più core.
Il primo processore multi-core disponibile in commercio è stato il processore dual-core. Ci sono anche processori multi-core con quattro, sei e otto core. Molte schede madri, tuttavia, non sono in grado di gestire così tanti core. I sistemi multi-core possono essere omogenei, utilizzando tutti i nuclei identici, o eterogenei, utilizzando nuclei non identici.
Sebbene i processori multi-core abbiano lo scopo di aumentare la velocità e le prestazioni complessive, non tutti i programmi sfruttano la tecnologia di elaborazione multi-core. Molti programmi e persino alcuni sistemi operativi non dispongono dell’SMT necessario per utilizzare più di un core di elaborazione. I sistemi operativi che utilizzano l’elaborazione multi-core non sono sempre progettati per massimizzare il potenziale di elaborazione multi-core, quindi la capacità di elaborazione completa spesso non viene realizzata.
Un processore multi-core tende a produrre più calore di un processore single-core, causando problemi di gestione del calore. La quantità di calore prodotta da un processore tende ad aumentare esponenzialmente con ogni core aggiuntivo. Le alte temperature possono causare il surriscaldamento dei processori, creando problemi operativi e rischi per la sicurezza. I produttori di processori hanno dovuto investire molto tempo e tecnologia nella creazione di soluzioni alle sfide termiche presentate dai processori multi-core.