Quote:
Originariamente inviato da bjt2
Guarda che la RAM nelle architetture AMD potrebbe fare da collo di bottiglia a una frequenza più bassa di quella INTEL: ricordati che le CPU AMD possono eseguire fino a 9 microistruzioni per ciclo di clock e fare il fetch delle istruzioni fino a 32 bytes per ciclo. Invece INTEL si ferma a 5 microistruzioni e 16 bytes per ciclo. Quello che "salva" Penryn e Nehalem sono:
1) Caches con latenze inferiori (sopratutto la L2).
2) Algoritmi di prefetching migliori (ora non so se nello Shangai/Deneb hanno raggiunto l'efficacia INTEL), sopratutto il Nehalem, perchè quello del Penryn era talvolta troppo aggressivo da saturare la RAM richiedendo roba inutile, invece quello del Nehalem ora è più inteligente.
3) Branch prediction migliori (anche AMD lo ha migliorato, non ho dati per dire se ha raggiunto INTEL anche in questo campo).
4) Un tweak molto importante che velocizza i loop piccoli che sono molto comuni nei programmi (Che io sappia AMD non ce l'ha ed è anche per questo che legge 32 bytes per ciclo dalla cache istruzioni: per compensare questa mancanza).
5) Un riordinamento più avanzato dei load e store.
6) Un decoder che può decodificare più istruzioni per ciclo di clock (4 o 5 a seconda se fa la fusione o no, contro 3 di AMD)
AMD dalla sua aveva solo una cache TLB più grande e efficiente, utile per carichi molto esosi di memoria, e una virtualizzazzione migliore, visibili per lo più in ambito server... INTEL nel Nehalem ha finalmente messo una cache L2 TLB, e se la gioca con AMD, ma il penryn non ce l'ha.
|
una cosa che c'entra si svincio in questo ragionamento e che non sono ancora riuscito a chiarirmi, per frenare questo collo di bottiglia dato dalle ram, è meglio prediligere latenze basse e frequenze più basse o latenze più alte ma a frequenze più alte, si dovrebbe sapere di certo per i K10 attuali almeno, per i 45nm si vedrà nei test che ci passerà il buon Paolo