What is the meaning of the acronyms SISD, SIMD, MISD, MIMD? What is your relationship with programming?

Asked

Viewed 5,602 times

7

In some answers and questions I see quotations to these acronyms. They usually fit in the following table:

                     | Single data | Multiple data
Single instruction   |  SISD       | SIMD
Multiple instruction |  MISD       | MIMD

I’d like to know:

  • what these "single/multiple instructions mean"?
  • and that "single/multiple data"?
  • how these concepts affect when programming?

Examples of use

1 answer

3

This table is known as Flynn’s scheme and tries to categorize parallel computers --- there are other schemes like this, but in general they end up being inaccurate (this one too).

It is based on two concepts: instruction flow and data flow. The instruction stream counts how many instructions are executed, but the data stream consists of the operand set of these functions.

In general these flows are independent and therefore we can combine them in the way we want, which results in the 4 types of the scheme.

1. SISD - Single Instruction - Single Data

SISD is the representation in Flynn’s scheme of von Neumann’s classic computer. It has only one instruction and data stream, so only one operation is done at a time --- purely sequential.

2. SIMD - Single Instruction - Multiple Data

Machines of this type have only one instruction flow, but have multiple calculation units. This means that the machine is able to perform the same instruction on a data set simultaneously.

There is a classic example for this type: vector processors, but these are increasingly rare. But the concept is more alive than ever, present in processors conventional through the use of the SSE instructions of modern processors (from Pentium III forward), in addition to the video cards that are specialized in this type of operation --- an operation done in an image is the same operation done in various data (different points of the image).

3. MISD - Multiple Struction - Single Data

MISD machines operate several different instructions on a single data. It is almost a completely theoretical model with no real example (although some people use the instruction pipeline as an example of MISD machine).

4. MIMD - Multiple Data - Multiple Data

They are the machines that have independent Cpus, where each unit acts with different instructions in different data. Processors with more than one core fall into this model.


  • what these "single/multiple instructions mean"?

It is the number of different instructions that are executed at the same time.

Consider the von Neumann machine, in which the next instruction that will be executed is pointed out by the PC register (program counter), so the executed instruction is a single one. If you have more than one PC logger, case of processors of type multi-core where each kernel has its own PC, the executed instructions are multiple and each is pointed by a different PC.

  • and that "single/multiple data"?

Analog, is the amount of operands that are used by the function.

Again considering von Neumann’s machine, if you want to multiply an integer vector by a constant you need to multiply element by element by this constant. On a SIMD machine this multiplication occurs simultaneously, where the instruction performed is the same on all processing units.

  • how these concepts affect when programming?

It’s a complicated question. Theoretically you don’t need to know any of these concepts, since everything can be done using a SISD machine.

Maas, we are thirsty for performance and seek to solve problems as quickly as possible. Knowing these concepts allows you to have a wider range of tools when developing an application and, consequently, develop a more efficient program.

  • Bring a myth to this Oscar! It helped me a lot in my studies, thanks for the contribution Felipe!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.