3

They seem exactly the same to me, but the wikipedia page on Superscalar CPU architectures says

While a superscalar CPU is typically also pipelined, pipelining and superscalar architecture are considered different performance enhancement techniques.

phuclv
  • 30,396
  • 15
  • 136
  • 260

1 Answers1

6

The Wikipedia articles for pipeline and superscalar explain these quite well.

Definition before we start: Functional Unit: Hardware device that performs a specific instruction

  • E.g. Adder for add/sub, Multiplier for mul, Shifter for sll/slr, Divider for div, etc.

Simply put, a pipeline starts the execution of the next instruction before the first has completed - but all instructions are still executed in series and in order.

  • Series = Not parallel = not "all instructions start at the same time"
  • Only one FU per operation-type is needed. Only need 1 adder and 1 multiplier and 1 shifter, etc.

A superscalar architecture can start two or more instructions in parallel in a single core (using multiple, repeated Functional Units that each handle a specific type of instruction), and independent instructions may get executed out-of-order.

  • Having three Adder FUs means you can execute three different add instructions simultaneously, but you can't perform any extra multiplications, shifts, etc because you're missing the necessary hardware.

Extra Note: If you're aware of Tomasulo's algorithm, note that the Issue stage is different than the Execution (and WriteBack) stage; above mentions specifically the Execution stage, not the entirety of Issue+Execution+WriteBack stages.

tl;dr

  • Pipeline = Serial on single-core (but more instructions pass through than 1-instruction-at-a-time)
  • Superscalar = Parallel on single-core
Stev
  • 5
  • 3
Turbo J
  • 2,009