Skip to content

9618 · 15.1

Processors, Parallel Processing and Virtual Machines

Modern computing demands more speed than a single processor core can offer. We achieve this through parallelism, like an assembly line (pipelining) or a team of workers (multi-core), and through virtualization, which creates multiple 'pretend' computers on one physical machine.

Need to know

What you need to know

  • Benefit: Increases instruction throughput, leading to faster program execution for most code.
  • Drawback: Does not decrease the latency of a single instruction.
  • Challenge: Pipeline 'hazards' (structural, data, control) can disrupt the flow and require the pipeline to stall or be flushed, reducing efficiency.

Explanation

Beyond the Single Core

  1. The Fetch-Decode-Execute cycle is the fundamental operation of a CPU core. Pipelining improves efficiency by overlapping these stages for different instructions, like an assembly line.
  2. A multi-core processor contains multiple independent CPUs (cores) on one chip. This allows for true parallel processing, where multiple instruction streams (threads) are executed simultaneously.
  3. A virtual machine (VM) is a software emulation of a computer, running a 'guest' OS. It is managed by a hypervisor, which sits between the VM and the 'host' hardware, allocating and isolating resources.
  4. Parallel processing architectures are classified by their instruction and data streams. SIMD (Single Instruction, Multiple Data) is used in GPUs for graphics, while MIMD (Multiple Instruction, Multiple Data) is used in multi-core CPUs for general tasks.