跳转到内容

微处理器设计/乱序执行

来自维基教科书,开放的书籍,开放的世界

在超标量或类似的处理器设计中,有多个执行单元可用于同时处理数据片段。但是,这些执行单元并不总是同时使用,并且会损失一些处理能力。有时,如果我们将指令从其原始顺序中取出,则可以将指令提供给所有执行单元。乱序执行 (OOOE) 指的是处理器能够以不同于其原始顺序的顺序执行指令,以尝试并行完成更多工作,并更快地执行程序。

Tomasulo 调度算法是一种 OOOE 算法,支持具有可变延迟(包括数据相关延迟)的功能单元。[1]

OOOE 带有一些重大风险,这些处理器中的风险检测单元并不简单。需要确定所有指令的依赖关系,并且指令不能在其依赖的指令之前或同时执行。

示例:英特尔超线程

[编辑 | 编辑源代码]

超线程 是英特尔为奔腾 4 芯片开发的一种技术的名称。超线程通过复制处理器的某些架构组件(例如状态标志、控制寄存器和通用寄存器)来工作。但是,超线程不会复制任何执行单元。

在超线程系统中,操作系统似乎有两个独立的处理器,而实际上只有一个处理器。OOOE 引擎从两个独立的执行线程中向执行核心提供指令,以尝试让所有核心始终处于繁忙状态。总的来说,超线程提高了性能,尽管在某些情况下,这种额外的复杂性实际上会降低性能。

  1. Daniel Kröning. "设计和评估具有 Tomasulo 调度器的 RISC 处理器". 第 "2.2 Tomasulo 调度算法" 节。1999 年。
华夏公益教科书