CSS Prepare

optional · CSS study notes

Parallel Computer Architecture (2017)

CSS Optional — Paper-II, Section-A · Chapter 7 · 📌 Asked in CSS 2017

1. Definition

Parallel processing is the simultaneous use of multiple computing resources — execution units, cores, or processors — to carry out computation faster than a single sequential unit could.

2. Classification — Levels of Parallelism

  • Instruction-Level Parallelism (ILP) — executing multiple instructions simultaneously within a single processor.
    • Pipelining — overlapping the fetch/decode/execute stages of successive instructions, so several instructions are in different stages at once.
    • Superscalar execution — multiple execution units allow more than one instruction to be issued per clock cycle.
  • Multiprocessor systems — multiple independent CPUs (separate chips/packages) within one system, which may or may not share memory.
  • Multicore systems — multiple processing cores integrated onto a single chip, sharing some resources (e.g., last-level cache) — today's standard approach to raising performance without raising clock speed.

🗺️ Architecture Diagram — Pipelining vs Sequential Execution

graph TD
    subgraph SEQ["Sequential - no pipelining"]
        S1["I1: Fetch Decode Execute"] --> S2["I2: Fetch Decode Execute"] --> S3["I3: Fetch Decode Execute"]
    end
    subgraph PIPE["Pipelined"]
        direction LR
        P1["Cycle 1: I1-Fetch"] --> P2["Cycle 2: I1-Decode, I2-Fetch"] --> P3["Cycle 3: I1-Execute, I2-Decode, I3-Fetch"]
    end

🧮 Worked Example

  • A GPU-style vector add across 1,000 elements using one instruction demonstrates data parallelism, distinct from ILP.
  • A 5-stage pipeline that keeps all stages busy approaches one instruction completed per cycle, versus one instruction per 5 cycles sequentially — a theoretical 5× speedup (see Performance Metrics for Amdahl's Law limits on real speedup).

🔎 This page is the overview. For full depth with worked numericals on each sub-area, see the three dedicated pages: Instruction-Level Parallelism & Superscalar Processors, Parallel Processing, and Multi-Processor and Multi-core Systems.

🎯 CSS Exam Angle

📌 Your textbook explicitly flags this topic as asked in CSS 2017 — high-priority for revision.

🔁 Repeated CSS Questions

  1. Explain Instruction-Level Parallelism and pipelining with an example. (Asked CSS 2017)
  2. Differentiate between multiprocessor and multicore systems.
  3. What is a superscalar processor, and how does it improve throughput?

⚠️ MCQ Trap

Multicore = multiple cores on ONE chip (shared package); multiprocessor = multiple separate CPU chips in one system — do not conflate the two.