PDA

View Full Version : (3500+ GHZ) == (3,5 MILIARDI DI OPERAZIONI AL SECONDO) ???


alphaville
09-02-2005, 17:02
Ciao a tutti, leggendo su un sito mi è sorto un dubbio:

Ma un processore Amd 3500+ effettua 3,5 miliardi di operazioni al secondo o non è proprio così???

Grazie, ciao

TheDarkAngel
09-02-2005, 17:19
Originariamente inviato da alphaville
Ciao a tutti, leggendo su un sito mi è sorto un dubbio:

Ma un processore Amd 3500+ effettua 3,5 miliardi di operazioni al secondo o non è proprio così???

Grazie, ciao

non è così per niente...

alphaville
09-02-2005, 17:23
Originariamente inviato da TheDarkAngel
non è così per niente...
Puoi spiegarti meglio? :rolleyes:

TheDarkAngel
09-02-2005, 17:28
Originariamente inviato da alphaville
Puoi spiegarti meglio? :rolleyes:

che prima di tutto a64 3500+ va a 2200mhz e fa quindi 2.2ml di cicli al secondo...

alphaville
09-02-2005, 17:47
ok, su quello sono d'accordo. Quindi corrisponderebbe a 2,2 miliardi di operazioni al secondo

Thunder82
09-02-2005, 17:57
Originariamente inviato da alphaville
ok, su quello sono d'accordo. Quindi corrisponderebbe a 2,2 miliardi di operazioni al secondo

no, perchè molte operazioni richiedono più di un ciclo di clock

Gen.Web
09-02-2005, 17:58
Originariamente inviato da alphaville
ok, su quello sono d'accordo. Quindi corrisponderebbe a 2,2 miliardi di operazioni al secondo


"operazioni" mi sembra troppo generico

Necromachine
09-02-2005, 18:11
La frequenza si riferisce ai cicli.

Operazioni diverse richiedono una diversa quantità di cicli (per esempio, una addizione potrebbe richiede 1 ciclo di clock, una moltiplicazione 9), senza contare che molti cicli vanno a vuoto in latenze varie (attesa dati dalla ram, pipeline in stallo etc. etc.).
A complicare il tutto il fatto che molte operazioni possono essere eseguite in parallelo (per esempio le operazioni in virgola mobile e quelle tra interi, oppure ottimizzazione varie diverse da processore a processore).

*sasha ITALIA*
09-02-2005, 18:48
beh il nuovo cell ne fa 250 miliardi :D

TheDarkAngel
09-02-2005, 19:04
Originariamente inviato da *sasha ITALIA*
beh il nuovo cell ne fa 250 miliardi :D

sulla carta tutti sono capaci ^^
finchè non sarà possibile provarli direttamente saranno tutte parole parole e parole

Necromachine
09-02-2005, 19:46
Originariamente inviato da *sasha ITALIA*
beh il nuovo cell ne fa 250 miliardi :D

Senza contare che non lo vedremo mai in un PC .....

*sasha ITALIA*
09-02-2005, 19:47
Originariamente inviato da Necromachine
Senza contare che non lo vedremo mai in un PC .....

è questo quello che preoccupa :D

checo
09-02-2005, 21:09
Originariamente inviato da *sasha ITALIA*
beh il nuovo cell ne fa 250 miliardi :D


aggiungi sempre in linea teorica quando le apu lavorano a pieno regime tutte 8, cosa imho impossibile se non in rarissimi casi di elaborazioni su streaming dati

cdimauro
10-02-2005, 12:50
Comunque un Athlon può eseguire fino a 3 istruzioni per ciclo di clock...

checo
10-02-2005, 13:01
Originariamente inviato da cdimauro
Comunque un Athlon può eseguire fino a 3 istruzioni per ciclo di clock...


mmm io sapevo che ne può eseguire 9 ma magari mi sbaglio

Cain
10-02-2005, 14:20
anche io sapevo 9, 6 INT e 3 FP

jappilas
10-02-2005, 14:36
stabilire l' ILP (instruction level parallelism) su una cpu superscalare come quelle moderne non è immediato...soprattutto perchè la pipeline presenta "ampiezze" diverse ai diversi livelli
nel caso di athlon, il livello EXECUTE ha 9 unità di cui 3 1-port ALU, 3 AGU , 1 FPU MULtiply, 1 FPU MOVE e 1 FPU ADD (in realtà spesso e volentieri si conta anche l' unità che esamina le condizioni di salto e calcola l' eventuale nuovo valore del program counter, quindi sarebbero 10)
a parte che per le operazioni intere più complesse due delle tre ALU intere vengono aggregate, il livello di esecuzione opera sulle cosiddette microistruzioni RISC86, che da qualche parte devono venire: cioè dal buffer di riordino dello scheduler, che ha evidentemente un parallelismo a livello di DISPATCH pari a 9...

allo scheduler vengono fornite dal decoder: questo essendo superscalare a 3 vie, può produrre ad ogni ciclo un certo numero di micro ops, elaborando 3 istruzioni X86 in ingresso, per volta: questo dovrebbe essere il livello di parallelismo allo stadio DECODE

ora, siccome il decoder è inserito nel cosiddetto "loop di front end", essendo tra la cache L1 e lo scheduler, è sfruttato ad ogni ciclo di clock e può fare da collo di bottiglia per gli stadi successivi (se le alu a valle non vengono saturate, il che accade ad es se le X86 non vengono convertite tutte in almeno 2 RISC86)

giusto per completezza, nel pentium 4 si è deciso di disaccoppiare il decoder dal resto della pipeline mettendolo A MONTE della cache L1 (che diventa più complessa perchè è chiamata a memorizzare micro-ops già decodificate, e già che c'è, a ordinarle per flusso di esecuzione, tenedo conto dei salti ...)
con tale disaccoppiamento si è notato che il decoder può anche essere non superscalare, in quanto entra in gioco solo al caricamento di una nuova istruzione non presente in cache L1
quindi P4 avrebbe un "parallelismo" a livello DECODE pari a 1...

cdimauro
11-02-2005, 08:29
Originariamente inviato da checo
mmm io sapevo che ne può eseguire 9 ma magari mi sbaglio
9 unità di esecuzione, come ha giustamente precisato jappilas... ;)

L'IPC (Instruction Per Cycle) di un Athlon si aggira sui 2-2,5...

checo
11-02-2005, 10:57
quel valore di ipc mi sembra basso ma mi confondo evidentemente

cdimauro
11-02-2005, 13:23
Non è basso, anzi è abbastanza elevato... ;)

checo
11-02-2005, 13:38
Originariamente inviato da cdimauro
Non è basso, anzi è abbastanza elevato... ;)


mmm epure qualcosa non mi torna :confused:

jappilas
11-02-2005, 15:18
il punto è che con l' architettura x86 l' esecuzione parallela di più istruzioni è difficile,
e perchè il set è stato concepito in tempi in cui le cpu superscalari, ma anche solo pipelined, (nel senso di poter tenere in sospeso l' esecuzione di più istruzioni nei diversi stadi) che lo eseguissero, erano di là da venire
e per la complessità intrinseca degli algoritmi, dovuta alla dipendenza tra istruzioni consecutive (sarebbe diverso se si potesse programmare in modo da fornire al processore direttamente gruppi di istruzioni relative a operazioni algebriche/logiche non vincolate, allora si sarebbe sicuri che le operazioni del gruppo possano essere eseguite assieme ... però che io sappia, ciò accade con itanium e la sua architettura epic, che sta appunto per explicit parallelism instruction core, il quale sposta sul programmatore la maggior parte del compito del compilatore)

quindi si avranno momenti in cui l' esecuzione andrà a una istruzione per volta , altri in cui se ne vedranno anche due o tre ...

ma siccome quello che conta per avere una stima delle prestazioni di un SW su una cpu è la MEDIA delle istruzioni per ciclo (figurarsi una volta erano cicli per istruzione medi), queste difficilmente vanno oltre il secondo intero positivo...

credo sia per questo che si considera 2.5 un ipc alto per l' athlon ;)

cdimauro
14-02-2005, 08:06
Credo che la causa principale sia la "complessità" intrinseca degli algoritmi.
Vero è che per gli x86 un IPC che si avvicini a tre è considerato molto elevato, ma confrontato a quello di altri sistemi (RISC/VLIW) è decisamente basso.
Questo non vuol dire che la "colpa" sia dell'architettura "vecchia": le differenze ci sono perché comunque le istruzioni x86 sono mediamente più "complesse" di quelle eseguite da RISC/VLIW, che per fare la stessa cosa magari sono costrette ad usare più istruzioni (più "semplici").