Anonim

Quando i personal computer furono inventati per la prima volta, la loro unità di elaborazione centrale (CPU) era isolata e aveva un solo core del processore. Il processore stesso era il nocciolo; l'idea di avere un processore multi-core era ancora inaudita. Oggi non è affatto raro vedere computer, telefoni e altri dispositivi con più core - anzi, praticamente ogni computer disponibile in commercio di qualsiasi tipo ha più core. Questi core risiedono nella stessa unità di elaborazione centrale, singola o CPU.

Avere più core è un grande vantaggio. Con un solo core, un computer può lavorare solo su un'attività alla volta, dovendo completare un'attività prima di passare a un'altra. Con più core, tuttavia, un computer può lavorare su più attività contemporaneamente, il che è particolarmente utile per coloro che fanno molto multitasking.

Prima di approfondire esattamente come funzionano i processori multi-core, è importante parlare un po 'del retroscena della tecnologia di elaborazione, dopo di che discuteremo di cosa fanno i processori multi-core.

Un po 'di storia

Prima della creazione di processori con più core, persone e aziende come Intel e AMD hanno provato a costruire computer con più CPU. Ciò significava che era necessaria una scheda madre con più di un socket CPU. Non solo era più costoso, a causa dell'hardware fisico necessario per un altro socket della CPU, ma aumentava anche la latenza a causa della maggiore comunicazione che era necessaria per avere luogo tra i due processori. Una scheda madre ha dovuto dividere i dati tra due posizioni completamente separate in un computer anziché semplicemente inviarle tutte al processore. La distanza fisica significa in effetti che un processo è più lento. Mettere questi processi su un chip con più core non solo significa che c'è meno distanza da percorrere, ma significa anche che diversi core possono condividere risorse per svolgere compiti particolarmente pesanti. Ad esempio, i chip Intel Pentium II e Pentium III sono stati entrambi implementati in versioni con due processori su una scheda madre.

Dopo un po ', i processori dovevano essere più potenti, quindi i produttori di computer hanno escogitato il concetto di hyper-threading. Il concetto stesso è nato da Intel ed è stato concepito per la prima volta nel 2002 sui processori server Xeon dell'azienda, e successivamente sui suoi processori desktop Pentium 4. L'hyper-threading è ancora oggi utilizzato nei processori ed è persino la principale differenza tra i chip Intel i5 e i suoi chip i7. Sfrutta fondamentalmente il fatto che ci sono spesso risorse non utilizzate in un processore, in particolare quando le attività non richiedono molta potenza di elaborazione, che potrebbero essere utilizzate per altri programmi. Un processore che utilizza l'hyper-threading si presenta sostanzialmente a un sistema operativo come se avesse due core. Naturalmente, in realtà non ha due core, tuttavia per due programmi che utilizzano la metà della potenza di elaborazione disponibile o meno, potrebbero esserci anche due core a causa del fatto che insieme possono sfruttare tutta la potenza che il processore ha da offrire. L'hyper-threading, tuttavia, sarà leggermente più lento di un processore con due core quando non c'è abbastanza potenza di elaborazione da condividere tra i due programmi usando il core.

Puoi trovare un video approfondito che fornisce una breve e più dettagliata spiegazione dell'hyper-threading qui.

Multi-Processori

Dopo molte sperimentazioni, è stato finalmente possibile costruire CPU con più core. Ciò significava che un singolo processore aveva fondamentalmente più di un'unità di elaborazione. Ad esempio, un processore dual-core ha due unità di elaborazione, un quad-core ne ha quattro e così via.

Quindi perché le aziende hanno sviluppato processori con più core? Bene, la necessità di processori più veloci stava diventando sempre più evidente, tuttavia gli sviluppi nei processori single core stavano rallentando. Dagli anni '80 fino agli anni 2000, gli ingegneri sono stati in grado di aumentare la velocità di elaborazione da diversi megahertz a diversi gigahertz. Aziende come Intel e AMD hanno fatto questo riducendo le dimensioni dei transistor, consentendo così più transistor nella stessa quantità di spazio, migliorando così le prestazioni.

A causa del fatto che la velocità di clock del processore è molto legata a quanti transistor possono adattarsi a un chip, quando la tecnologia di riduzione dei transistor ha iniziato a rallentare, anche lo sviluppo di maggiori velocità del processore ha iniziato a rallentare. Anche se questo non è quando le aziende hanno saputo per la prima volta dei processori multi-core, è quando hanno iniziato a sperimentare processori multi-core per scopi commerciali. Mentre i processori multi-core sono stati sviluppati per la prima volta a metà degli anni '80, sono stati progettati per grandi aziende e non sono stati rivisitati fino a quando la tecnologia single-core ha iniziato a rallentare. Il primo processore multi-core è stato sviluppato da Rockwell International ed era una versione del chip 6501 con due processori 6502 su un chip (maggiori dettagli sono disponibili qui in questa voce di Wikipedia).

Cosa fa un processore multi-core?

Bene, è davvero tutto molto semplice. Avere più core consente di eseguire più operazioni contemporaneamente. Ad esempio, se stai lavorando su e-mail, hai un browser Internet aperto, stai lavorando su un foglio di calcolo Excel e stai ascoltando musica in iTunes, un processore quad-core può lavorare su tutte queste cose contemporaneamente. Oppure, se un utente ha un'attività che deve essere completata immediatamente, può essere suddivisa in attività più piccole e più facili da elaborare.

L'uso di più core non è solo limitato a più programmi. Ad esempio, Google Chrome esegue il rendering di ogni nuova pagina con un processo diverso, il che significa che può sfruttare più core contemporaneamente. Alcuni programmi, tuttavia, sono quelli che vengono chiamati single thread, il che significa che non sono stati scritti per essere in grado di utilizzare più core e come tali non possono farlo. Qui entra in gioco l'hyper-threading, che consente a Chrome di inviare più pagine a due "core logici" su un core effettivo.

Andare di pari passo con processori multi-core e hyper-threading è un concetto chiamato multithreading. Il multithreading è essenzialmente la capacità di un sistema operativo di sfruttare più core dividendo il codice nella sua forma più semplice, o thread, e alimentandolo contemporaneamente a diversi core. Questo è, ovviamente, importante nei processori multi-core e multi-core. Il multi-threading è un po 'più complicato di quanto sembri, poiché richiede ai sistemi operativi di ordinare correttamente il codice in modo che il programma possa continuare a funzionare in modo efficiente.

I sistemi operativi stessi fanno cose simili con processi propri - non si limitano solo alle applicazioni. I processi del sistema operativo sono cose che il sistema operativo fa sempre in background, senza che l'utente lo sappia necessariamente. A causa del fatto che questi processi sono sempre in corso, avere hyper-threading e / o più core può essere molto utile, in quanto libera il processore per poter lavorare su altre cose come ciò che sta accadendo nelle app.

Come funzionano i processori multi-core?

Innanzitutto, la scheda madre e il sistema operativo devono riconoscere il processore e che esistono più core. I computer più vecchi avevano solo un core, quindi un sistema operativo più vecchio potrebbe non funzionare troppo bene se un utente tentasse di installarlo su un computer più nuovo con più core. Windows 95, ad esempio, non supporta l'hyper-threading o più core. Tutti i sistemi operativi recenti supportano processori multi-core, tra cui Windows 7, 8, la nuova versione 10 e l'OS X 10.10 di Apple.

In pratica, il sistema operativo dice alla scheda madre che è necessario eseguire un processo. La scheda madre quindi dice al processore. In un processore multi-core, il sistema operativo può dire al processore di fare più cose contemporaneamente. In sostanza, attraverso la direzione del sistema operativo, i dati vengono spostati dal disco rigido o dalla RAM, tramite la scheda madre, al processore.

Processore multi-core

All'interno di un processore, ci sono più livelli di memoria cache che contengono dati per le successive operazioni o operazioni del processore. Questi livelli di memoria cache assicurano che il processore non debba guardare molto lontano per trovare il processo successivo, risparmiando molto tempo. Il primo livello di memoria cache è la cache L1. Se il processore non riesce a trovare i dati necessari per il processo successivo nella cache L1, cerca nella cache L2. La cache L2 è più grande in memoria, ma è più lenta della cache L1.

Processore single core

Se un processore non riesce a trovare ciò che sta cercando nella cache L2, continua lungo la linea fino a L3 e, se un processore ce l'ha, L4. Successivamente, apparirà nella memoria principale o nella RAM di un computer.

Esistono anche diversi modi in cui processori diversi gestiscono le cache delle differenze. Ad esempio, alcuni duplicano i dati nella cache L1 nella cache L2, che è sostanzialmente un modo per garantire che il processore possa trovare quello che sta cercando. Questo, ovviamente, occupa più memoria nella cache L2.

Diversi livelli di cache entrano in gioco anche nei processori multi-core. Di solito, ogni core avrà la propria cache L1, ma condividerà la cache L2. Ciò è diverso se ci fossero più processori, poiché ogni processore ha i propri L1, L2 e qualsiasi altra cache di livello. Con più processori single-core, la condivisione della cache non è semplicemente possibile. Uno dei principali vantaggi di avere una cache condivisa è la possibilità di utilizzare una cache al massimo, a causa del fatto che se un core non utilizza la cache, l'altro può farlo.

In un processore multi-core, durante la ricerca di dati un core può guardare attraverso la propria cache L1 unica e quindi si dirama verso la cache L2 condivisa, la RAM e infine il disco rigido.

È probabile che continueremo a vedere lo sviluppo di più core. Le velocità di clock del processore continueranno sicuramente a migliorare, anche se a velocità inferiori rispetto a prima. Sebbene ora non sia raro vedere processori octa-core in cose come gli smartphone, abbastanza presto potremmo vedere processori con dozzine di core.

Dove pensi che sarà la prossima tecnologia di elaborazione multi-core? Facci sapere nei commenti qui sotto o avviando una nuova discussione nel nostro forum della community.

Tutto sui processori multi-core: cosa sono, come funzionano e da dove provengono