SIMD Instruction Sets

SIMD — Introduction

SIMD (Single Instruction, Multiple Data). SIMD describes any extension to microprocessors that allow it to operate on data in parallel. Some common SIMD extensions are MMX, 3DNow!, SSE, and AltiVec (related to VMX). There are many others, but these are the most common ones found in ordinary PCs.

Most SIMD instruction sets have gone through a few revisions since their initial implementation. This gives us extended sets of each variety, including MMX, extended MMX, 3DNow!, 3DNow!2 (sometimes called 3DNow! Professional or 3DNow!+), SSE (also known as Katmai New Instructions or simply KNI), SSE2 (also known as Willamette New Instructions or simply WNI), SSE3 (also known as Prescott New Instructions or simply PNI), and SSE4 (also known as Tejas New Instructions or simply TNI). Later AVX grew as another extension for more parallelism.

In 2008, Intel added AES NI, CLMUL (which is a subset of AES NI), and AVX, a radical departure from SSE.

In 1997, Cyrix extended the MMX Instruction set and called it EMMX.

With their XScale line of mobile processors, Intel developed a variation of MMX Called WMMX, and later WMMX2.

ARM added NEON as their processors became more media-centric with consumers.
Styles: Default · Green · Sianse