Flynn’s Classification,
Introduction to multicore
architecture
Module 6.2
Parallel Processing
Parallel processing/computing is a computing where the jobs are
broken into discrete parts that can be executed concurrently.
Each part is further broken down to a series of instructions.
Instructions from each part execute simultaneously on different CPUs
Parallel systems deal with the simultaneous use of multiple computer
resources that can include:
a single computer with multiple processors
a number of computers connected by a network to form a parallel
processing cluster
or a combination of both.
Parallel Processing
Parallel systems are more difficult to program than computers with a
single processor because
the architecture of parallel computers varies accordingly
the processes of multiple CPUs must be coordinated and
synchronized.
Instruction and Data Stream
The term ‘stream’ refers to a
sequence or flow of either
instructions or data operated on Instruction Stream
by the computer.
Main
CPU
Instruction Stream: Flow of Memory
instructions from main memory to
Data Stream
the CPU is established.
Data Stream: Flow of operands
between processor and memory
bi-directionally.
Flynn's Classification
Based on the number of instruction and data streams that can be
processed simultaneously
computing systems are classified into four major categories
Instruction Stream
ONE MANY
SISD MISD
ONE
Data Stream
Traditional Von Neumann May be pipelined
Single Computer Computers
SIMD MIMD
MANY
Vector Processors Multi Computers
Parallel Computers Multi Processors
Flynn's Classification
Flynn’s classification is based on multiplicity of instruction streams
and data streams observed by the CPU during program execution.
Let Is and Ds are streams owing at any point in the execution, then
the computer organization can be categorized as follows:
1. SISD- Single Instruction and Single Data stream
2. SIMD- Single Instruction and Multiple Data stream
3. MISD- Multiple Instruction and Single Data stream
4. MIMD- Multiple Instruction and Multiple Data stream
Flynn's Classification
1. SISD (Single Instruction, Single Data System)
It is a uniprocessor machine which is capable of executing a
single instruction, operating on a single data stream.
Machine instructions are processed in a sequential manner and
computers adopting this model are popularly called
sequential computers.
IS DS
Control Processing Memory
Unit Unit Unit
Flynn's Classification
1. SISD (Single Instruction, Single Data System)
The Control Unit decodes the instructions before sending them to the
processing units for their execution.
The Data Stream is a bi-directional data stream that moves between the
memory and processors.
Examples
Minicomputers, workstations, and computers from previous generations.
IS DS
Control Processing Memory
Unit Unit Unit
Flynn's Classification
2. SIMD (Single Instruction, IS
DS1
PU 1 LM1
Multiple Data System)
Multiprocessor machine Control IS
PU2
DS2
LM2
Unit
capable of executing the IS DSn
PU n LMn
same instruction on all the
CPUs but operating on
different data streams.
Well suited to scientific
computing since they involve
lots of vector and matrix
operations.
Flynn's Classification
2. SIMD (Single Instruction, Multiple Data System)
Example:
For (i=1; i<10; i++)
c[i]= a[i]+b[i]
In this example various iterations of the loop are independent of
each other i.e.,
c[1]=a[1] + b[1]
c[2]=a[2]+b[2] and so on....
In this case if there are 10 processing elements then the same
instruction add could be executed on all on different data sets hence
increasing the speed of execution
Flynn's Classification
3. MISD (Multiple Instruction,
Single Data System)
An MISD computing system
is a multiprocessor machine
capable of executing
different instructions on
different PUs but all of them
operating on the same
dataset
Flynn's Classification
3. MISD (Multiple Instruction,
Single Data System)
Example:
Z = sin(x)+cos(x)+tan(x)
The system performs different
operations on the same data set.
Machines built using the MISD
model are not useful in most of
the application, a few machines
are built, but none of them are
available commercially
Flynn's Classification
4. MIMD (Multiple Instruction,
Single Data System)
An MIMD system is a
multiprocessor machine which is
capable of executing multiple
instructions on multiple data sets.
Each PU in the MIMD model has
separate instruction and data
streams; therefore machines built
using this model are capable to
any kind of application.
End