Les architecture superscalaires disposent de plusieurs unités fonctionnelles (unités pour les opérations entières, unités pour les opérations flottantes, ...). Ainsi les instructions les plus communes (arithmétiques, chargement, rangement, branchement) peuvent être exécutés simultanément et indépendament dans différents pipelines. De plus, les instructions peuvent être exécutées dans un ordre différent de l'ordre du programme.
Par exemple, si on exécute la séquence d'instructions
les instructions se termineront dans l'ordre SUB, ADDF et DIV.