计算机体系结构中的并行执行是什么?
当指令并行执行时,它们将以非程序顺序完成。这里,指令是按顺序还是无序发出或调度,或者是否使用搁置,都没有关系。关键在于,执行时间的不均等迫使指令以非顺序的方式完成,即使它们是按顺序发出(和调度)的。然后,短的、“较年轻的”指令可以比长的、“较旧的”指令先完成。因此,超标量指令导致指令的非顺序完成。
这里,可以区分“完成”、“结束”和“退休”指令的术语。“完成”指令表示指令的所需操作已完成,除了将结果写回所表示的体系结构寄存器或内存位置并刷新状态位。
相反,“结束”指令是指如果我们想引用指令执行的最后一个动作,即把结果写回引用的体系结构寄存器。最后,关于 ROB,我们说“退休”而不是“结束”,因为在这种情况下,必须执行两个任务,将结果写回并从最后一个 ROB 条目中删除已完成的指令。
在特殊条件下,即使有多个 EU,也可以避免指令以非顺序方式完成。条件如下:例如,指令必须按顺序发出,并且所有并行运行的 EU 必须具有相同的执行时间。
这些条件可以通过使用双管道并对其进行锁步来实现,即通过在其插入未使用的额外周期(“气泡”)来延长较短的管道。这些先决条件过于严格,会阻碍性能。
因此,只有少数超标量处理器以这种方式避免了非顺序完成。例如 MC 68060 和 Pentium,它们都采用了锁步双管道。
并行执行的历史
并行计算的活动可以追溯到 20 世纪 50 年代后期,在 60 年代和 70 年代以超级计算机的形式出现发展。这些是共享内存多处理器,多个处理器并行处理共享信息。
在 20 世纪 80 年代中期,当加州理工学院并发计算项目从 64 个 Intel 8086/8087 处理器开发用于科学目的的超级计算机时,出现了一种新的并行计算形式。
如今,并行计算正在转向主流,这要归功于多核处理器。现在,大多数台式机和笔记本电脑系统都配备了双核微处理器,四核处理器也随处可见。芯片制造商已开始通过添加额外的 CPU 内核来改进完整的处理实现。