Introduction to
parallel processing
computer organization and
architecture chapter 8 5/30/2020
Parallel processing or parallel computing is a form of
computation in which many calculations are carried
out simultaneously, operating on the principle that
large problems can often be divided into smaller
ones, which are then solved concurrently (“in
parallel”).
Parallel processing/computing, uses multiple
processing elements simultaneously to solve a
problem.
computer organization and
architecture chapter 8 5/30/2020
A parallel processing system is able to perform
concurrent data processing to achieve faster
execution time.
The system may have two or more ALUs and be able
to execute two or more instructions at the same time
Also, the system may have two or more processors
operating concurrently
computer organization and
architecture chapter 8 5/30/2020
The internal organization of the processors
The interconnection structure between processors
The flow of information through the system
The number of instructions and data items that are
manipulated simultaneously
computer organization and
architecture chapter 8 5/30/2020
The Goal of parallel processing is to increase the
throughput
instruction stream
Is The sequence of instructions read from memory.
data stream
is The operations performed on the data in the
processor.
Parallel processing may occur in the instruction
stream, the data stream, or both
computer organization and
architecture chapter 8 5/30/2020
Computer can be classified as:
Single instruction stream, single data stream – SISD
Single instruction stream, multiple data stream –
SIMD
Multiple instruction stream, single data stream –
MISD
Multiple instruction stream, multiple data stream –
MIMD
computer organization and
architecture chapter 8 5/30/2020
Pipelining is an implementation technique where
multiple instructions are overlapped in execution.
Pipelining refers to the technique in which a given
task is divided into a number of subtasks that need to
be performed in sequence.
Each subtask is performed by a given functional unit
computer organization and
architecture chapter 8 5/30/2020
Pipeline arithmetic units are usually found in very
high speed computers.
They are used to implement floating-point operations,
multiplication of fixed-point numbers, and similar
computations encountered in scientific problems.
computer organization and
architecture chapter 8 5/30/2020
An instruction pipeline reads consecutive
instructions from memory while previous
instructions are being executed in other
segments. Whenever there is space in the
buffer, the control unit initiates the next
instruction fetch phase. The following
computer organization and
architecture chapter 8 5/30/2020
1. Fetch the instruction from memory
2. Decode the instruction
3. Calculate the effective address
4. Fetch the operands from memory
5. Execute the instruction
6. Store the result in the proper place
computer organization and
architecture chapter 8 5/30/2020
A RISC (Reduced Instruction Set Computer)
processor pipeline operates in much the same way,
although the stages in the pipeline are different.
While different processors have different numbers of
steps, they have basically variations of these five
steps:
computer organization and
architecture chapter 8 5/30/2020
1.fetch instructions from memory
2. read registers and decode the instruction
3. execute the instruction or calculate an address
4. access an operand in data memory
5. write the result into a register
computer organization and
architecture chapter 8 5/30/2020
The part of a computer that carries out the instructions of
various programs is the central processing unit (CPU).
The CPU, also called a processor, receives a program's
instructions; decodes those instructions, breaking them
into individual parts; executes those instructions; and
reports the results, writing them back into memory.
The format for the processor comes in one of two
primary types: vector and scalar.
computer organization and
architecture chapter 8 5/30/2020
The difference between the two is that scalar
processors operate on only one data point at a time,
while vector processors operate on an array of data.
Many scientific problems require arithmetic
operations on large arrays of numbers.
These numbers are usually formulated as vectors and
matrices of floating point numbers.
A vector is an ordered set of a one dimensional array
of data items.
A vector V of length n is represented as a row vector
by V= [V1, V2, V3,...,Vn].
computer organization and
architecture chapter 8 5/30/2020