Un processore dual core per un computer è un’unità di elaborazione centrale (CPU) che ha due core separati sullo stesso die, ciascuno con la propria cache. Sono essenzialmente due microprocessori in uno. Questo tipo di CPU è ampiamente disponibile da molti produttori. Sono stati sviluppati anche altri tipi di processori multi-core, inclusi processori quad-core con quattro core ciascuno, processori hexa-core con sei, processori octa-core con otto e processori many-core con un numero ancora maggiore di core.
In un processore single-core o tradizionale, la CPU riceve stringhe di istruzioni che deve ordinare, eseguire, quindi memorizzare selettivamente nella sua cache per un rapido recupero. Quando sono richiesti dati al di fuori della cache, vengono recuperati tramite il bus di sistema dalla memoria ad accesso casuale (RAM) o dai dispositivi di archiviazione. L’accesso a questi rallenta le prestazioni alla velocità massima consentita dal bus, dalla RAM o dal dispositivo di archiviazione, che è molto più lenta della velocità della CPU.
Questa situazione è aggravata quando l’utente del computer è multitasking. In questo caso, il processore deve passare avanti e indietro tra due o più serie di flussi di dati e programmi. Le risorse della CPU sono esaurite e le prestazioni ne risentono.
In un processore dual core, ogni core gestisce contemporaneamente le stringhe di dati in ingresso per migliorare l’efficienza. Proprio come due teste sono meglio di una, così lo sono due mani. Quando un core è in esecuzione, l’altro può accedere al bus di sistema o eseguire il proprio codice.
Per utilizzare un processore dual core, il sistema operativo deve essere in grado di riconoscere il multi-threading e il software deve avere la tecnologia multi-threading simultanea (SMT) scritta nel codice. SMT consente il multi-threading parallelo, in cui ai core vengono fornite istruzioni multi-thread in parallelo. Senza SMT, il software riconoscerà solo un core. SMT viene utilizzato anche con i sistemi multiprocessore comuni ai server.
Un processore dual core è diverso da un sistema multiprocessore. In quest’ultimo sono presenti due CPU separate con risorse proprie. Nel primo, le risorse sono condivise e i core risiedono sullo stesso chip. Un sistema multiprocessore è più veloce di un sistema con un processore dual core e un sistema dual core è più veloce di un sistema single core, quando tutto il resto è uguale.
Un vantaggio interessante dei processori dual core è che non richiedono nuove schede madri, ma possono essere utilizzati in schede esistenti che dispongono dei socket corretti. Per l’utente medio, la differenza nelle prestazioni sarà più evidente durante il multi-tasking, fino a quando più software non riconoscerà SMT. I server che eseguono più processori dual core vedranno un apprezzabile aumento delle prestazioni.