乱序执行

✍ dations ◷ 2025-09-14 03:51:04 #乱序执行

在计算机工程领域,乱序执行(错序执行,英语:,简称OoOE或OOE)是一种应用在高性能微处理器中来利用指令周期以避免特定类型的延迟消耗的范式。在这种范式中,处理器根据输入数据的可用性确定执行指令的顺序,而不是根据程序的原始数据决定。在这种方式下,可以避免因为获取下一条程序指令所引起的处理器等待,取而代之的处理下一条可以立即执行的指令。

乱序执行是一种受限的数据流架构计算的方式,在20世纪70年代至80年代数据流架构计算是计算机架构的重要研究领域。在这个课题上重要的学术研究是由Yale Patt以及他的HPSm模拟器所领导。一篇由James E. Smith和A.R. Pleszkun在1985年所发表的论文通过精确的描述了在乱序执行的机器上会发生的异常行为,从而完善了该模式。

通常认为第一台使用乱序执行的计算机是CDC 6600(1964),使用了scoreboard来处理冲突。在现代的实现方式中,这种的记分板被认为是顺序执行的组成部分,而不是乱序执行,尽管这样的机器等待第一个写后读的冲突。严格的说,这样的机器启动在顺序执行的方式下,但是有可能结束于乱序执行之中。

大约三年后,IBM的360/91(1966)引入了Tomasulo算法,从而支持了完全的乱序执行。

在1990年,IBM发布了第一个支持乱序执行的微处理器,POWER1,尽管乱序执行被限制于浮点数计算上。

在整个20世纪90年代中,乱序执行变得更加普遍并且在IBM/Motorola PowerPC 601(1993), Fujitsu/HAL SPARC64(1995), Intel Pentium Pro(1995), MIPS R10000(1996), HP PA-8000(1996), AMD K5(1996)和DEC Alpha 21264(1998)中被使用。较为知名的未采用乱序执行的处理器有Sun UltraSPARC, HP/Intel Itanium, Transmeta Crusoe, Intel Atom,以及IBM POWER6。

乱序执行模式的逻辑复杂度是造成该技术在20世纪90年代之前没有成为计算机的主流的原因。许多低端的处理器受限于市场成本仍然未采用该范式,因为制造乱序执行的计算机需要大型的硅片。低能耗是另一种难以用乱序执行设计所实现的目标。

在早期的处理器中,指令的执行一般在以下的步骤中完成:

这种范式通过以下步骤挑选可执行的指令先执行:

乱序执行的重要概念是实现了避免计算机在用于运算的对象不可获取时的大量等待。在上述文字的要点中,乱序执行处理器避免了在顺序执行处理器处理过程第二步中当指令由于运算数据未到位所造成的等待。

例如

由于1与3可并发执行,而2之b无法随即获得,因此可以先计算乘法1与加法3,再执行2。

乱序执行使用其他“可以执行”的指令来填补了时间的空隙,然后再在结束时重新排序运算结果来实现指令的顺序执行中的运行结果。指令在原始计算机代码中的顺序被称为程序顺序,在处理器中他们被按照数据顺序中被处理,这种顺序中,数据,运算符,在计算机寄存器中变得可以获取。一般来说乱序执行需要复杂的电路来实现转换一种顺序到另一种顺序并且维护在输出时的逻辑顺序;而处理器本身就好像是随机执行的样子。

乱序执行所带来的益处随着指令管道的加深和主存(或者缓存)和处理器间的速度差的变大而增长。在现代计算机中,处理器的运算速度大大超越了内存速度,所以在顺序执行处理器等待数据的过程中,乱序执行处理器能够执行大量的指令。

一个由新的范式所造成的区别是发送步骤从分配步骤中分离的序列的产生和毕业周期从执行周期中分离的产生。这种范式的一个早期的名称是"分离架构"。在早期的顺序执行处理器中,这些周期在一种相对固定的,管道化的方式中被执行。

为了避免错误的运算对象造成的指令乱序的减少,一种被称作寄存器重命名的技术被采用了。在这种模式中,将会有更多的寄存器被架构所定义。物理寄存器被加上标签从而不同架构的寄存器可以同时存在。

结果序列是解决分支预测错误以及异常/中断的必要部分。结果序列允许程序程序在一个异常后重新开始,这需要指令在程序顺序中被完成。结果序列允许结果由于一个错误的分支预测以及发在在旧代码上的异常被丢弃。

把指令分配到过去的分支的能力解决了预测执行。


相关

  • 纤维连接蛋白1E88, 1E8B, 1FBR, 1FNA, 1FNF, 1FNH, 1J8K, 1O9A, 1OWW, 1Q38, 1QGB, 1QO6, 1TTF, 1TTG, 2CG6, 2CG7, 2CK2, 2CKU, 2EC3, 2FN2, 2FNB, 2GEE, 2H41, 2H45, 2HA1, 2OCF, 2RKY
  • 顶复器顶质体(英语:apicoplast)是大部分顶复门生物共有的非光合作用的细胞器,存在于多种顶复门生物中,包括引发疟疾的寄生虫——恶性疟原虫(Plasmodium falciparum)等,但在隐孢子虫属(英语:C
  • 锶的同位素锶(Sr,原子量:87.62(1))共有39个同位素,其中有4个同位素是稳定的。备注:画上#号的数据代表没有经过实验的证明,只是理论推测而已,而用括号括起来的代表数据不确定性。
  • 汉江 (中国)汉江,亦称汉水,又名襄河,古称.mw-parser-output ruby>rt,.mw-parser-output ruby>rtc{font-feature-settings:"ruby"1}.mw-parser-output ruby.large{font-size:250%}.mw-parse
  • 雷蒙德·约翰·巴里雷蒙德·约翰·巴里(英语:Raymond John Barry,1939年3月14日-)出生于美国纽约州纳苏县,为美国著名男演员。巴里出生在美国纽约州纳苏县,他在长岛长大。巴里的妻子是罗宾·蒙代尔,他
  • 皇明天朝皇明天朝,亦称大贤祖国,是指1950年至1958年期间在河北省鸡泽县等地,由九宫道首领齐近鲁为首成立的一个邪教系统秘密结社政权。齐近鲁系河北邢台南和县齐庄村人,邯郸地区九宫道大
  • 神采飞扬《神采飞扬》 (Rattle and Hum)是爱尔兰摇滚团体U2的第六张专辑,同时也是同名摇滚电影。两者都在1988年发行。《神采飞扬》是在“约书亚树巡回旅程”后开始录制,专辑里并不完
  • 木乃伊 (电影)《木乃伊》(英语:)是1999年的美国冒险电影,由斯蒂芬·索莫斯编剧并执导,布兰登·弗雷泽、蕾切尔·薇兹、约翰·汉纳、凯文·J·奥康纳和阿诺德·沃斯洛主演,其中沃斯洛扮演复活的
  • 斯泰恩·斯哈斯斯泰恩·约翰尼斯·斯哈斯(英语:Stefanus Johannes Schaars,1984年1月11日-),是一名荷兰足球运动员,司职中场,目前效力荷甲球队海伦芬。出身于荷兰小型俱乐部维特斯,首次出场是在2003年3月9日作客乌得勒支,以1-4落败。到2005年,他转到阿尔克马尔。尽管本身擅用左脚,却是多面手一名,能胜任后腰或左中场,不论防守能力或传球技巧均属上乘。他已是阿尔克马尔主力之一,更当上过队长。2008-09年赛季,成功赢得首个荷甲联赛冠军。2006年8月16日首次随国家队上场,在友谊赛胜爱尔
  • 金宝汤罐头 (艺术作品)金宝汤罐头(),有时称作32罐金宝汤罐头()是一幅由美国艺术家安迪·沃霍尔于1962年所创作的艺术作品。作品包括三十二块帆布,每一小块分别的面积为20 × 16 英寸(50.8 × 40.6 厘米),上面画着一个金宝汤罐头,每一个为当时罐头汤制造商旗下不同口味的产品。每一幅绘图都使用了半机器化的丝网印刷技术,以非画性的风格制作。《金宝罐头汤》利用流行文化作为创作主题,并带领着波普艺术荣登大雅之堂,打入主流的艺术运动。对于成功地由插画家摇身一变成为了作家、画家与导演的安迪·沃霍尔来说,这个作品使他开了第一次