SIMD and MIMD are the two different types of computer organizations classified by the Michael Flynn based on the number of the data and instruction streams. The major difference between SIMD and MIMD is clear by their names only, the SIMD (Single Instruction Multiple Data Stream) computers can carry out single instruction over multiple data streams. As against, MIMD (Multiple Instruction Multiple Data Stream) computer organization can contain several instructions operating on multiple data streams.
The main intention of this classification is to classify the parallel processing. It works by considering the internal architecture of the processor, starting from the interconnection structure among processors or flow of information through the systems.
Before understanding the different architectures, we must understand what is a data stream and instruction streams. A data stream is nothing but a set of data comprising input, temporary results which are often used by the instruction stream are arranged in a sequence. Similarly, an instruction stream is a group of instructions organized in a sequence as executed by the machine.
Content: SIMD Vs MIMD
|Basis for comparison||SIMD||MIMD|
|Expands to||Single Instruction Multiple Data||Multiple Instruction Multiple Data|
|Programming and debugging||Synchronous||Asynchronous|
|Number of decoders||Single||Multiple|
|Performance and complexity||Simple architecture and moderate performance||Complex and performs efficiently|
Definition of SIMD
SIMD stands for Single Instruction Multiple Data Streams which is a form of parallel architecture categorised under Flynn’s classification. In this architecture, a single instruction is applied to a group of the data stream or distinct data at the same time. It has a single control unit that is used to evoke several isolated processing units. SIMD assists vector processing where a single control unit provides guidance for functioning over all of the execution units. All the execution units accept the same instruction from the control unit but perform on separate elements of data. The shared memory unit is divided into modules so that it can interact with all the processors simultaneously.
Advantages of SIMD
- The creation, interpretation and debugging of the programs is done in an easier way due to single instruction stream and absolute synchronization of SIMD.
- Provides effective inter-process communication by employing implicit synchronization. It uses “send” and “receive” commands to acknowledge the receiver who send it, why it was sent and when to read it, rather than identification protocols.
- It can overlap control flow instructions and multiple scalar operations over the CU.
- Requires less memory as the single copy of the instruction is stored in the system memory.
- The single instruction decoder is needed which reduces SIMD overall cost.
Definition of MIMD
As the name suggests the MIMD (Multiple Instruction Multiple Data Stream) involves computers having multiple processing units, instruction streams and data streams. This architecture applies multiple instructions over different data simultaneously. MIMD machines are considered as the most complex configuration but it also ensures efficiency. It provides high concurrency where in addition to the concurrent operation of processors, multiple processors are also executed in the same time frame concurrent to each other. It efficiently works with shared and distributed memory model.
Advantages of MIMD
- Provides high flexibility by employing multiple threads of control.
- Facilitates efficient execution of the conditional statements (i.e., if-then-else) because the processor is independent and can follow any random decision path.
- The asynchronous property of MIMD can speed up the execution rate of instructions which take an indefinite amount of time.
- Does not require additional CU and hence do not have supplementary cost.
Key Differences Between SIMD and MIMD
- SIMD follows synchronous processing where the processing element is operated over the single program. On the other hand, MIMD incorporated an asynchronous mechanism for operating processing elements over the numerous communication program.
- In MIMD each processing elements stores its individual copy of the program which increases the memory requirements. Conversely, SIMD requires less memory as it stores only one copy of the program.
- The cost of SIMD is low due to less demand for devices like a decoder while MIMD needs one decoder for each processing element.
- MIMD is more complex and efficient as compared to SIMD.
The performance of SIMD and MIMD easily gets affected by implementing CU overlap depending on its uniformity. The SIMD performs better in case of uniform CU (Control Unit) overlap while in the non-uniform CU overlap MIMD is more effective.