Hardware

Multiple Instruction, Single Data

In the area of computing, MISD stands for Multiple Instruction, Single Data. MISD is one of the four parallel computing architectures that fall under Flynn’s taxonomy. The other three are SISD (Single Instruction, Single Data), SIMD (Single Instruction, Multiple Data) and MIMD (Multiple Instructions, Multiple Data). MISD is a type of parallel computing architecture where multiple processing units process only a single data stream, but each processing unit works independently on different sets of instruction streams belonging to that one data stream.

In 1966, M.J. Flynn classified the forms of parallel computer architecture into four groups which is based on the number of instructions and data items and the concurrency in processing sequences (or streams), data, and instructions. The core of systems implementing parallel computing are: the control unit; the processing element or the processor; and the memory. Depending on the type of architecture, a system may use a single or multiple processors and a shared or distributed memory.

In parallel computing, a job is broken down into parts, and the parts are broken down into a series of instructions. The instructions from each part are executed on different CPUs simultaneously and the parts are executed concurrently.[1]

How MISD Works

In MISD, there are multiple processing elements that have their own control unit and local memory which enables each processor to handle instructions independently. To speed up the problem-solving process, the problem is divided into sub-problems and each sub-problem has its own set of programs or instruction streams. Different instruction streams are fed to the control unit of each processor and in turn, the control units send the instruction streams to the processors. Each processor therefore operates on the data independently and processes the instruction streams asynchronously. In most cases, the output of one processor becomes an input of the next processor which means the processors are executing different programs or solving different sub-problems of the main problem.

Diagram Description automatically generated

Image Source: Java T Point

How MISD Differs from Other Classes

Each computer system that falls under Flynn’s classification handles the instructions and data streams differently. Here’s an overview of the other three computer system classes in Flynn’s taxonomy. Based on their descriptions, you will see how each differs from MISD.

SISD (Single Instruction, Single Data)

As the name implies, there is only one instruction and one data stream for SSID computer system. This is a uniprocessor computer which is also known as a sequential computer because the instructions are processed in a sequential manner. The primary memory stores the data and instructions while the control unit decodes the instructions and then sends the instructions to the processor. This type of architecture is mostly found in conventional computers, minicomputers, and workstations.

Diagram Description automatically generated

Image Source: Java T Point

SIMD (Single Instruction, Multiple Data)

Unlike SISD, this computer system has multiple processors. The processors are executing a single instruction on different data streams. There is one memory and one control unit that retrieves the data from the memory and sends the same instructions to all the processing elements. Although the processors receive the same instructions from the control unit, they operate on different items of data. This type of architecture is usually implemented on computers or applications used in scientific computing such as Cray’s vector processing machine, where multiple vectors and matrices are involved.

Diagram Description automatically generated

Image Source: Java T Point

MIMD (Multiple Instruction, Multiple Data)

In this parallel computing model, multiple processors which have their own control unit but may not necessarily have their own memory module.  Each processor executes a separate set of instructions and data streams which make MIMD machines capable of handling any type of application. There are two categories in MIMD based on the type of memory used – shared-memory MIMD and distributed-memory MIMD.

Shared-memory MIMD – the processors are connected to a single memory. Communication between processors is through the global memory, therefore all processors have access to it. All transactions and modifications of data stored in the global memory are visible to all processors.

Distributed-memory MIMD – each processor has its own memory which stores the data. The data stored on the processor’s local memory is not visible to all processors. Since the memory is not shared, communication between processors goes through the Inter Process Communication (IPC) channel.

Diagram Description automatically generated

Image Source: Java T Point

Where is MISD Used?

While the other classes are used in generic computer systems, MISD is more theoretical and not practically used in many applications. It was implemented in systolic arrays which is an ideal system for applications such as artificial intelligence, image processing, pattern recognition, and other tasks that mimic animal brains’ processing. In systolic arrays, the processor reads the data from another processor, performs an operation, and sends out an output that will be used by another processor. The general structure of systolic arrays reflects that of MISD architecture. However, there is an argument as to whether MISD is indeed the architecture behind systolic arrays since the input data is typically a vector and not a single data value. Still, others would argue that an input vector is considered a single dataset which qualifies systolic arrays as MISD machines. Whatever the case, systolic arrays remain as the classic example of MISD architecture.

MISD is also known as the architecture behind Space Shuttle flight control systems because of its better scaling and efficient use of computational resources.

Generally, MISD architecture is rarely used and only a few machines are built using this architecture. Most of these systems are not available commercially.

Conclusion

MISD is one of the four parallel computing architectures classified by M.J. Flynn where multiple processing elements process different sets of instruction streams from a single data stream. Each processor has its own control unit and memory, and the processing elements are processing instruction streams independently. Among the four classes, MISD is the least used type of architecture with only two prominent examples of applications where it is used – systolic arrays and Space Shuttle flight control systems. Even to this day, not a lot of applications use MISD, but it is especially useful for highly specialized applications.

Sources:

[1] Geeks for Geeks. Computer Architecture | Flynn’s taxonomy. January 6, 2020. https://www.geeksforgeeks.org/computer-architecture-flynns-taxonomy/. Accessed March 22, 2022

About the author

Glynis Navarrete

A freelance blogger who loves to write about anything related to technology. Born and raised in the Philippines and worked in Singapore for eight years as Technical Support for a wide range of IT equipment. Took a dive into the world of freelancing and now enjoying doing what I’m passionate about while not losing touch with technology.