Il Pentium MMX (sigla di progetto P55C o 80503) è una variante dell'architettura Pentium che Intel ha introdotto nel 1996 per aumentare le prestazioni su alcune applicazioni, nella fattispecie quelle multimediali.
La sigla MMX (MultiMedia eXtension) infatti indica la presenza di alcune istruzioni macchina aggiuntive di tipo SIMD (Single Instruction Multiple Data). Le istruzioni SIMD applicano la stessa operazione (che può essere ad esempio una somma, o una moltiplicazione) a più dati simultaneamente (8 numeri interi da 8 bit ciascuno, oppure 4 numeri interi da 16 bit ciascuno, o ancora 2 numeri interi da 32 bit ciascuno).
Storia e descrizione
Per semplificare la progettazione gli ingegneri Intel decisero di preservare la vecchia architettura alla quale venne aggiunta l'unità MMX che operava tramite un cambio di contesto del processore. L'unità MMX utilizza i registri IA-32 della FPU. Questa infelice scelta progettuale impediva di utilizzare istruzioni in virgola mobile e istruzioni MMX contemporaneamente. Quando il processore incontrava istruzioni per la FPU doveva salvare i dati MMX per eseguire le istruzioni dell'FPU. Per massimizzare le prestazioni i programmatori utilizzavano il processore in un solo dei due modi possibili, isolando le parti MMX che venivano eseguite in modo esclusivo in modo da evitare il più possibile i lenti cambi di contesto.
Un altro difetto delle istruzioni MMX è che erano istruzioni in grado di operare solo su dati interi. I registri a 64 bit della FPU venivano utilizzati per memorizzare 2 dati a 32 bit oppure 4 dati a 16 bit o 8 dati a 8 bit.
Assieme a queste istruzioni aggiuntive, il Pentium MMX si distingue per una pipeline a 6 stadi (invece di 5), una branch prediction ereditata dal Pentium Pro ed una memoria cache di I livello raddoppiata (32 kBytes invece di 16) rispetto al Pentium tradizionale. L'aumento della cache offre un guadagno prestazionale, in applicazioni non ottimizzate MMX, di circa il 7%. Il software scritto per trarre vantaggio dalle istruzioni MMX offre invece un guadagno prestazionale che va mediamente dal 10% al 30%.