Tomasulo算法

✍ dations ◷ 2025-04-12 10:09:42 #算法

Tomasulo算法(托马苏洛算法)是IBM的Robert Tomasulo在1967年研发出来的一种用来改善处理器乱序执行的指令级并行性的硬件算法。

在处理器中,先后执行的指令之间经常具有相关性(例如后一条指令用到前一条指令向寄存器写入的结果),因此早期简单的处理器使后续指令停顿,直到其所需的资源已经由前序指令准备就绪。Tomasulo算法则通过动态调度的方式,在不影响结果正确性的前提下,重新排列指令实际执行的顺序(乱序执行),提高时间利用效率。IBM System/360 Model 91处理器的浮点运算器中率先使用了这种算法。:92

该算法与之前同样用于实现指令流水线动态调度的计分板不同在于它使用了寄存器重命名机制。指令之间具有数据相关性(例如后条指令的源寄存器恰好是前条指令要写入的目标寄存器),进行动态调度时必须避免三类冒险:写后读(Read-after-Write, RAW)、写后写(Write-after-Write, WAW)、读后写(Write-after-Read, WAR)。:90:319-321第一种冒险也被称为真数据相关(true data dependence),而后两种冒险则并没有那么致命,它们可以由寄存器重命名来予以解决。:321-322Tomasulo算法使用了一个共享数据总线(common data bus, CDB)将已计算出的值广播给所有需要这个值作为指令源操作数的保留站。该算法尽可能降低了使用计分板技术导致的流水线停顿,从而改善了并行计算的效率。

在指令的发射(issue)阶段,如果操作数和保留站都准备就绪,那么指令就可以直接发射并执行。如果操作数未就绪,则进入保留站的指令会跟踪即将产生这个所需操作数的那个功能单元。如果连可用的保留站功能单元都已经不够用,那么该指令必须被停顿。为了化解读后写(WAR)和写后写(WAW)冲突,需要在该阶段进行指令的寄存器重命名。从指令队列中取出下一条指令,如果其所用到的操作数目前位于寄存器中,那么如果与指令匹配的功能单元(这类处理器通常具有多个功能单元以发挥指令级并行的优势)当前可用,则发射该指令;否则,由于没有可用的功能单元,指令被停顿,直到保留站或缓存可用。尽管执行时可能并未按照指令代码的先后顺序,但是它们在发射过程还是按照原先的顺序。这是为了确保指令顺序执行时的一些现象,例如处理器异常,能够以顺序执行时的同样顺序出现。:90-91下一个阶段为执行阶段。在该阶段,指令对应的操作被执行。执行前需要保证所有操作数可用,同时写后读(RAW)冲突已经被化解。系统通过计算有效地址来避免存储区的冲突,从而保证程序的正确性。最后的阶段为写结果阶段,算术逻辑单元(ALU)的计算结果被写回到寄存器,以及任何正在等待该结果的保留站中,如果是存储(store)指令,则写回到存储器中。

相关

  • The Australian《澳大利亚人报》(英语:The Australian)是澳大利亚销量最高的大报。日报流通量11万6千份,周末版流通量25万5千份。 该报2017年9月推出中文版。《澳大利亚人报》由新闻集团旗下的
  • 硫气孔火山喷气孔(英语:fumarole)是一种地壳裂缝,通常出现于火山附近。火山喷气孔会喷发蒸气及各种气体,如二氧化硫、盐酸和硫化氢,其中喷发硫化物质的,则被称为硫气孔。火山喷气孔会由许
  • 肥沃月弯新月沃土或称肥沃月湾(英语:Fertile Crescent),是指西亚、北非地区两河流域及附近一连串肥沃的土地,包括累范特、美索不达米亚和古埃及,位于今日的以色列、西岸、黎巴嫩、约旦部分
  • 迪维尼奥文森特·迪维尼奥(英语:Vincent du Vigneaud,1901年5月18日-1978年12月11日),美国生物化学家,1955年获诺贝尔化学奖。1901年:范托夫 | 1902年:费歇尔 | 1903年:阿伦尼乌斯 | 1904年:拉
  • 陈俊亮陈俊亮(1933年10月10日-),浙江宁波人,交换技术与通信网专家,中国科学院院士、中国工程院院士。1955年7月,毕业于上海交通大学电子讯息系。1961年5月,获苏联莫斯科电讯工程学院副博土
  • QJ01A·B·C·D·G·H·QI·J·L·M·N·P·R·S·VATC代码J01(抗菌药)是解剖学治疗学及化学分类系统的一个药物分组,这是由世界卫生组织药物统计方法整合中心(The WHO Collaboratin
  • 朝鲜王朝君主列表下表为朝鲜王朝1392年至1910年(含大韩帝国)的历代君主列表。体元赞化锡极定命圣宪英哲睿诚渊敬隆德纯功笃休弘庆洪运盛烈宣光濬祥尧钦舜恭禹勤汤正启天建通神勋肃谟干大坤厚广
  • 拟天牛科拟天牛科(Oedemeridae)是世界性分布的鞘翅目昆虫,属于拟步总科。本科由将近100个属1500种所组成,幼生期多与朽木伴生而成虫则常发现于花丛。拟天牛科成员体型中等,身体修长且柔软
  • 英德石英石又名英德石,因于英州(现广东省英德市)得名。是与太湖石、灵璧石、黄蜡石齐名的四大园林名石之一。“透、漏、瘦”三个字简练的概括了英石的特点,其观赏和收藏价值极高,可以制
  • 临海路 (新园乡)临海路(英文:Linhai Rd.)是屏东县新园乡南端的南北向主要干道。本道路经乌龙地区,全线属台17线,为乌龙部落外环道路。起端于卧龙路口,前端衔接西行往高雄市林园区。末端于东港大桥