Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.

The dawn of the Intel SSE technology

SergeyKostrov
Valued Contributor II
507 Views

This is a brief historical outlook of the Intel SSE technology and how SEE is supported by different versions
of Microsoft's Visual Studios.

First of all:

SSE - Streaming SIMD Extensions

and

SIMD - Single Instruction Multiple Data

SSE was introduced in 1999, or so,for Intel Pentium III series processors as a response to AMD's 3DNow! technology.

Some time in 1999 Microsoft added a support for SSE inVisual C++ 6.0 ( released in 1998 ) with
a special addon called as Visual C++ 6.0 Processor Pack.

How didsome core SSE header fileslook like13 years ago?

Please take a look at enclosed header files from Visual C++ 6.0 Processor Pack:

emmintrin.h
mmintrin.h
xmmintrin.h

How did a support for SSE evolve over the years?

The following comparison table shows how SEE is supported by different versions of Microsoft's
Visual Studios:

------------------------------------------------------------------------------------------------------------------------------------------------------------
| Header/IDE | VS98 | VS2005 | VS2008 | VS2010 | Notes |
------------------------------------------------------------------------------------------------------------------------------------------------------------
| intrin.h |- | + | + | + | Declarations of platform specific intrinsic functions|
| emmintrin.h|+ | + | + | + | Principal header file |
| mmintrin.h |+ | + | + | + | Definitions and declarations for use with compiler intrinsics |
| xmmintrin.h|+ | + | + | + | Principal header file for SIMD Extensions intrinsics |
| pmmintrin.h| - | - | + | + | Declarations for SSE3 intrinsics |
| smmintrin.h|- | - | + | + | Declarations for SSE4.1 intrinsics |
| nmmintrin.h| - | - | + | + | Declarations for SSE4.2 intrinsics |
| tmmintrin.h| - | - | + | + | Declarations for intrinsic functions ( horizonally packed types ) |
| wmmintrin.h| - | - | + | + | Principal header file for AES and PCLMULQDQ intrinsics |
| immintrin.h| - | - | - | + | Declarations for AVX intrinsics |
-------------------------------------------------------------------------------------------------------------------------------------------------------------

Happy birthday SSE!

0 Kudos
3 Replies
SergeyKostrov
Valued Contributor II
507 Views
For the sake of afairness I also attached another file that Visual C++ Processor Pack installs.
This is a 'mm3dnow.h' header file to support AMD's 3DNow! technology.
0 Kudos
Bernard
Valued Contributor I
507 Views
IIRC in late sixties soviet engineers developed the concept of superscalar processing engine.From the other source I know that the first was Burroughs with its superscalar architecture.Sadly there is no information regarding who pioneered SIMD-like vector units . @Sergey If you are interested here is a link http://www.theregister.co.uk/1999/06/07/intel_uses_russia_military_technologies/
0 Kudos
Bernard
Valued Contributor I
507 Views
>>>@Sergey If you are interested here is a link http://www.theregister.co.uk/1999/06/07/intel_uses_russia_military_techn...>>> Good article in russian about the Vladimir Pentkovsky and his work on Elbrus processors :http://www.ixbt.com/cpu/e2k-spec.html He could be regarded as a "father" of Pentium architecture and designer of SIMD unit by bringing to Intel his vast knowledge from his previous work.
0 Kudos
Reply