Qual è la differenza tra MultiCore e MultiProcessor? [duplicare]


Risposte:


28

Una CPU , o Central Processing Unit, è ciò che viene generalmente chiamato processore. Un processore contiene al suo interno molte parti discrete, come una o più cache di memoria per istruzioni e dati, decodificatori di istruzioni e vari tipi di unità di esecuzione per eseguire operazioni aritmetiche o logiche.

Un sistema multiprocessore contiene più di una di queste CPU, consentendo loro di lavorare in parallelo. Questo si chiama SMP o Symmetric MultiProcessing.

Una CPU multi core ha più core di esecuzione su una CPU. Ora, questo può significare cose diverse a seconda dell'architettura esatta, ma fondamentalmente significa che un certo sottoinsieme dei componenti della CPU è duplicato, in modo che più "core" possano lavorare in parallelo su operazioni separate. Questo si chiama CMP, Multiprocessing a livello di chip.

Ad esempio, un processore multicore può avere una cache L1 e un'unità di esecuzione separate per ciascun core, mentre ha una cache L2 condivisa per l'intero processore. Ciò significa che mentre il processore ha un grande pool di cache più lenta, ha memoria veloce separata e unità artitmetiche / logiche per ciascuno dei diversi core. Ciò consentirebbe a ciascun core di eseguire operazioni contemporaneamente agli altri.

Esiste anche un'ulteriore divisione, chiamata SMT , Multithreading simultaneo. È qui che viene duplicato un sottoinsieme ancora più piccolo dei componenti di un processore o core. Ad esempio, un core SMT potrebbe avere risorse di pianificazione dei thread duplicate, in modo che il core assomigli a due "processori" separati per il sistema operativo, anche se ha un solo set di unità di esecuzione. Un'implementazione comune di questo è Hyperthreading di Intel.

Quindi, potresti avere un sistema multiprocessore, multicore, multithread. Qualcosa come due processori quad-core, hyperthreaded ti darebbe 2x4x2 = 16 processori logici dal punto di vista del sistema operativo.

Carichi di lavoro diversi beneficiano di diverse configurazioni. Un carico di lavoro a thread singolo eseguito su una macchina per lo più monouso beneficia di un sistema single core / cpu molto veloce. I carichi di lavoro che beneficiano di sistemi altamente parallelizzati come le configurazioni SMP / CMP / SMT includono quelli che hanno molte piccole parti su cui è possibile lavorare contemporaneamente o sistemi che vengono utilizzati per molte cose contemporaneamente, come un desktop utilizzato per navigare in Internet, giocare a un gioco Flash e guardare un video tutto in una volta. In generale, l'hardware in questi giorni tende sempre più verso architetture altamente parallele, poiché la maggior parte delle velocità raw singole CPU / core sono "abbastanza veloci" per i carichi di lavoro comuni nella maggior parte dei modelli.


Che dire del calore, quale impostazione? Se racchiudi molti processori in un unico alloggiamento della CPU, il calore è molto concentrato su un solo "punto" e richiede migliori strutture di raffreddamento, giusto? Se questo è vero, perché i produttori mantengono quel design, solo per i costi? O ci sono altri problemi da superare quando si utilizzano core separati?
Codebeat

18

Tutti hanno dato abbastanza spiegazioni. Ancora se non capisci. Dai un'occhiata a questo:

testo alternativo


Due domande sull'immagine che le hai messo 1) Cos'è APIC 2) Il diagramma nell'ultima riga di celle, per Multicore e Multiprocessore (2 diagrammi nella prima e terza colonna dell'ultima riga della griglia) sembrano essere lo stesso, tranne le linee tratteggiate / continue / i confini quadrati che suscitano la ALU. Cosa significano?
Goldenmean

2
@goldenmean: 1. APIC è en.wikipedia.org/wiki/… , è ciò che riceve interruzioni da altri dispositivi e azioni. Potrei spiegare di più se hai qualche conoscenza sul funzionamento interno di OperatingSystems 2) Bene, la linea continua significa che sono due diversi chip / die come mostrato nella prima riga e la linea tratteggiata mostra che entrambi sono su un singolo chip o die
claws

Dovrebbe essere indicato come "Dai un'occhiata a questa immagine, anche se non capisci tutti hanno dato abbastanza spiegazioni"
Teoman shipahi

2

un processore multi-core contiene due o più core in un unico pacchetto fisico.

un sistema multiprocessore è un sistema che contiene più di un processore fisico. ciascuno di questi processori può contenere più core (come ha risposto WoodE).

per quanto riguarda il loro confronto:
in un processore multi-core ciascuno dei core è generalmente più lento (in velocità raw) rispetto a un processore single-core veloce. Inoltre, tutti i core di quel processore condividono lo stesso bus di sistema e la stessa memoria principale. Tuttavia, per la maggior parte delle attività quotidiane questo non è un problema evidente e per la maggior parte degli utenti il ​​sistema si sentirà più veloce in quanto sono in grado di svolgere attività più semplici contemporaneamente.

in un sistema a più processori le prestazioni saranno aumentate nei casi in cui vengano eseguite più attività ad alta intensità. a seconda della scheda madre ciò può essere dovuto al fatto che ciascun processore avrà il proprio bus e / o memoria principale dedicati, consentendo loro di utilizzare tutte le funzionalità di ciascuno per tali compiti.

un sistema multi-core multi-processore sarebbe una fusione di pro e contro di ciascuno.

Inoltre, man mano che vengono sviluppati più programmi multi-thread (un programma in grado di dire al processore di lavorare su più di un'attività alla volta), gli svantaggi di un processore multi-core diminuiranno.


2

Dal punto di vista desktop / laptop, il multiprocessore ha due o più CPU separate in una macchina.

Il multi-core ha più core di elaborazione sullo stesso chip, essenzialmente più CPU su un bit di silicio. Per essere considerato multi-core ogni core dovrebbe essere essenzialmente una CPU completa - il fatto che anche i primi chip Pentium presentassero più unità di calcolo di interi (consentendo una pipeline più efficiente) non conta.

Ovviamente potresti avere una disposizione multi-core multi-processore, con più di un processore multi-core nella stessa macchina.

Pro e contro possono essere complicati in quanto ci sono molte variabili da considerare, ma alcune differenze notevoli sono:

  • raffreddamento: una CPU a due core produce spesso meno calore residuo rispetto a due unità single core separate della stessa specifica e richiede solo un dissipatore di calore e una ventola che generalmente saranno più economici (anche se tutto il calore è in un posto, non si sviluppa su due, che potrebbero richiedere soluzioni di raffreddamento ad alta tecnologia)
  • velocità dovuta alla localizzazione della cache: essendo sullo stesso chip ci sono opportunità per rendere la coerenza / condivisione della cache L2 (o L3) più efficiente poiché i core non devono coordinarsi su una distanza maggiore su un bus di memoria esterno
  • differenze di costo dovute alla semplicità: la soluzione multi-core non richiede prese multiple sulla scheda madre e così via

1

In termini di base, un processore multicore è un singolo processore con più core (quad-core ha 4 core, ad esempio) dove un sistema multiprocessore contiene più di un processore sulla scheda madre (che a sua volta può anche essere multicore).

Quando si tratta di pro e contro di ciascuno diventa un po 'più complicato.

Modifica: correzione ortografica.



1

per quanto ne so, un core è all'interno di un processore, quindi multi-core significherebbe un singolo processore potente, multi processore è più processori su una scheda madre (immagino che i problemi di riscaldamento siano inferiori, o forse anche un payload condiviso equivale a prestazioni migliori) non sono sicuro, ma da quello che ho letto ho pensato che fosse accurato

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.