处理更多精彩——Intel多媒体指令集回顾
1997年,Intel公司于处理器中引入Single Instruction Multiple Data(SIMD)单指令多数据概念。顾名思义,它是通过一组控制器控制多组平行的微处理单元,以达成提升数据处理能力的目的。Multi Media eXtension(MMX)是Intel公司的第一代多媒体指令集,对应产品亦随之被命名为Pentium MMX,其共拥有57条指令,优点是能够大幅增强处理器的多媒体运算能力,但是由于MMX指令集与处理器内部的浮点寄存器不能并行工作,因此这在一定程度上影响了其绝对效能。
Intel公司于1999年发布了其第二代多媒体指令集——Streaming SIMD Extensions (SSE),对应产品为Pentium III处理器。SSE多媒体指令集增加了对于八组128位XMM0-XMM7寄存器的支持,每组寄存器能够存储四组单精度浮点数。虽然处理器内部的浮点寄存器再一次被新的多媒体指令所占用,但是两者之间的运算模式切换不再成为必须,只是不能同时进入处理器的处理线而已。
Intel公司的第三代多媒体指令集——Streaming SIMD Extensions 2 (SSE2)于2000年发布,共新增144条指令,对应产品为NetBurst微架构的Pentium 4处理器,其不但加入了64位双精度浮点运算指令和整数运算指令,以及降低处理器对于Cache缓存延迟的控制指令,更是完全解决了多媒体指令占用处理器浮点寄存器的问题。
2004年,Prescott内核的Pentium 4处理器将Intel公司的第四代多媒体指令集——Streaming SIMD Extensions 3 (SSE3)带给世人,共新增13条指令。SSE3多媒体指令集加入水平式整数寄存器,可对多重数据同时进行加法或减法运算,使得处理器能够大量执行DSP数字信号以及三维运算,浮点数值转换为整数数值亦不再需要进行运算模式切换,避免了执行等待所造成的运算效能损耗。
Supplemental Streaming SIMD Extension 3(SSSE3)多媒体指令集伴随着Intel Core微架构而生,共新增16条指令,其既是对于第四代多媒体指令集SSE3的补充,又是全新SSE4的子集,进一步增强了处理器对于多媒体、影像以及网络应用的处理能力。