SISD, SIMD, MISD, and MIMD: Easily Explained!

Ramzi Baaguigui
2 min readAug 20, 2023

During the 60s, when M.J. Flynn studied parallel computing research efforts, he found a simple computer classification that is still used today.

First, we define a computer program as a set of instructions applied to a set of data items in a certain predefined order.
So, the latter-mentioned classification classified computers from an instruction-data interaction point of view.

Photo by Laura Ockel on Unsplash

The instruction and data items can vary in the concerned dimension as being single or multiple.
Explicitly said, we have the following four classes:
- single instruction single data (SISD)
- single instruction multiple data (SIMD)
- multiple instructions multiple data (MIMD)
- and finally multiple instructions single data (MISD).

SISD:

this refers to the case when we have a single instruction applied to a single data item at a time. This is basically the manner in which a novice programmer learns to think in the first place.

SIMD:

this refers to the case when we have a single instruction that can be applied to multiple data items at a time while conserving the correctness of the intended result. This is the model found in today’s GPUs. A simple example can be taken from the image-processing era where we add a value of 1 to all the red channel values of a certain image. In this case, the instruction is ADD 1, while the data items are all the image pixels’ red-channel values.

MIMD:

this refers to the case when we have multiple independent instruction streams applied on multiple data streams that are independent most of the time. If you are using two or more applications at the same time on your device, then your computer is surely a MIMD machine.

MISD:

this refers to the case when we have an independent instruction stream applied to a single data item. This is a rarely mentioned classification, textbooks bring attention to the point that no processor of this class has been made commercially available, the term MISD is mentioned only five times in Computer Architecture: A Quantitative Approach. However, the exact text indicated that the MISD model has been adopted in the Microsoft Azure FPGA-based machine-learned webpage scoring where a large number of independent instruction streams operate in parallel on a single document to maintain the Bing search engine response latency within the target bounds.

The problem being solved defines the most suitable approach of the previously mentioned ones. Sometimes, there is no best approach and the choice will be made according to the problem’s environmental constraints.

It is worth noting that many currently commercialized processors are a hybrid of SISD, SIMD, and MIMD. But who knows? the upcoming years might bring the need for MISD to become commercialized in the hardware market!!!

--

--

Ramzi Baaguigui

Computer Science Student, Spring & Android Developer, Machine Learning & Signal Processing Explorer, Future Researcher & Educator.