SIMD ( English single instruction, multiple data - single command stream, multiple data stream , OKMD ) - the principle of computer computing, which allows for parallelism at the data level. One of the classes of computing systems in the Flynn classification .
| Single stream of commands (single instruction) | Many command streams (multiple instruction) | |
|---|---|---|
| Single data stream (single data) | Sisd (OKOD) | Misd (MKOD) |
| Multiple data streams (multiple data) | SIMD (OKMD) | Mimd (MKMD) |
SIMD computers consist of one command processor (control module), called the controller, and several data processing modules, called processor elements. The control module receives, analyzes and executes commands. If data is encountered in a command, the controller sends a command to all processor elements, and this command is executed on several or all processor elements. Each processor element has its own memory for storing data. One of the advantages of this architecture is that in this case, the computation logic is more efficiently implemented. Up to half of the logical instructions of a conventional processor are associated with controlling the execution of machine instructions, and the rest of them relate to working with the processor’s internal memory and performing arithmetic operations. In a SIMD computer, control is performed by the controller, and “arithmetic” is given to the processor elements.
Vector processors also used the principle of SIMD, with one command vectors up to several thousand elements could be processed.
SIMD Extensions for Various Architectures
Short SIMD instructions (64 or 128 bits) began to appear in general-purpose processors in the 1990s. To varying degrees, the following processor architectures support SIMD extensions or SIMD instructions:
- DEC Alpha - Motion Video Instructions (MVI)
- IBM PowerPC : AltiVec , SPE
- HP 's PA-RISC Multimedia Acceleration eXtensions (MAX)
- Intel : MMX, iwMMXt , SSE , SSE2 , SSE3 , SSSE3 , SSE4.x , AVX , AVX2
- AMD : 3DNow!
- ARC : ARC Video subsystem
- SPARC : VIS , VIS2
- Sun : MAJC
- ARM : NEON
- MIPS : MDMX (MaDMaX), MIPS-3D
A group from IBM, Sony, Toshiba jointly developed an SPU coprocessor for the Cell Processor , whose instruction set used SIMD to a large extent. NXP (Philips) developed several Xetal SIMD processors, which had 320 processor elements working with 16-bit data.
Modern video accelerators ( GPUs ) are usually based on a SIMD architecture with support for vectors of 128, 256 or more bit lengths.
Intel's Advanced Vector Extensions provides a set of SIMD instructions for processing floating point data in 256-bit groups. Intel MIC coprocessors include a 512-bit instruction set.
x86- compatible processors
- MMX - Multimedia Extensions. The commercial name of an additional set of instructions that perform actions specific to the encoding / decoding of streaming audio / video data in one machine instruction. First appeared in Pentium MMX processors .
- MMX Extended is an extended set of MMX instructions used by AMD and Cyrix processors .
- 3DNow! - Expansion of the AMD MMX instruction set starting from AMD K6-2 .
- 3DNow! Extended - extension of the 3DNow! AMD processors starting with AMD Athlon .
- SSE is a set of instructions developed by Intel and first introduced in the Pentium III series processors .
- SSE2 is a set of instructions developed by Intel and first introduced in the Pentium 4 series processors .
- SSE3 is Intel's third SIMD extension, a descendant of SSE, SSE2, and x87. Presented on February 2, 2004 in the Prescott core of the Pentium 4 processor .
- SSSE3 is a set of SIMD instructions used in Intel Core 2 Duo processors .
- SSE4 is the new Intel SIMD extension. It was announced on September 27, 2006 . Introduced in 2007 in Penryn series processors .
- AVX is the announced version of Intel SIMD extension, which was introduced in 2010 in Sandy Bridge architecture processors .
- AVX2
- AVX512
See also
- Flynn's Taxonomy
- Command system
- Command System List
- Command Set Architecture
- X86 architecture extensions