SIMD(Single Istruction Multiple Data), 即单条指令处理多个数据。是在通用处理器上对程序性能进行优化的利器,尤其在进行大量数据进行相同操作时,更能凸显优势,在Intel X86家族中主要有MMX/SSE/SSE2等指令集构成。
memcpy函数即从源地址向目的地址复制一块数据,利用SIMD对其优化有很好的效果。如普通汇编指令 mov eax,ebx一次能复制两个字节的数据,而MMX指令 movq mm1,mm2可以复制8个字节的数据,mm1,mm2分别为MMX指令寄存器为64位,而SSE指令movdqa xmm1,xmm2一次复制16个字节
所以,用16字节内存对齐,可以取得更好的效果。