15.1 Processors, Parallel Processing and \cdot irtual Machines
15.1 Processors, Parallel Processing and \cdot irtual Machines
Learning Objective
Show understanding of the four basic computer architectures.
Flynn’s Taxonomy – The Four Basic Architectures
Flynn’s classification groups computer architectures according to the number of concurrent instruction streams and data streams they can handle.
Architecture
Instruction Streams
Data Streams
Typical Examples
SISD
1
1
Traditional single‑core CPU
SIMD
1
Multiple
GPU vector units, SIMD extensions (e.g., SSE, A \cdot X)
MISD
Multiple
1
Rare – fault‑tolerant systems, some pipeline designs
MIMD
Multiple
Multiple
Multi‑core CPUs, clusters, distributed systems
Key Characteristics of Each Architecture
SISD (Single Instruction, Single Data) – Executes one instruction on one data element at a time. Simple control flow, no inherent parallelism.
SIMD (Single Instruction, Multiple Data) – One instruction operates on many data elements simultaneously. Ideal for data‑parallel tasks such as image processing.
MISD (Multiple Instruction, Single Data) – Several instructions act on the same data stream. Mostly theoretical; used in some redundant‑execution fault‑tolerant designs.
MIMD (Multiple Instruction, Multiple Data) – Independent processors execute different instructions on different data. Supports task‑parallelism and is the basis for modern multi‑core and distributed systems.
Parallel Processing Models
Parallel processing can be implemented using the architectures above. The two dominant models are:
Shared‑Memory Parallelism – Processors access a common address space. Typical in MIMD multi‑core CPUs. Synchronisation is achieved with locks, semaphores, or atomic operations.
Distributed‑Memory Parallelism – Each processor has its own local memory; communication occurs via message passing (e.g., MPI). Often realised with clusters of independent machines.
Virtual Machines (VMs)
A virtual machine abstracts the underlying hardware, providing a consistent execution environment. Two main categories are:
System \cdot Ms – Emulate an entire physical machine (e.g., VMware, VirtualBox). Can run multiple guest operating systems concurrently.
Process \cdot Ms – Provide a runtime environment for a single program (e.g., Java \cdot irtual Machine, .NET CLR). They translate bytecode to native instructions at runtime.
Virtualisation enables:
Isolation of workloads
Dynamic resource allocation
Platform independence
Performance Considerations
When comparing architectures, the following factors are crucial:
Factor
Impact on SISD
Impact on SIMD
Impact on MIMD
Clock Speed
Directly proportional to throughput
Less critical; vector width dominates
Important but balanced with core count
Memory Bandwidth
Single stream, moderate demand
High demand due to simultaneous data fetches
High demand across cores
Scalability
Limited
Scales with vector length
Scales with number of cores/nodes
Suggested Diagram
Suggested diagram: Visual comparison of SISD, SIMD, MISD, and MIMD architectures showing instruction and data streams.
Summary
Understanding the four basic architectures provides a foundation for analysing how modern processors achieve parallelism and how virtual machines leverage these capabilities to deliver flexible, portable computing environments.