Skip to main content

How arithmetic pipeline increases performance

Short answer

Arithmetic pipeline splits an operation into segments working concurrently on different operand pairs. For k segments and n pairs, speedup = n*k/(k+n-1); e.g., k=4, tp=10ns, n=1000 gives speedup ~3.99, approaching k.

Explain in detail how the arithmetic pipeline increases the performance of a system.

An arithmetic pipeline splits an operation such as floating-point addition into k segments (compare exponents, align mantissas, add mantissas, normalise). Each segment works on a different pair of operands in the same clock, so results come out at the rate of one per clock.

Performance

Let k = 4 segments, tp = clock time of the slowest segment, n = number of operand pairs.

  • Time without pipeline: n · tn, where tn = k · tp (the whole operation done in turn).
  • Time with pipeline: (k + n - 1) · tp
  • Speedup: S = n·k·tp / ((k + n - 1)·tp) = n·k / (k + n - 1)

Example: k = 4, tp = 10 ns, n = 1000 additions (a vector sum).

  • Non-pipelined: 1000 × 4 × 10 = 40,000 ns
  • Pipelined: (4 + 999) × 10 = 10,030 ns
  • Speedup = 40,000 / 10,030 = 3.99, almost k.

The first result appears after k clocks (latency), and then one result per clock (throughput of 1 / tp). The gain is greatest when the same operation is done on a long stream of data, as in vector processing, and is limited by the slowest segment and the register delay between segments.

 pair n --> [compare][align][add][normalise] --> result
 pair n+1 -----^ each stage busy with a different pair

✓ Answer checked by Claude Opus 5.5 (high effort)

All Computer Organization and Architecture chapter 4 questions →