ECM 1413 Multiprocessors Flashcards
Improve performance by performing multiple computations in parallel. The 5 outlets for which this can be achieved
ILP - Pipelining
Threads
Multi-core processors
Multiprocessors
Multicomputers
clock speeds cannot be increased indefinitely because
Due to physical and thermal limitations
Flynn’s Taxonomy
A classification of computer architectures based on number of instruction and data streams they can handle simultaneously
Flynn’s Taxonomy instruction stream(s)
- An instruction stream - sequence of instructions; arithmetic, data transfer, and branching
○ PC - next instruction
Flynn’s Taxonomy data stream
- A data stream consists of operands (constants, variables, and memory addresses)
○ Registers
The four possible combinations of data and instruction streams
SISD
SIMD
MISD
MIMD
Single Instruction Single Data (SISD)
Sequential computer with no data or instruction parallelism
Older single-core CPUs & simple microcontrollers
Multiple Instruction, Single Data (MISD)
- Multiple instructions operate on one piece of data simultaneously
- Used for fault tolerance
- Rare in practice
- Example: Space shuttle flight control systems
Example of MISD
Example - Triple Modular Redundancy
* A majority vote of three independent systems or processors
* Space satellite systems often use TMR
Single Instruction, Multiple Data (SIMD)
Execute the same instruction on multiple data points simultaneously
SIMD computers are good for vector operations, including image and audio processing.
SIMD computers are not suitable when the type of instruction depends on the data.
SIMD example
Graphics Processing Units
* A GPU contain many ALUs to perform mathematical operations in parallel.
* A GPU is based on SIMD architecture.
- In comparison to CPUs:
- GPUs have more ALUs and rely less on cache.
- GPUs have a high throughput and higher latency.
GPUs and Threads
- GPUs hide latency by utilising threads
- A process may be subdivided into multiple threads
- Threads within a process share data, heap, and code, but have their own registers and stack
Multiple Instruction, Multiple Data (MIMD)
Multiple processors simultaneously execute different instructions on different pieces of data.
A multi-core processor puts many CPU cores on one chip
MIMD Example
Example - EPYC 7763 Processor
The AMD EPYC 7763 processor has:
* 64 cores/128 threads
* 64 × 32 KB 8-way set associative L1 instruction cache
* 64 × 32 KB 8-way set associative L1 data cache
* 64 × 512 KB 8-way set associative L2 cache
* 256 MB of L3 cache for each group of four cores
Multiprocessors
- Two or more CPUs within a single computer system
- CPUs communicate through shared memory variables.
- To modify a shared variable, the CPU locks the variable so that no other processor can modify it.
Shared memory