Pagina 1 di 1

Dubbio sul multicore

MessaggioInviato: 10 nov 2020, 12:07
da dlfdnc
Carissimi, buongiorno.
Stamattina mi sono svegliato con una grande incertezza riguardante i processori multicore.
La struttura di una cpu si compone (descrizione rapida e sintetica) di unità di processo, unità di controllo, alu, registri, contatori ecc...
Ha quindi senso pensare un sistema multicore, come un sistema che garantisce virtualmente piu cpu in azione parallela? O il senso di un sistema multicore sta proprio nell'aumento delle prestazioni di una singola cpu?
Esempio: 4core, 4 cpu, immagazinate nello stesso package fisico, quindi ognuna con la propria struttura (ognuna con la propria unità di processo, unità di controllo, alu ecc..).
Grazie per l'attenzione! Buona giornata.

Re: Dubbio sul multicore

MessaggioInviato: 10 nov 2020, 12:45
da lelerelele
Nei sistemi attuali, PC, ci sono molti programmi che lavorano assieme, basta pensare alla gestione della rete, al browser, servizi vari, che lavorano in background anche se tu lavori con un programma unico, (es. word), molti processi sono eseguiti in parallelo, quindi l'utilità di avere vari core che possono eseguire più processi simultanei.

Riguardo al singolo programma, c'è da dire, che se questo lavori con un singolo core, converrebbe avere un processore con pochi core che vadano veloci, mentre se il tuo programma in uso lavora in multicore, (quindi è in grado di lavorare con thread paralleli, spazzolati su più core), conviene avere un processore con molti core, anche se singolarmente vanno più piano.

Per il discorso velocità di esecuzione, però, ci sono tanti altri parametri da guardare....

saluti.

Re: Dubbio sul multicore

MessaggioInviato: 10 nov 2020, 13:58
da dlfdnc
Grazie per la risposta. Il mio discorso voleva essere un po meno generico, senza osservare tutto quel che riguarda la velocità, l'elaborazione, thread o altro.
Effettivamente parlando, se ho un sistema multicore ho a disposizione "virtualmente" n cpu? Quindi n unità di processo, n unità di controllo, n alu?
Conosco la differenza fra multicore e multiprocessore, ma non riesco a visualizzare bene il multicore.
Mi spiego meglio, per come la vedo io, un sistema multicore può essere inteso come un sistema multiprocessore, ma solo virtualmente. Quindi io posso sfruttare un quad core come se effettivamente avessi 4 cpu a disposizione.

Re: Dubbio sul multicore

MessaggioInviato: 10 nov 2020, 16:10
da fairyvilje
Si, sono virtualmente n cpu separate. In pratica tuttavia, condividono molte delle risorse "esterne" (anche se oggi sono integrate nello stesso chip) e ciò porta le prestazioni a non scalare linearmente. In particolare molte architetture condividono la cache od il bus per la memoria per esempio. Un gradino sotto ai cores ci sono i threads. Molti processori sono venduti per esempio come 6 cores e 12 threads. In questo caso puoi pensare ai threads come thin cores, ovvero unità logicamente separate ma che condividono non solo risorse come la cache ma anche alcune parti dei circuiti usati per computazione.
Gli schemi e le variabili sono tante, basti pensare all'architettura small-big tipica dei processori ARM. Per questo è difficile dire qualcosa di validità generale :).
Volendo andare in senso opposto, verso una separazione ancora più fisica ci sono ovviamente i casi di sistemi multiprocessore veri e propri, generalmente usati in ambiente server con schede dual socket per esempio. In questo caso hai due processori che logicamente uniscono i cores in un pool unico, ma in pratica vuoi tenere le affinità dei processi confinati in modo da evitare le penalità quando si devono "parlare".

Re: Dubbio sul multicore

MessaggioInviato: 10 nov 2020, 17:16
da dlfdnc
Grazie mille per la risposta!

Re: Dubbio sul multicore

MessaggioInviato: 10 nov 2020, 17:40
da mir