|
|
|
![]() |
|
Strumenti |
![]() |
#41 | ||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
![]() Quote:
Quote:
La situazione peggiora con le operazioni più complicate, affidata all'altra ALU, che presentano dei tempi di esecuzione peggiori (gli shift, ad esempio, sono nettamente più lenti rispetto all'AMD64). Quote:
Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||||
![]() |
![]() |
![]() |
#42 |
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
Per le AGU dell'A64 concordo, ma mi riferivo ad addizioni "utili", perchè il P4 ha le AGU direttamente attaccate alle unità di load e store (quindi sono 2 AGU). Non so se è meglio così, oppure è meglio calcolare gli effettive address prima (ad un rate di max 3 per clock) ed accodare le istruzioni nelle code dei load e store. Dalla teoria delle code qualcosa mi dice che è meglio questa ultima soluzione
![]() Quindi anche la slow ALU del P4 è "double-pumped"? Le "fast" alu possono processare 2 istruzioni a 16 bit per clock o una a 32 bit. Per quelle a 64 bit non so proprio: usare le 2 ALU in parallelo come hai detto tu è la soluzione più semplice, ma non la più veloce. Se si usasse una sola ALU non si avrebbero constraint di sincronizzazione (se una ALU è occupata, l'istruzione a 64 bit deve attendere) e l'altra ALU rimane libera (una istruzione a 16/32 bit deve attendere il completamento di quella a 64 bit), ma si guadagna qualche ciclo in latenza. |
![]() |
![]() |
![]() |
#43 | |||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Quote:
Quote:
![]() Quote:
Quote:
Per lo meno questa è la mia impressione. Quote:
Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||||||
![]() |
![]() |
![]() |
#44 |
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
Immaginavo che le AGU del P4 fossero più semplici... Ecco perchè l'A64 è un piccolo "mostro" sulle applicazioni da ufficio: quel codice è strapieno di quei modi di indirizzamento...
|
![]() |
![]() |
![]() |
#45 |
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
Per quanto riguarda le addizioni a 32 bit hai ragione: quello sembra un design pipelined con latenza 1,5 cicli di clock e output di 2 istruzioni per ciclo. Ci si può chiedere perchè non abbiano fatto lo stesso per le istruzioni a 64 bit, con 2,5 cicli di latenza e stesso output rate...
|
![]() |
![]() |
![]() |
#46 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 9231
|
Scusatemi ma allora in definitiva questi venice e sandiego quando escono nella nostra Madre Patria ?!? I prezzi ?!?
Grazie.
__________________
Case:CM Stacker Ali:Silverstone Zeus 650W Mobo:Asus P5Q-Deluxe Bios 1406 Cpu:Intel E8600 Cooling:Cpu: Noctua NH-U12F Ram:Corsair Dominator 2x2Gb Pc8500 C5DF Scheda Video:Asus Gtx-280 Hardisk:WD Raptor 74Gb - WD 1Tb - Barracuda 500Gb - Hitachi 1Tb Monitor:Samsung SM2232BW |
![]() |
![]() |
![]() |
#47 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Soltanto che, se leggi il manuale delle ottimizzazioni per il P4, buona parte dei "trucchetti" che fino a P3 e Athlon venivano usati per migliorare le prestazioni del codice (e renderlo anche più compatto), sono altamente sconsigliate. ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
![]() |
![]() |
![]() |
#48 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
![]() |
![]() |
![]() |
#49 |
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
Giusto!
L'unico modo per non dover aggiungere altri due sommatori è poter accedere separatamente (da micro op) ai 32 bit bassi ed alti di un registro a 64 bit e generare due micro ops per calcolare le due metà, avendo il vantaggio di poter decidere se usare due ALU in parallelo o usare in sequenza una sola ALU... |
![]() |
![]() |
![]() |
#50 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sembra che entrambe le ALU double pumped del Prescott siano state estese a 64 bit... Almeno secondo questa immagine: http://www.chip-architect.net/news/P..._1600x1200.jpg
http://www.chip-architect.com/news/2...ott_part2.html Second integer core for 64 bit processing (not for multithreading) It is as good as sure that the second 32 bit core is exclusively used for 64 bit processing, and in a way similar to the good old bit slices. There was the 4-bit AMD 2901 that could be used to build 16, 32 or 64 bit processors. The fact that makes it possible is because the core's is limited mainly to additive and logic functions. A 64 bit staggered addition will take a total of four 1/2 cycles but you can start two of them back to back on 1/2 cycle intervals. The latency to access the cache also does not need to be increased because of the extension to 64 (48) bit addresses. The higher part of the address is only used several cycles later to check the address tags with the TLB entries and not to access the data cache itself. What will increase with one cycle is the latency from an ALU instruction to a normal speed integer instructions. This delay will increase from 2 to 3 cycles. One extra pipeline stage is needed as well, resulting in a minor increase in the branch miss prediction penalty. The reason that we can be so sure that the second core is not used to boost the 32 bit Hyper threading capabilities is the scheduler. This unit is by far the biggest entity on the Pentium 4 die. It is larger then all the Floating Point, MMX and SSE hardware together. It is not only big but it also consist mostly out of very timing critical optimized macro cells laid out by hand. It takes a lot of time and effort to change the scheduler. We've looked to it in detail and concluded that it has mainly remained unchanged on Prescott's die. This means that the maximum uOp throughput remains six per cycle using the same dispatch ports as the Pentium 4. In pratica hanno aggiunto due ALU modulari per calcoalre i 32 bit più alti...pena una latenza più alta per le istruzioni a 64 bit... |
![]() |
![]() |
![]() |
#51 |
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
Quindi le istruzioni a 64 bit sono pipelined a 16 bit ma solo su una delle due fast ALU... un solo thread alla volta... bene...
![]() |
![]() |
![]() |
![]() |
#52 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ci siamo tolti un altro sassolino dalla scarpa...
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#53 |
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
Vedo che anche tu reputi l'architettura e l'implementazione dell'A64 "leggermente" migliore di quella del P4...
![]() |
![]() |
![]() |
![]() |
#54 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Generalmente sì, fatta eccezione per alcuni campi applicativi (SETI sicuramente, mentre per compressione video e 3D in alcuni casi).
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:59.