当指令并行执行时,它们将按程序外顺序完成。在这里,指令是按顺序还是乱序发出或发送,或是否使用搁架都无关紧要。关键是不相等的执行时间迫使指令乱序完成,即使它们是按顺序发出(和分派)的。那么短的、“年轻的”指令可以比长的、“老的”指令先完成。因此,超标量指令导致指令的无序结束。
在这里,它可以区分“完成”、“完成”和“退出”指令的术语。术语“完成”指令表示该指令所需的操作是熟练的,除了将结果写回架构寄存器或表示的内存位置并刷新状态位。
相反,术语“完成”指令是指指令执行的最后一个动作,即将结果写回引用的架构寄存器。最后,关于 ROB,我们说“退休”这个术语而不是“完成”,因为在这种情况下,必须执行两个任务,写回结果并从最后一个 ROB 条目中删除已完成的指令.
在特殊情况下,即使有多个EU,也可以避免指令乱序完成。条件如下:指令必须按顺序发出,所有并行运行的EU必须具有相等的执行时间。
这些条件可以通过使用双管道并锁步它们来满足,即通过向其中引入未使用的额外周期(“气泡”)来延长较短的管道。这些先决条件过于严格,会影响性能。
因此,只有少数超标量处理器可以通过这种方式避免乱序完成。例如 MC 68060 和 Pentium,它们都采用锁步双流水线。
并行计算的活动可以追溯到 1950 年代后期,随着 60 年代和 70 年代以超级计算机的形式出现的发展。这些是共享内存多处理器,有多个处理器并行处理共享信息。
在 1980 年代中期,当加州理工学院并发计算项目从 64 个英特尔 8086/8087 处理器开发用于科学目的的超级计算机时,发布了一种新形式的并行计算。
在今天,并行计算正在成为主流,依赖于多核处理器。大多数台式机和笔记本电脑系统现在都配备双核微处理器,四核处理器可以自由访问。芯片制造商已开始通过添加额外的 CPU 内核来改进完整的处理实现。