What Does Multiple Instruction, Multiple Data Mean?
Multiple Instruction, Multiple Data (MIMD) refers to a parallel architecture, which is probably the most basic, but most familiar type of parallel processor. Its key objective is to achieve parallelism.
MIMD architecture includes a set of N-individual, tightly-coupled processors. Each processor includes memory that can be common to all processors, and cannot be directly accessed by the other processors.
MIMD architecture includes processors that operate independently and asynchronously. Various processors may be carrying out various instructions at any time on various pieces of data.
Techopedia Explains Multiple Instruction, Multiple Data
There are two types of MIMD architecture: Shared Memory MIMD architecture and Distributed Memory MIMD architecture.
Shared Memory MIMD architecture characteristics:
Creates a group of memory modules and processors.
Any processor is able to directly access any memory module by means of an interconnection network.
The group of memory modules outlines a universal address space that is shared between the processors.
A key benefit of this architecture type is that it is very easy to program since there exists no explicit communications among processors with communications addressed through the global memory store.
Distributed Memory MIMD architecture characteristics:
Clones the memory/processor pairs, known as a processing element (PE), and links them by using an interconnection network.
Each PE can communicate with others by sending messages.
By providing every processor its own memory, the distributed memory architecture bypasses the downsides of the shared memory architecture. A processor may only access the memory that is directly connected to it.
In case a processor requires data that reside in the remote processor memory, then the processor should send a message to the remote processor, requesting the required data.
Access to local memory could happen way quicker as opposed to accessing data on a remote processor. Furthermore, if the physical distance to the remote processor is greater, access to the remote data will take more time.