MMX是一种single instruction,multiple data(SIMD)指令集。MMX包含8个64位寄存器MM0-MM7
SSE是针对x86架构的SIMD指令集,包含70条指令。针对MMX只支持整数操作的缺点,SSE添加了8个128位寄存器XMM0-XMM7,即可以使用一条指令实现2个双精度和4个单精度浮点数的并行操作。由于MMX共享原先就有的FPU寄存器,而SSE使用在微处理器中新添加的8个128位寄存器,所有SSE只有在支持它的操作系统中才有作用,例如Win98或Linux Kernel2.2后的OS版本。
SSE2是对SSE的扩展,添加了144条新指令,包括双精度浮点型新的数学计算指令并扩展MMX指令以使它们可以运行在128位XMM寄存器。
SSE3又添加了13条指令,主要是寄存器内的横向操作,以及将浮点数转化为整数的操作。例如
HADDPD - (Horizontal-Add-Packed-Double)
Input: { A0, A1 }, { B0, B1 }
Output: { A0 + A1, B0 + B1 }
阅读(504) | 评论(1) | 转发(0) |