HiveBrain v1.2.0
Get Started
← Back to all entries
patternMinor

Differences between SISD, SIMD and MIMD architecture (Flynn classification)

Submitted by: @import:stackexchange-cs··
0
Viewed 0 times
simdarchitecturemimdsisddifferencesbetweenandclassificationflynn

Problem

I have a problem with classifying certain CPUs to the proper classes of Flynn's Taxonomy.

  1. Zilog Z80



According to this article on Sega Retro, Z80 has limited abilities to be classified as SIMD:


a limited ability for SIMD (Single Instruction, Multiple Data) with instructions to perform copy, compare, input, and output over contiguous blocks of memory;

For what I understand, Z80 is usually behaving as a SISD but when it comes to performing thing like copying or comparing Z80 is able to process multiple data using a single instruction.

How should we classify Z80 then? Is the ability to become SIMD processor a voice for or against saying that Z80 implements SIMD architecture?

  1. Intel i5 (Dual core)



Form what I understand, we classify multicore CPUs as MIMD.

Is it as simple as that?

  1. ARM Cortex-A15 (single core)



I'd classify the architecture of this processor as a SIMD model. Wikipedia says that it has superscalar pipeline, but as we know from Why is a superscalar processor SIMD? that multiple pipelines does not imply MIMD model.

Are "modern" single cores usually implementing SIMD model or not?

Solution

Flynn's taxonomy was defined by the great computer architect Flynn in 1960s. Though since that time there is an entire paradigm shift, so today it's better to understand these concepts with a different context. In modern world, parallel computing works by dividing large problems into smaller problems which are then solved at the same time.

Now let's understand Flynn's taxonomy, which says that computers have single (S) or multiple (M) streams of instructions (I) and data (D), leading to four types of computers: SISD, SIMD, MISD, and MIMD.

SISD

In computing, SISD is a computer architecture in which a single uni-core processor, executes a single instruction stream, to operate on data stored in a single memory.

SIMD

The SIMD architecture performs a single, identical action simultaneously on multiple data pieces. Here we have a single control unit (CU) and more than one processing unit (PU). For e.g. a single instruction to fetch multiple files.

MISD

Multiple Instruction, Single Data (MISD) computers have multiple processors. Each processor uses a different algorithm but uses the same shared input data. MISD computers can analyze the same set of data using several different operations at the same time. The number of operations depends upon the number of processors. There aren't many actual examples of MISD computers, for e.g. fault-tolerant computers executing the same instructions redundantly in order to detect and mask errors.

MIMD

It means that parallel units have separate instructions, so each of them can do something different at any given time. While technically it's true that most modern desktop/laptops are MIMD. Using the MIMD, each processor in a multiprocessor system can execute asynchronously different set of the instructions independently on the different set of data units.

Context

StackExchange Computer Science Q#45782, answer score: 7

Revisions (0)

No revisions yet.