Domanda su CPU di Sistemi operativi

Darèios89
Sapreste dirmi, qual è il vantaggio di avere una singola CPU che ne gestisce altre, piuttosto che avere singole CPU indipendenti? Cioè i vantaggi di avere 1 CPU che ne controlla 4 piuttosto che singole CPU indipendenti.

Risposte
vict85
Ti stai per caso riferendo al cell processor della playstation in cui c'é un power pc che gestisce le ALU (mi sembra si chiamino così), oppure ad una qualche architettura multiprocessore specifica? Oppure ti riferisci ad una cpu fisica che contiene 4 core rispetto a 4 cpu distinti.

Se ti riferisci a multicore vs. multicpu direi che il primo vantaggio sta nel fatto che i core possiedono delle cose in comune e non sono totalmente indipendenti. Per esempio condividere una L2 può portare a scambi di dati molto più veloci tra i vari core. Inoltre l'architettura interna del cpu comprende dentro di se la gestione dei core mentre nel caso generale bisogna costruirla sulla scheda madre. Senza dubbio comunque i due fattori predominanti sono il fatto che un multicore ha un consumo per core molto inferiore e che occupa meno spazio sulla scheda madre. Ci sono processori con 12 core grandi poco più di francobolli. mentre avere 12 processori occupano tantissimo spazio. Tieni conto che comunque una scheda video di ultima generazione ha una cosa come 2000 computation unit disposti gerarchicamente (anche se non indipendenti tra di loro e molto diversi da quello che è un core della cpu).

Erwin Rommel1
Provo a fare una riflessione:

un microprocessore singolo funziona ad una certa frequenza; per aumentare la velocità di calcolo si è spesso aumentato la frequenza del clock. Dopo una certa soglia potrebbe verificarsi un surriscaldamento eccessivo dovuto all’effetto microonde con ingenti costi di raffreddamento a scapito poi della dimensione. CPU con Dual Core, Quadri core o multi core hanno unito delle CPU singole in un singolo package riducendo la frequenza di lavoro e quindi il problema surriscaldamento e consumo (problema rilevante sopratutto nei portatili che funzionano con accumulatori) facendoli lavorare in parallelo in un unico ciclo di clock. Ciò implica però che il software vengano scritto in modo da sfruttare il multi-thread.

La velocità della corrente elettrica è determinata dalle velocità di deriva ed è nell’ordine di 10 ^ -5 m/s, la resistenza elettrica è determinata oltre dalle dimensioni anche dalla resistività del conduttore (Au è meno resistivo del Cu ma costa di più). Un tratto minore di due CPU integrate (rispetto a due CPU separate nel circuito) a parità di velocità verrà percorso in minore tempo e quindi aumenta la velocità di esecuzione. Per quanto si possano ridurre le scale di integrazione però si arriva ad un limite in cui si innescano archi voltaici tra una pista e l’altra oppure per effetto joule le fa fondere.

Poi seguono tutte le osservazioni fatte prima di me sul costo di più componenti, dimensioni maggiori ecc...
Giusto ?

Darèios89
Ottimo!!! Penso che la risposta più imminente e la cosa più importante sia il fatto della cache condivisa.
Grazie ad entrambi. :smt023

Però una cosa sul multithread. Quando si ha una CPU con due core come funziona? Cioè ogni core ha più thread, quindi su un singolo core si ha uno pseudoparallelismo con più thread in esecuzione come fossero processi, e allo stesso tempo può fare lo stesso l' altro core?

hamming_burst
"Darèios89":
Ottimo!!! Penso che la risposta più imminente e la cosa più importante sia il fatto della cache condivisa.
Grazie ad entrambi. :smt023

Però una cosa sul multithread. Quando si ha una CPU con due core come funziona? Cioè ogni core ha più thread, quindi su un singolo core si ha uno pseudoparallelismo con più thread in esecuzione come fossero processi, e allo stesso tempo può fare lo stesso l' altro core?

il discorso qui si complica ed è a diversi stadi di astrazione. Lo puoi vedere come semplice concorrenza multi-thread con multi-core ma che il programmatore non importa nulla di quanti core esistono. Oppure il tuo discorso è più significativo in programmazione più a basso livello come in kernel-space cerca: "kthread" "kernel-thread" "spinlock"... dove qui effettivamente ti preoccupi di chi sta lavorando.

Darèios89
Hamming ci si rivede :-D

Grazie... :smt023

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.