Qual è la differenza tra un core e un processore?
L'ho già cercato su Google, ma ho solo una definizione multi-core e multi-processore, ma non corrisponde a quello che sto cercando.
Qual è la differenza tra un core e un processore?
L'ho già cercato su Google, ma ho solo una definizione multi-core e multi-processore, ma non corrisponde a quello che sto cercando.
Risposte:
Un core è di solito l'unità di calcolo di base della CPU: può eseguire un singolo contesto di programma (o più contesti se supporta thread hardware come hyperthreading su CPU Intel), mantenendo lo stato corretto del programma, i registri e l'ordine di esecuzione corretto, e eseguire le operazioni tramite ALU . Ai fini dell'ottimizzazione, un core può anche contenere cache on-core con copie di blocchi di memoria utilizzati di frequente.
Una CPU può avere uno o più core per eseguire attività in un determinato momento. Queste attività sono in genere processi e thread software pianificati dal sistema operativo. Si noti che il sistema operativo può avere molti thread da eseguire, ma la CPU può eseguire X tali attività in un dato momento, dove X = numero core * numero di thread hardware per core. Il resto dovrebbe aspettare che il sistema operativo li pianifichi anticipando le attività in corso o qualsiasi altro mezzo.
Oltre a uno o più core, la CPU includerà alcune interconnessioni che collegano i core al mondo esterno e di solito anche una cache condivisa di "ultimo livello". Ci sono molti altri elementi chiave richiesti per far funzionare una CPU, ma le loro posizioni esatte possono differire in base al design. Avrai bisogno di un controller di memoria per comunicare con la memoria, controller I / O (display, PCIe, USB, ecc.). In passato questi elementi erano al di fuori della CPU, nel "chipset" complementare, ma la maggior parte del design moderno li ha integrati nella CPU.
Inoltre, la CPU potrebbe avere una GPU integrata e praticamente tutto il resto che il progettista ha voluto tenere vicino per considerazioni su prestazioni, potenza e produzione. Il design della CPU tende principalmente a quello che viene chiamato system on chip (SoC).
Si tratta di un design "classico", utilizzato dalla maggior parte dei moderni dispositivi per uso generale (PC client, server e anche tablet e smartphone). Puoi trovare progetti più elaborati, di solito in accademia, dove i calcoli non vengono eseguiti in unità di base "simil-core".
/proc/cpuinfo
, vedo sedici processor:
righe, anche se dice model: AMD Ryzen 7 2700X Eight-Core Processor
. Quindi, almeno in questo caso, ciascuno degli 8 "core" ha due "processori", che è in contrasto con alcune altre risposte qui.
Un'immagine può dire più di mille parole:
* Figura che descrive la complessità di un moderno sistema multi-processore e multi-core.
Fonte:
Open images in new tab
quindi ingrandisci utilizzando cltr
++
Chiariamo prima cosa è una CPU e cosa è un core, una CPU di unità centrale di elaborazione, può avere più unità core, quei core sono un processore da solo, in grado di eseguire un programma ma è autonomo sullo stesso chip.
In passato una CPU era distribuita su alcuni chip, ma man mano che la legge di Moore progrediva, fecero avere una CPU completa all'interno di un chip (die), dagli anni '90 il produttore iniziò a inserire più core nello stesso die, quindi questo è il concetto di multi-core.
In questi giorni è possibile avere centinaia di core sulla stessa CPU (chip o die) GPU, Intel Xeon. Un'altra tecnica sviluppata negli anni '90 era il multi-threading simultaneo, fondamentalmente hanno scoperto che era possibile avere un altro thread nella stessa CPU single core, poiché la maggior parte delle risorse era già duplicata come ALU, registri multipli.
Quindi in pratica una CPU può avere più core ognuno in grado di eseguire un thread o più contemporaneamente, potremmo aspettarci di avere più core in futuro, ma con più difficoltà per poter programmare in modo efficiente.
La CPU è un'unità centrale di elaborazione. Dal 2002 disponiamo solo di un processore single core, ovvero eseguiremo una sola attività o un programma alla volta.
Per far funzionare più programmi alla volta, dobbiamo usare il processore multiplo per eseguire più processi alla volta, quindi abbiamo richiesto un'altra scheda madre per questo e questo è molto costoso.
Quindi, Intel ha introdotto il concetto di hyper threading, ovvero convertirà la singola CPU in due CPU virtuali, ovvero abbiamo due core per il nostro compito. Ora la CPU è singola, ma fa solo finta (mascherata) di avere una doppia CPU ed eseguire più attività. Ma avere più core reali sarà meglio di così, quindi le persone sviluppano la produzione di processori multi-core, cioè processori multipli su un singolo box, ovvero afferrando una CPU multipla su un'unica grande CPU. Cioè più core.
All'inizio ... come prima degli anni '90 ... i processori non erano in grado di svolgere più attività in modo efficiente ... perché un singolo processore poteva gestire solo una singola attività ... quindi quando dicevamo che il mio antivirus, microsoft word, vlc, ecc. i software sono tutti in esecuzione contemporaneamente ... questo non è in realtà vero. Quando ho detto che un processore poteva gestire un singolo processo alla volta ... volevo dire. In realtà avrebbe elaborato una singola attività ... poi ha usato per mettere in pausa quell'attività ... prendere un'altra attività ... completarla se è una breve o di nuovo metterla in pausa e aggiungerla alla coda ... quindi alla successiva. Ma questa "pausa" che ho menzionato era così piccola (circa 1 ns) che non hai capito che l'attività è stata messa in pausa. Per esempio. Su vlc mentre ascolti la musica ci sono altre app in esecuzione contemporaneamente ma come ti ho detto ... un programma alla volta ...
Ma questo riguardava i vecchi processori ...
I processori di oggi, ovvero i PC di terza generazione hanno processori multi core. Ora i "core" possono essere confrontati con un processore di prima o seconda generazione ... incorporato in un singolo chip, un singolo processore. Quindi ora abbiamo capito cosa sono i core, ovvero sono mini processori che si combinano per diventare un processore. E ogni core può gestire un singolo processo alla volta o multi thread come progettato per il sistema operativo. E seguono gli stessi passaggi di cui ho parlato sopra sul singolo processore.
Per esempio. Un processore i7 6gen ha 8 core ... vale a dire 8 mini processori in 1 i7 ... ovvero la sua velocità è 8 volte superiore ai vecchi processori. Ed è così che si può fare il multitasking.
Potrebbero esserci centinaia di core in un singolo processore Ad es. Intel i128.
Spero di averlo spiegato bene.
L'immagine di Intel è utile, come mostrato dalla migliore risposta di Tortuga. Ecco una didascalia per questo.
Processore : un chip a semiconduttore, la CPU (unità centrale di elaborazione) alloggiata in un socket, circa anni '50 -'2010. Nel tempo, sul chip della CPU sono state inserite più funzioni. Prima delle versioni degli anni '50 dei processori a chip singolo, un processore poteva essersi diffuso su più chip. A metà del 2010 i chip di sistema su un chip hanno reso leggermente più abbozzato equiparare un processore a un chip, anche se questo è generalmente ciò che la gente intende per processore, come in "questo computer ha un processore i7" o "questo sistema informatico" ha quattro processori ".
Core : un blocco di una CPU, che esegue un'istruzione alla volta. (Vedrai persone dire un'istruzione per ciclo di clock, ma alcune CPU usano più cicli di clock per alcune istruzioni.)