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.
Dubbio sul multicore
Moderatori: MassimoB,
Paolino,
fairyvilje
6 messaggi
• Pagina 1 di 1
1
voti
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.
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.
-
lelerelele
2.627 3 7 9 - Expert EY
- Messaggi: 3005
- Iscritto il: 8 giu 2011, 8:57
- Località: Reggio Emilia
0
voti
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.
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.
Ultima modifica di
mir il 10 nov 2020, 17:38, modificato 1 volta in totale.
Motivazione: Eliminato quote inutile. Per rispondere utilizzare il tasto Rispondi.Grazie

Motivazione: Eliminato quote inutile. Per rispondere utilizzare il tasto Rispondi.Grazie
2
voti
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".
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".
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?

-
fairyvilje
12,9k 4 9 12 - G.Master EY
- Messaggi: 2683
- Iscritto il: 24 gen 2012, 19:23
0
voti
I circuiti sono controcorrente. Seguono sempre la massa
-Per rispondere utilizza il tasto [RISPONDI] e non il tasto [CITA], grazie.-
-Per rispondere utilizza il tasto [RISPONDI] e non il tasto [CITA], grazie.-
6 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Nessuno e 6 ospiti