bi-processore vs dual-core

ciao!

ho questo dubbio: se parliamo di potenze assorbite è chiaro che una soluzione dual-core è di certo migliore di una a doppio processore.... ma a livello di potenza di calcolo quale delle due è *potenzialmente* migliore?

è solo una curisità... tanto ormai i dual-core vanno per la maggiore e presto verranno affiancati dai quad-core. E chissà, in futuro forse anche da n-core... con n pari ;)

-ice-

Reply to
ice
Loading thread data ...

"ice" ha scritto nel messaggio news:44d73582$0$35082$ snipped-for-privacy@reader4.news.tin.it...

Dipende da chi scrive il programma e dal compilatore che usa. Se l'approccio all'algoritmo è sbagliato puoi avere quanti processori vuoi, separati o uniti, che il programma va piano lo stesso :-)

Dipende da quanto riescono a fare piccoli i mosfet. Tieni anche d'occhio le tecnologie ottiche! Ciao :-)

Reply to
Franco

questo ok, ma non capisco come mai sia così importante che il software sia stato appositamente progettato per usare una o l'altra tecnologia... perchè allora non viene usato un 3° processore per splittare in hardware i compiti delle 2 CPU principali?

non le conosco... il bus viaggia su "portante" ottica anzichè la classica "pista"?

grazie!

-ice-

Reply to
ice

"ice" ha scritto nel messaggio news:44d849a7$0$35067$ snipped-for-privacy@reader4.news.tin.it...

Il problema nasce in fase di concezione del software. Il programmatore deve scomporre il problema in parti risolvibili singolarmente da ciascun microprocessore. Bisogna quindi trovare il sistema di ridurre al minimo le dipendenze tra le istruzioni, soprattutto le cosiddette dipendenze RAW(read after write). La dipendenza RAW tra due istruzioni implica che la seconda( in ordine cronologico) deve aspettare il risultato della prima per essere eseguita. Es.

1) c=a+b; 2) d=10+c; 3) z=2*a; La seconda istruzione deve necessariamente aspettare il risultato della prima, mentre la terza può essere eseguita contemporaneamente alla prima o alla seconda. Il programmatore deve fare in modo che la prima e la terza istruzione siano esegujite contemporaneamente(magari da 2 cpu distinte) mentre la terza bva eseguita dalla stessa CPU che esegue la prima, per minimizzare i ritardi. Le istruzioni eseguite in disordine vanno poi ricomposte e di questo se ne occupa il processore. Altre istruzioni che creano problemi sono quelle di salto condizionato, anche perchè i meccanismi di previsione non funzionano benissimo e quando falliscono bisogna svuotare tutta la pipeline del processore con una notevole perdita di tempo. Perchè un processore possa dividere i compiti su altre 2 cpu dovrebbe conoscere a priori tutto il programma in modo da risolvere le dipendenze. In effetti qualcosa di questo tipo già avviene nei processori moderni, ad esempio il pentium 4 ha 2 alu per i numeri interi, 2 per i floating point e altre unità per l'MMX e per i numeri formato BCD. L'unità di fetch del processore decide come suddividere le istruzioni tra le varie parti della cpu, quali vanno eseguite prima e quali dopo e ha un meccanismo di predizione di salto eccellente(Intel ha speso un patrimonio per farla). Non c'è nulla da fare, nei compiti che richiedono una maggiore capacità di ragionamento, la mente umana è insuperabile e quindi anche la divisione dei compiti su più cpu è ancora affidata all'abilità del programmatore e di chi scrive il compilatore. Per una spiegazione più precisa e più chiara, ti consiglio di leggere "Architettura dei calcolatori" di Andrew Tanenbaum. Mi pare che il calcolo parallelo è spiegato nell'ottavo capitolo... Se poi hai un amico informatico sicuramente ti sa dare maggiori spiegazioni.

Si, il primo obiettivo è questo, almeno finchè non trovano il sistema di fare dei "transistor ottici", anche se qualcosa si sta muovendo in questa direzione:

formatting link

Prego, non c'è di che :-) Franco

>
Reply to
Franco

Franco ha scritto:

di

df

Beh, i cristalli fotonici erano di moda fino a qualche anno fa. Adesso si fa un gran parlare di fotonica su silicio (SOI), soprattutto che l'=E9quipe di Paniccia ha realizzato un laser continuo funzionante su questo materiale. Ma non esiste solo questo! Quale tecnologia e come verr=E0 applicata resta ancora da vedere. Penso che, nonostante molte affermazioni un po' troppo pompose, si sia ancora lontani dal realizzare vere e proprie funzioni di elaborazione ottica dei segnali integrate in un prodotto consumer come una CPU da elaboratore. Soluzioni tecnologiche esistono e vengono applicate, ma siamo ancora ben lontani dal soppiantare i processi di produzione attuali, per ragioni di costo, affidabilit=E0 e compatibilit=E0 con i dispositivi CMOS che esistono. Quanti anni mancano al fatidico momento, non si sa. Gi=E0 dieci anni fa sembrava che fosse cosa di poco tempo, eppure... Resta inteso che le telecomunicazioni ottiche sono diffusissime ed hanno reso possibile il mondo in cui viviamo, ma non sto parlando di questo. Le tecnologie ottiche inoltre non sono le uniche candidate per l'elaborazione (logica RFSQ e=20 compagnia).

Reply to
Darwin

ho trovato un amico che ha questo libro... me lo faccio prestare di sicuro!

grazie per le precise informazioni!

-ice-

Reply to
ice

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.