Tecnologia I - Advanced Memory Prefetcher, SSE4a
I nostri utenti più attenti si ricorderanno che Intel ha introdotto le prime estensioni SIMD sotto forma del set di istruzioni MMX. Come contromossa, AMD implementò la caratteristica "3DNow" nei suoi processori. Come risultato di questa mossa, il software non beneficiava dello stesso incremento prestazionale con entrambi i processori, poiché il codice doveva essere ottimizzato per vantaggiarsi delle estensioni. Fortunatamente, questo tipo di competizione non c'è più, e le estensioni SSE, SSE2 e SSE3 utilizzate da AMD e Intel sono identiche. Tuttavia, i due produttori ora stanno prendendo nuovamente delle strade divergenti. Intel, con il core Penryn, ha introdotto il set di istruzioni SSE4.1, mentre AMD ha implementato nell'architettura Star le SSE4a (conosciute come SSE128).
L'unità SSE del Phenom ha ora un'ampiezza di 128 bit, mentre quella dell'Athlon era di 64 bit. Inoltre, AMD ha aggiunto quattro nuove istruzioni, chiamate EXTRQ/INSERTQ e MOVNTSD/MOVNTSS, più due istruzioni, LZCNT/POPCNT, utilizzate principalmente per caricare operazioni e funzioni di manipolazione dei bit.
Sfortunatamente, le Intel SSE4.1 e le AMD SSE4a sono incompatibili tra loro - un fatto che creerà problemi ai programmatori e quindi anche agli utenti.
Il memory prefetcher avanzato può caricare dati direttamente dalla RAM alla cache L1 del core senza dover passare dalla cache L2. In questo modo, i dati possono essere caricati all'interno del processore più velocemente.
Simultaneamente, ciò permette di abbassare il carico della cache L2, che può "bufferizzare" i dati più efficientemente, incrementando le prestazioni generali.
Le istruzioni X86 sono lungo tra i tre e i quindici byte. Rispetto il core Athlon 64, il buffer dati per le istruzioni di fetching è stato aumentato a 32 byte, permettendo al core di processare più istruzioni simultaneamente. Come potete vedere dal diagramma, possono essere gestite tre istruzioni contemponearamente, dipendentemente dalla lunghezza dell'istruzione.