DST4030A Lecture Notes Week 3
DST4030A Lecture Notes Week 3
Dr Mike Asiyo
2 Instruction-level parallelism
3 Hardware multithreading
4 Parallel hardware
Instruction-level parallelism
Hardware multithreading
Parallel hardware
1 SIMD systems
Single instruction, multiple data, or SIMD, systems are parallel systems.
They operate on multiple data streams by applying the same instruction to
multiple data items, so an abstract SIMD system can be thought of as
having a single control unit and multiple datapaths.
An instruction is broadcast from the control unit to the datapaths, and
each datapath either applies the instruction to the current data item, or it
is idle.
SIMD systems are ideal for parallelizing simple loops that operate on large
arrays of data.
Parallelism that’s obtained by dividing data among the processors and
having the processors all apply (more or less) the same instructions to
their subsets of the data is called data-parallelism.
SIMD parallelism can be very efficient on large data parallel problems, but
SIMD systems often don’t do very well on other types of parallel problems.
2 MIMD systems
Multiple instruction, multiple data, or MIMD, systems support
multiple simultaneous instruction streams operating on multiple data
streams.
MIMD systems typically consist of a collection of fully independent
processing units or cores, each of which has its own control unit and
its own datapath.
MIMD systems are usually asynchronous, that is, the processors can
operate at their own pace.