I have read some threads and the wiki articles, but still don't seem to understand what exactly the difference is between having multiple parallel pipelines and the superscalar architecture. I know that (in case of dynamical superscalarity) out-of-order-execution is used to fill the pipeline optimally and avoid hazards. But what keeps you from using such a dispatcher in combination with multiple independent (except for the instruction fetcher and dispatcher) pipelines? What is the difference then?

  • \$\begingroup\$ Well, I would mark it as a duplicate, but the answer is on SO: stackoverflow.com/questions/1656608/… \$\endgroup\$
    – Eugene Sh.
    Commented Feb 13, 2015 at 21:24
  • \$\begingroup\$ Thing is, I know the difference between pipelining and superscalarity. But not between what I wrote above. \$\endgroup\$
    – Benjoyo
    Commented Feb 13, 2015 at 21:26

2 Answers 2


You may have several pipelines (say one for integer, one for floating point) but if you never issue more than one instruction per cycle, you don't have a superscalar processor.

To have a superscalar processor, it has to be able to issue several instructions in the same cycle, which implies to have several, more or less independent, execution units (which are probably pipelined).


In case of superpipelining, you will not be having multiple components (eg: multiple alu). In case of superscalar architecture, you will be having multiple resources to execute instructions in parallel

  • 1
    \$\begingroup\$ This doesn't add to the existing answer and needs editing to remove slang English. \$\endgroup\$
    – David
    Commented Oct 4, 2015 at 11:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.