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?