Skip to main content

Parallel processing and pipeline speedup

Short answer

Pipelining is a form of parallel processing where instruction execution is divided into k stages. For n tasks, speedup S = (n*k) / (k + n - 1). With large n, S approaches k; e.g., for k=5, n=100, S ≈ 4.81, proving pipelining speeds up processing.

Define parallel processing and show that pipeline can speed up the processing.

Parallel processing

Parallel processing means executing more than one task, instruction or part of a problem simultaneously, using multiple processing units or overlapped stages, to get results faster. Pipelining is a form of it.

Speed-up by pipelining

Let a task (an instruction) have k stages, each taking one clock time t, and let there be n tasks.

  • Without pipeline: each task takes k·t, so the total time T₁ = n·k·t.
  • With pipeline: the first task takes k·t. After that, one task finishes every t. Total time T₂ = (k + n − 1)·t.

Speed-up S = T₁ / T₂ = n·k / (k + n − 1)

For large n, (k + n − 1) ≈ n, so S → k. Also S > 1 whenever n > 1 and k > 1, which proves that the pipeline speeds up the processing.

Example: k = 5, n = 100: T₁ = 100 × 5 = 500 t; T₂ = (5 + 99) t = 104 t; S = 500/104 ≈ 4.81, close to 5.

 Clock:   1  2  3  4  5
 I1       S1 S2 S3
 I2          S1 S2 S3
 I3             S1 S2 S3
 3 stages, 3 instructions:
 time = 3 + 2 = 5 cycles (vs 9 without pipeline)

✓ Answer checked by Claude Opus 5.5 (high effort)

All Microprocessor chapter 6 questions →