The Intel Pentium II processor brought along the MMX technology (unofficially called the MultiMedia eXtension, however, such an alias has never been used in Intel documentation), which provided us with the possibility of working with packed integer data using 64-bit registers. Despite the obvious benefit, there were at least two disadvantages:
- We could process integer data only
- The MMX registers were mapped onto the registers of the floating-point unit (FPU)
While being better than nothing, the MMX technology still did not provide enough computational power.
The situation changed a lot with the introduction of the Pentium III processor with its Streaming SIMD Extension with its own set of 128-bit registers and instructions, allowing a wide range of operations to be performed on scalar or packed bytes, 32-bit integers, 32-bit single precision floating-point values, or 64...