Quote:
Originariamente inviato da Banus
Questa è una cosa che non mi è ancora chiara: ho visto da alcune fonti (Arstechnica, Anandtech) che si paga un 10% in spazio per il codice a 64 bit dell'Athlon64, ma non mi è chiaro se è riferito a tutto il codice o a solo alle parti specifiche a 64 bit.
|
A mio avviso questo discorso dovrebbe riferirsi esclusivamente alle parti in cui, appunto, è necessario aggiungere il byte di prefisso (per usare gli altri 8 registri e/o per forzare i 64 bit). Negli altri casi è chiaro che non risulta necessario alcun prefisso.
Quote:
|
Arstechnica parla di un byte di overhead (su 4 del codice a 32 bit) per le istruzioni a 64.
|
Che io sappia la lunghezza media delle istruzioni in un codice a 32 bit si aggira attorno ai 2 byte e non a 4.
Quote:
|
D'altra parte con meno accessi alla memoria mi aspetterei meno istruzioni, che quindi controbilancerebbero l'overhead.
|
E' quel che penso anch'io, e il codice di repne scasb mi sembra che lo dimostri: il codice (lo spazio totale) dovrebbe essere mediamente più "corto".
Quote:
|
Quindi il 10% è ottenuto dal confronto fra codici compilati (= test), o è una stima basata sulla ricorrenza media di un certo tipo di istruzione?
|
Penso che sia una stima, ma vedi sopra: o si tratta di una stima errata oppure l'argomento è ristretto solamente nei casi d'uso di cui sopra (registri R8-15 e/o 64 bit).