Professional Documents
Culture Documents
MMX agreg 8 nuevos registros a la arquitectura, conocidos como MM0 al MM7 (en
adelante llamados MMn). En realidad, estos nuevos registros son meros alias de los
registros de la pila de la FPU x87. Por ello cualquier cosa que se haga con la pila de la FPU
afecta a los registros MMX. A diferencia de la pila de coma flotante, los registros MMn son
fijos en vez de relativos, por lo que pueden accederse aleatoriamente.
Cada uno de los registros MMn es un nmero entero de 64 bits. Sin embargo, uno de los
conceptos principales del juego de instrucciones MMX es el concepto del tipo de datos
compactados (packed data types), que significa en lugar de usar el registro completo para
un solo nmero entero de 64 bits (palabra cudruple o quadword), se puede usar para
almacenar dos enteros de 32 bits (palabra doble o doubleword), cuatro enteros de 16 bits
(palabra o word) u ocho enteros de 8 bits (byte u octeto).
Para simplificar el diseo y evitar modificar el sistema operativo para preservar el estado
adicional a travs de los interruptores de contexto, MMX reutiliza los ocho registros
existentes de la FPU. Por ello es muy difcil trabajar con la FPU y MMX a la vez. Para
maximizar el rendimiento, los programadores deben utilizar el procesador exclusivamente
en un modo o el otro, retrasando todo lo posible el lento paso de un modo a otro.
MMX agreg 8 nuevos registros a la arquitectura, conocidos como MM0 al MM7 (en
adelante llamados MMn). En realidad, estos nuevos registros son meros alias de los
registros de la pila de la FPU x87. Por ello cualquier cosa que se haga con la pila de la FPU
afecta a los registros MMX. A diferencia de la pila de coma flotante, los registros MMn son
fijos en vez de relativos, por lo que pueden accederse aleatoriamente.
Cada uno de los registros MMn es un nmero entero de 64 bits. Sin embargo, uno de los
conceptos principales del juego de instrucciones MMX es el concepto del tipo de datos
compactados (packed data types), que significa en lugar de usar el registro completo para
un solo nmero entero de 64 bits (palabra cudruple o quadword), se puede usar para
almacenar dos enteros de 32 bits (palabra doble o doubleword), cuatro enteros de 16 bits
(palabra o word) u ocho enteros de 8 bits (byte u octeto).
Para simplificar el diseo y evitar modificar el sistema operativo para preservar el estado
adicional a travs de los interruptores de contexto, MMX reutiliza los ocho registros
existentes de la FPU. Por ello es muy difcil trabajar con la FPU y MMX a la vez. Para
maximizar el rendimiento, los programadores deben utilizar el procesador exclusivamente
en un modo o el otro, retrasando todo lo posible el lento paso de un modo a otro.
Dado que los registros MMX son slo alias de la pila FPU, y que cada uno de los registros
de la pila tiene un ancho de 80 bits, los 16 bit superiores de los registros de pila no son
utilizados por MMX, y esos bits se ponen todos a 1, aparecen como NaN o infinitos desde
el punto de vista de la coma flotante. Esto hace ms fcil decir si se est trabajando con
datos en coma flotante o en MMX.
Otro problema para MMX es que slo soporta operaciones con nmeros enteros. Cada uno
de los ocho registros de 64 bits del vector MMX, alias de los ocho registros existentes de
coma flotante, pueden representar 2 nmeros de 32 bits, cuatro de 16 u 8 de 8 bits. Durante
el diseo original del i860, el uso de matemticas de vector entero tena sentido (las
operaciones 2D y 3D requieren de ambas), pero cuando esta funcionalidad se pasa a las
GPUs, MMX pierde inters y la coma flotante se vuelve mucho ms importante. Por otra
parte, sus nuevas operaciones aritmticas incluyen las operaciones aritmticas de
saturacin, lo que podra acelerar perceptiblemente el procesamiento digital de seales. Por
ello mejora el rendimiento de la multimedia.
Intel solucion esos problemas ms adelante con SSE, un conjunto de instrucciones SIMD
ms ampliado con soporte de coma flotante de 32 bits y un sistema adicional de vectores de
registros de 128 bits que hacen ms sencillo usar SIMD y FPU al mismo tiempo. SSE es a
su vez ampliado por SSE2, que tambin extiende las instrucciones MMX que pueden
operar con registros XMM de 128 bits y recientemente con SSE3, introducido con
la Intel Core Microarchitecture. Incluir cualquiera de estos conjuntos implica incluir
MMX.
Intel y su mayor competidor AMD llegaron a un acuerdo de compatibilidad por el que ste
ltimo sac al mercado microprocesadores con el juego de instrucciones MMX, los
procesadores AMD K6. Ms tarde AMD dara un paso ms, aadiendo a sus procesadores
un nuevo juego de instrucciones para operaciones en coma flotante: 3DNow!.
PENTIUM MMX
El Pentium MMX es una mejora del Classic al que se le ha incorporado un nuevo juego de
instrucciones (57 para ser exactos) orientado al mejor rendimiento en aplicaciones
multimedia, que necesita mover gran cantidad de datos de tipo entero, como pueden ser
videos o secuencias musicales o graficos 2D.
Sin embargo, aun en el caso de que no utilicemos tales instrucciones, notaremos una mejora
debido a que, entre otras mejoras, dispone de un cach que es el doble de la Pentium
"normal", es decir 16 Kb para datos y 16 para instrucciones.
La gama MMX empieza en los 133Mhz, pero slo para portatiles, es decir la versin SL.
Para ordenadores de sobremesa la gama empieza en los 166Mhz., luego viene el de 200 y
finalmente el de 233 que utiliza un multiplicador de 3.5 y que adems necesita de algo ms
de corriente que sus compaeros.