Module 6
Module 6
Flynn’s Classification:-
M.J. Flynn proposed a classification for the organization of a computer system by the number
of instructions and data items that are manipulated simultaneously.
The operations performed on the data in the processor constitute a data stream.
In SIMD computer, we can see from the below diagram there are multiple processing
elements supervised by the common control unit.
All the processing elements, which are ALUs, receive the same instruction broadcast
from the control unit
but operate on different data sets from distinct data streams.
As seen in the diagram, control unit sends common instruction stream to each
processor element.
The shared memory sub-system containing multiple modules is very essential.
that requires multimedia operations like image, audio or video processing where same
operation like filtering needs to be applied on large set of data pixels.
that needs matrix multiplication or simulations.
Given below is SIMD architecture diagram:
MISD architecture is not that popular though some fault tolerance machines can be used in
this class.
MIMD computer is one among four of the Flynn's classification of computer. Other three
are SIMD, SISD, MISD computer.
MIMD computer category covers multiple computer system and multiprocessor systems.
MIMD architecture involves multiple processors that execute different instructions on
different data sets thus exhibiting parallel computing. Thus we can also say that MIMD
belongs to class of parallel computing architecture.
MIMD computer is called tightly coupled or Uniform Memory Access (UMA) if the degree
of interaction among the processor is high.
MIMD computer is called loosely coupled or Non-Uniform Memory Access (NUMA) if the
degree of interaction among processors is low.
Every stage performs partial processing of the task that it is supposed to do. And then the
result obtained is passed to the next stage in pipeline. Once the instruction has passed through
all the stages, the final result is obtained.
Pipeline stages are the number of steps the instruction has to pass through in the pipeline.
Pipeline depth indicates the number of stages involved in the pipeline. As the pipeline depth
increases the number of stage increases and thus increases the overall performance of the
system.
Control hazards in pipelining occurs due to need to make decisions based on the outcome
of previous instructions.
For example, consider a scenario in which two instructions require to make use of same
hardware resource (say memory unit) at the same time. This scenario will lead to structural
hazards in computer architecture.
The issue of structural hazards in pipelining where same resources are requested by multiple
instructions can be solved by providing dupicated resources.
Functional units like Arithmetic Logic Unit can be pipelined in order to cater to the
needs of supporting multiple instructions at same time.
Seperate memory units can be provided to take care of several data and instruction
supply at same time.
Similarly, other resources can be duplicated and arranged in pipeline to handle concurrent
request without any issue of hazards.
Data hazards in pipelining is the result of having dependency on the outcome of previous
instructions result which is yet to finish. In other words, it can be said that the inter-
instruction dependencies situation in pipeline is known as data hazards.
Now it is a known fact that in pipeline both instructions can be executed concurrently.
Here, INSTRUCTION-B has dependency on result of INSTRUCTION-A. But execution
of INSTRUCTION-B starts before INSTRUCTION-A has completed its execution thus result
is not yet produced. So the INSTRUCTION-B doesn't get the required data (result) and this
leads to the scenario of data hazards in pipelining.