Show understanding of the four basic computer architectures

Published by Patrick Mutisya · 14 days ago

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.

ArchitectureInstruction StreamsData StreamsTypical Examples
SISD11Traditional single‑core CPU
SIMD1MultipleGPU vector units, SIMD extensions (e.g., SSE, A \cdot X)
MISDMultiple1Rare – fault‑tolerant systems, some pipeline designs
MIMDMultipleMultipleMulti‑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:

  1. Shared‑Memory Parallelism – Processors access a common address space. Typical in MIMD multi‑core CPUs. Synchronisation is achieved with locks, semaphores, or atomic operations.
  2. 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:

FactorImpact on SISDImpact on SIMDImpact on MIMD
Clock SpeedDirectly proportional to throughputLess critical; vector width dominatesImportant but balanced with core count
Memory BandwidthSingle stream, moderate demandHigh demand due to simultaneous data fetchesHigh demand across cores
ScalabilityLimitedScales with vector lengthScales 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.