乱序执行

✍ dations ◷ 2025-11-15 06:48:15 #乱序执行

在计算机工程领域,乱序执行(错序执行,英语:,简称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。

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

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

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

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

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

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


相关

  • 拉脱维亚语拉脱维亚语(latviešu valoda),中文也称拉脱维亚文,是拉脱维亚的官方语言。拉脱维亚语在英语中曾被称为Lettish,而在大部分日耳曼语族的语言中仍然是这样称呼。在拉脱维亚有大约1
  • 美女美女,一般理解是指美丽的女性,俗称美眉 、靓女、索女或正妹,正式皆优雅用词之一为“佳丽”。然而,审美眼光及标准因应个人及文化而有所差异。与美女相对,称呼男性则是美男。中国
  • 阀阅士族,又称世族,是中国历史上东汉至唐代,世代为官的士大夫阶层,是一种贵族化的官僚家族。宋代及以后,“士族”一词含义有所改变,士人取得官位后就是士族、士大夫,已没有世袭的意味。
  • CW-21恶魔战斗机CW-21恶魔式战斗机是寇蒂斯-莱特的圣路易工厂在1930年代后期所开发出来的轻型拦截机。1938年,寇蒂斯圣路易工厂负责人兼设计师乔治.A.佩吉(George A. Page)决定以设计师卡尔.
  • G蛋白偶联受体结构 / ECODG蛋白偶联受体(G Protein-Coupled Receptors,GPCRs),是一大类膜蛋白受体的统称。这类受体的共同点是其立体结构中都有七个跨膜α螺旋,且其肽链的C端和连接第5和第6个
  • 保护国保护国(英文:Protectorate)又称被保护国,是受较强之国家(宗主国)支配和保护的国家或地区,是殖民地形式或从属国的一种。保护国是非独立国的一种,也是殖民统治的一种特殊形式。帝国主
  • 萨凡纳围城战萨凡纳围城战,或称第二次萨凡纳战役发生于1779年的美国独立战争。该年年初,萨凡纳才刚被英国中校阿奇巴德·坎贝尔率领的远征军团所攻占。法美联军尝试在1779年9月16日到10月1
  • 甘棠站甘棠站位于皖赣铁路上,距离火龙岗站475千米,距离贵溪站75千米,建于1975年:242。车站不办理客货运业务,仅办理列车通过、停靠作业,曾经设有通往桥头丘煤矿的专用线:249;目前每日有
  • 弗兰克和路易弗兰克和路易(英语:Frank and Louie,1999年9月8日-2014年12月4日)是一只有着两张面孔的“双面猫”,因长寿而出名,2012年入选吉尼斯世界纪录“世界上最长寿的双面猫”。弗兰克和路易
  • 溥良溥良(1854年-1922年),字玉岑,爱新觉罗氏,清朝宗室,隶满洲镶蓝旗,父头等辅国将军爱新觉罗载崇。母富察氏,礼部尚书贵庆女,福建巡抚瑞瑸、吏部郎中瑞琇胞妹。为清雍正帝六世孙。其支系始祖为雍正帝五子、乾隆帝同父异母弟、和亲王弘昼。宗人府载溥良光绪元年乙亥科中式举人,光绪六年庚辰科中式文进士,光绪十二年十一月考封奉国将军。曾孙启功在自述历史的时候,说溥良为了考科举,“请求革去封号、俸禄。”光绪六年(1880年)二甲第三十七名进士,选庶吉士,散馆授编修。后历任广东学政、理藩院左侍郎、户部右侍郎、都察院满左