Professional Documents
Culture Documents
Mr. A. B. Shinde
Assistant Professor,
Electronics Engineering,
PVPIT, Budhgaon.
1
shindesir.pvp@gmail.com
CONCEPT OF SYSTEM
SYSTEM
Elements of a system
SYSTEM ON CHIP
SIMD
SINGLE INSTRUCTION MULTIPLE DATA
SIMD
SIMD
For
example:
each
of
64,000
processors
in
a
Thinking Machines CM-2 would execute the same instruction
at the same time so that you could do 64,000 multiplies on
64,000 pairs of numbers at a time.
SIMD
SIMD TYPES
Synchronous (lock-step):
These systems are synchronous, meaning that they are built in
such a way as to guarantee that all instruction units will receive
the same instruction at the same time, and thus all will potentially
be able to execute the same operation simultaneously.
Deterministic SIMD architectures:
These are deterministic because, at any one point in time, there is
only one instruction being executed, even though multiple units
may be executing it. So, every time the same program is run on the
same data, using the same number of execution units, exactly the
same result is guaranteed at every step in the process.
Well-suited to instruction/operation level parallelism:
The single in single-instruction doesnt mean that theres only one
instruction unit, as it does in SISD, but rather that theres only
one instruction stream, and this instruction stream is executed by
multiple processing units on different pieces of data, all at the
10
same time, thus achieving parallelism.
SIMD (ADVANTAGES)
Instead of a series of instructions saying "get this pixel, now get the
next pixel", a SIMD processor will have a single instruction that
effectively says "get lots of pixels. This can take much less time than
"getting" each pixel individually, like with traditional CPU design.
SIMD (DISADVANTAGES)
SISD
SINGLE INSTRUCTION SINGLE DATA
13
SISD
SISD
In
computing,
SISD is a term referring
to a computer architecture in which a single
processor,
(uniprocessor) executes a single
instruction stream, to operate on data stored
in a single memory.
This corresponds
Architecture.
to
the
Von
Neumann
CHARACTERISTICS OF SISD
Serial Instructions are executed one after the other, in lockstep; this type of sequential execution is commonly called serial,
as opposed to parallel, in which multiple instructions may be
processed simultaneously.
Deterministic Because each instruction has a unique place
in the execution stream, and thus a unique time during which it
and it alone is being processed, the entire execution is
said to be deterministic, meaning that you (can potentially)
know exactly what is happening at all times, and, ideally, you can
exactly recreate the process, step by step, at any later time.
Examples:
All personal computers,
All single-instruction-unit-CPU workstations,
Mini-computers, and
Mainframes.
16
MIMD
MULTIPLE INSTRUCTION MULTIPLE DATA
17
MIMD
MIMD
Hierarchical:
MIMD machines with hierarchical shared memory use a
hierarchy of buses to give processors access to each other's memory.
Processors on different boards may communicate through inter-nodal
buses.
Buses support communication between boards.
With this type of architecture, the machine may support over 20a
thousand processors.
reduce
among
this
two
Interconnection schemes:
MIMD: CATEGORIES
MISD
MULTIPLE INSTRUCTION SINGLE DATA
24
MISD
In
computing,
MISD is a type of
parallel computing architecture where
many functional units perform different
operations on the same data.
Pipeline architectures belong to this type.
Fault-tolerant computers executing the
same instructions redundantly in order to
detect and mask errors, in a manner
known as task replication, may
be
considered to belong to this type.
Not
many
instances
of
this
architecture
exist,
as
MIMD
and
SIMD are often more appropriate for
25
common data parallel techniques.
MISD
MISD
This category was included more for the sake of completeness than
to identify a working group of actual computer systems.
MISD Examples:
Multiple frequency filters operating on a single signal stream.
Multiple cryptography algorithms attempting to crack a single
coded message.
27
PIPELINING
28
PIPELINING
In
computing, a pipeline is a set of data processing
elements connected in series, so that the output of one element
is the input of the next one.
The elements of a pipeline are often executed in parallel or in
time-sliced fashion; in that case, some amount of buffer storage
is often inserted between elements.
29
PIPELINING (IMPLEMENTATIONS)
Unbuffered pipelines:
Unbuffered pipelines, called "wave pipelines", do not have registers in-between
pipeline stages.
Instead, the delays in the pipeline are "balanced" so that, for each stage, the
difference between the first stabilized output data and the last is minimized.31
INSTRUCTION PIPELINE
An instruction pipeline is a
technique used in the design
of computers and other digital
electronic devices to increase
their instruction throughput
(the number of instructions that
can be executed in a unit of
time).
The fundamental idea is to
split
the processing of a
computer instruction into a
series of independent steps,
with storage at the end of each
step. This allows the computer's
control
circuitry
to
issue
instructions at the processing
rate of the slowest step, which is
much faster than the time
needed to perform all steps 32
at
once.
INSTRUCTION PIPELINE
Instruction fetch
Instruction
decode
register fetch
Execute
Memory access
Register write back
and
33
Advantages of Pipelining:
The cycle time of the processor is reduced, thus increasing instruction issuerate in most cases.
Some combinational circuits such as adders or multipliers can be made faster by
adding more circuitry. If pipelining is used instead, it can save circuitry.
Disadvantages of Pipelining:
A non-pipelined processor executes only a single instruction at a time. This
prevents branch delays and problems with serial instructions being executed
concurrently. Consequently the design is simpler and cheaper to manufacture.
The instruction latency in a non-pipelined processor is slightly lower than
in a pipelined equivalent. This is due to the fact that extra flip flops must be
added to the data path of a pipelined processor.
A non-pipelined processor will have a stable instruction bandwidth. The
performance of a pipelined processor is much harder to predict and may vary
more widely between different programs.
34
PARALLEL
COMPUTING
35
PARALLEL COMPUTING
Parallelism has been employed for many years, mainly in highperformance computing, but interest in it has grown lately due to
the physical constraints preventing frequency scaling. As power
consumption by computers has become a concern in recent years,
parallel computing has become the dominant paradigm in
computer architecture, mainly in the form of multicore
processors.
36
PARALLEL COMPUTING
multiple
TYPES OF PARALLELISM
Bit-level parallelism:
Instruction-level parallelism:
Data parallelism:
From the advent of VLSI in the 1970s until about 1986, speed-up in
computer architecture was driven by doubling computer word size
the amount of information the processor can manipulate per cycle.
Increasing the word size reduces the number of instructions the
processor must execute to perform an operation on variables whose
sizes are greater than the length of the word.
Task parallelism:
TYPES OF PARALLELISM
TYPES OF PARALLELISM
For Example:
1. e = a + b
2. f = c + d
3. g = e * f
Here, Operation 3 depends on the results of operations 1 and 2, so
it cannot be calculated until both of them are completed. However,
operations 1 and 2 do not depend on any other operation, so they
can be calculated simultaneously.
If we assume that each operation can be completed in one
40
unit of time then these three instructions can be completed in a
total of two units of time, giving an ILP of 3/2.
TYPES OF PARALLELISM
How much
specific. In
computing
workloads
parallelism.
TYPES OF PARALLELISM
TYPES OF PARALLELISM
Data parallelism
For instance, consider a 2-processor system (CPUs A and B)
in a parallel environment, and we wish to do a task on some
data d. It is possible to tell CPU A to do that task on one
part of d and CPU B on another part simultaneously,
thereby reducing the duration of the execution.
The data can be assigned using conditional statements
As a specific example, consider adding two matrices. In a
data parallel implementation, CPU A could add all
elements from the top half of the matrices, while CPU B
could add all elements from the bottom half of the matrices.
Since the two processors work in parallel, the job of
performing matrix addition would take one half the time of
43
performing the same operation in serial using 51 one CPU
alone.
TYPES OF PARALLELISM
Task
parallelism
(also
known
as
function
parallelism and control parallelism) is a form of
parallelization of computer code across multiple processors in
parallel computing environments.
Task parallelism focuses on distributing execution
processes (threads) across different parallel computing
nodes.
TYPES OF PARALLELISM
Task
parallelism
As a simple example, if we are running code on a 2processor system (CPUs "a" & "b") in a parallel
environment and we wish to do tasks "A" and "B" , it is
possible to tell CPU "a" to do task "A" and CPU "b" to do
task 'B" simultaneously, thereby reducing the runtime
of the execution.
The tasks
statements.
can
be
assigned
using
conditional
Task
parallelism
emphasizes
the
distributed
(parallelized) nature of the processing (i.e. threads), as
45
opposed to the data (data parallelism).