INTEL公司的MMX处理器能成倍增加并行处理的整形数据,一次能处理64位。与一次最多处理32位的纯粹的INTEL结构代码相比,它能加快处理3D图像中的像素点。因此,MMX技术可提供更高层次的速度和更高质量的图像。
虽然MMX技术也能适用于8位像素点的处理,但他最适合于16位或24位的彩色处理。INTEL及其它一些开发者已经使用MMX技术编写了3D处理代码。在alpha混合,Gourand阴影,Z-缓冲,像素点色深转化,映像复制,双线性过滤,结构映射,程序结构化等方面,MMX技术已体现出了优越性。MMX技术的运算在处理16位色或24位色时,可以加快1到3倍。但在处理8位色时,只能提高速度30%或更少。这些加速来自于:
并行的SIMD(单指令多数据)处理
通过MOVQ指令的8字节存储
“饱和”算法:这使得能通过加上一个小数(0x010101)来增亮一个白点(在24位的RGB中用FFFFFF表示)从而得到另一种白色,而不是黑色(000000)。
多重加法指令(PMADD)在一个简单时钟周期中执行。
封装好的比较运算(PCMP),这使得能允许从许多运算法则中移出数据相关的分支
为了更好的执行,使用MMX技术的SW设计者必须小心地注意与系统的带宽相和谐。PCI总线和图形芯片的存在阻碍了与显卡之间的数据吞吐能力, 使写入的速度降低到大约80MB/S。对于读来说,会更慢。同样,当前的主存系统流量一般来说要比所能承受的带宽慢160MB/S。
然而,CPU外带的缓存的速度是这种速度的2倍 。而且,内部缓存的速度更是主存速度的10倍。 代码编写者应该尽量使他们所需的数据留在缓存中。 而且,应避免从显卡中读数据(通过PCI总线)。即使新的PCI总线能显著地加快从CPU中读写数据的速度,也应避免从显存中读数据。AGP总线能通过图形集成电路和CPU更便利地以高带宽共享主存区的内容。
建造一个为MMX技术服务的3D应用软件就像建一个3D硬件加速器一样 ,都是使用16位或24位的格式。在一些情况下,软件处理器比直接的3D硬件运行得快,而且显然更灵活。在其他的一些情况下 ,使用软件能使得前景事物与特殊效果结合的更紧,而后景处理则交给硬件完成。 硬 件增加了在建立注册表和同步器上的某些费用, 也理所当然地拥有了到显存更高的带宽。因为存储器和加速器都在PCI总线(其它总线也一样)的同一端。