Tomasulo算法

✍ dations ◷ 2025-05-11 07:34:17 #算法

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)指令,则写回到存储器中。

相关

  • 事业单位事业单位,按照中华人民共和国国家事业单位登记管理局《事业单位登记管理暂行条例实施细则》的规定,是指国家为了社会公益目的,由国家机关举办或者其他组织利用国有资产举办的,从
  • 伊特鲁里亚伊特鲁里亚(Etruria),也译作伊特鲁利亚、埃特鲁里亚、伊楚利亚,是处于现代意大利中部的古代城邦国家。伊特鲁里亚的位置在包括了现今托斯卡纳、拉齐奥、翁布里亚的区域。伊特鲁
  • 真核生物域真核生物(学名:Eukaryota)是其细胞具有细胞核的单细胞生物和多细胞生物的总称,它包括所有动物、植物、真菌和其他具有由膜包裹着的复杂亚细胞结构的生物,而不包括细菌和古菌,因它
  • 韦斯特综合症韦斯特症候群或韦氏症候群(West syndrome)是发生于婴幼儿身上罕见的癫痫失调症状。此症状依其发现者英国医师威廉·詹姆士·韦斯特William James West(1793-1848)来命名。韦斯特
  • 圣公会圣人历坎特伯雷大主教 (贾斯汀·韦尔比) 普世圣公宗主教长会议 兰柏会议 普世圣公宗咨议会 主教/教区 主教制基督教 · 基督教教会 (耶稣 · 基督 · 圣保罗) 圣公宗(历史) 圣公宗
  • 通用商标通用商标,类似通用名称,不同的是后者一般用于区别不同种类的商品(如“电脑”),而前者则多指由驰名商标转化而成的通用名称。通用商标不再具有显著性和代表性,不能代表某一个品牌的
  • 宪章《东盟宪章》,全称是《东南亚国家联盟宪章》,于2007年11月20日在新加坡签署,签订者为东盟十国的元首。该宪章的签订,将使东盟从宪章签署前的松散组织,转变成为一个更具正式及有约
  • 绰号绰号是人的一种非正式的名字,是别名的一种。表示亲密或喜爱的绰号也叫昵称;表示幽默感或嘲弄的绰号也叫诨号(浑号)、诨名(浑名)。在某些场合下,人们习惯不使用本名,而是用绰号来代替
  • 蛋白质交互作用蛋白质交互作用(英语:Protein–protein interactions,缩写:PPIs)是指两种或以上的蛋白质结合的过程,通常旨在执行其生化功能。在细胞中,大量蛋白质元件组成分子机器,透过蛋白质交互
  • 华金·德·莫斯克拉华金·马里亚诺·莫斯克拉·伊·阿博莱达(西班牙语:Joaquín Mariano Mosquera y Arboleda,1787年12月14日-1878年4月4日)哥伦比亚政治家,1830年和1831年两次担任大哥伦比亚总统。