通过指令不确定度的多线程处理器指令平衡制造技术

技术编号:10525376 阅读:127 留言:0更新日期:2014-10-09 10:55
一种用于指令执行的计算机系统包括具有流水线的处理器。所述系统被配置为:执行包括以下步骤的方法:在所述流水线中取回多条指令,其中,所述多条指令包括多条分支指令;对于所述多条分支指令中的每一条,将分支不确定度分配给所述多条分支指令中的每一条;对于所述多条指令中的每一条,分配指令不确定度,其为较旧的未判决的分支的分支不确定度的总和;以及在所述流水线中基于指令不确定度的当前总和来平衡所述指令。

【技术实现步骤摘要】
【国外来华专利技术】通过指令不确定度的多线程处理器指令平衡
本专利技术涉及多线程处理,更具体地说,涉及用于通过指令不确定度在多线程处理 器内的指令平衡的系统、方法和计算机程序产品。
技术介绍
在多线程流水线设计中存在很多目标,包括但不限于尽可能快地运行每个单独线 程以及优化每瓦特的工作单元。流水线是并行性的一种具体形式,其中,可以在同一硬件上 交错若干指令的执行。无论流水线设计的目标如何,对于程序的每个线程,都可能遇到多分 支指令。当线程经历分支时,预测分支将采取哪个方向,然后沿着所预测的路径来执行线 程。典型地按每分支预测表项2比特饱和计数器来实现分支预测,其中,状态是:00(强不 采用),弱不采用(01)、弱采用(10)和强采用(11)。在已判决的所采用的分支上,计数器增 力口;然而,在到达11的状态时,计数器在该值饱和。在已判决的不采用的分支上,计数器 减少;然而,在到达状态〇〇时,计数器在该值饱和。对于状态 10和状态 11,将分支 预测为采用,而对于状态〇〇和01,将分支预测为不采用。该饱和计数器为分支提供方 向;然而,关于分支的精度没有声明。例如,在for循环上,除了失败情况之外,每次都采用 分支。在失败迭代时,置信度计数器从11降级为10。下一次遇到for循环,将再次采 用该分支。故此,在11的状态下,对于遇到除了失败之外的所有情况采用分支。在10 的状态时,将再次采用分支。故此,强状态并不指示比弱状态更置信的预测。在这种进行预 测的方案中未考虑的是分支预测的精度。在多线程处理环境中,多线程可以同时执行工作。 故此,多线程可以运行在流水线中,每个线程遇到多分支,并且通过流水线传输所预测的状 态(强/弱采用/不采用),从而在分支判决时,可以更新分支表内的预测状态。此外,在 多线程处理器中,存在各线程之间所共享的资源。这些动态划分的资源是基于先到先服务 的。虽然动态资源允许硅面积和功率优化,但存在动态资源的很多性能限制,例如线程挂起 (hogging),其产生性能限制因素。例如,当一个线程X停止(stall)时,另一线程Y有能力 用上大量流水线资源。线程Y可能正创建扔掉(throw-away)工作(例如,下行到所确定的 分支错误路径)并且从X获取X可能对于未扔掉的工作而在近期未来中使用的资源。
技术实现思路
示例性实施例包括一种用于指令执行的计算机系统,所述系统包括:处理器,具有 流水线,其中,所述系统被配置为:执行包括以下步骤的方法:在所述流水线中取回多条指 令,其中,所述多条指令包括多条分支指令;对于所述多条分支指令中的每一条,将分支不 确定度分配给所述多条分支指令中的每一条;对于所述多条指令中的每一条,分配指令不 确定度,其为较旧的未判决的分支的分支不确定度的总和;以及在所述流水线中基于指令 不确定度的当前总和来平衡所述指令。 附加示例性实施例包括一种用于流水线中的指令执行的计算机实现的方法,所述 方法包括:在所述流水线中获取多条指令,其中,所述多条指令包括多条分支指令;对于所 述多条分支指令中的每一条,将分支不确定度分配给所述多条分支指令中的每一条;对于 所述多条指令中的每一条,分配指令不确定度,其为较旧的未判决的分支的分支不确定度 的总和;以及在所述流水线中基于指令不确定度的当前总和来平衡所述指令。 其它示例性实施例包括一种用于流水线中的指令执行的计算机程序产品。所述计 算机程序产品包括:有形存储介质,可由处理电路读取,并且存储用于所述处理电路执行的 指令,以用于执行方法。所述方法包括:在所述流水线中取回多条指令,其中,所述多条指令 包括多条分支指令;对于所述多条分支指令中的每一条,将分支不确定度分配给所述多条 分支指令中的每一条;对于所述多条指令中的每一条,分配指令不确定度,其为较旧的未判 决的分支的分支不确定度的总和;以及在所述流水线中基于指令不确定度的当前总和来平 衡所述指令。 通过本专利技术的的技术来实现附加特征和优点。本专利技术的其它实施例和方面在此详 细描述并且被看作一部分所要求的本专利技术。为了更好地理解本专利技术的优点和特征,参照描 述和附图。 【附图说明】 在说明书的结尾处的权利要求中特定地指出并且独特地要求被看作本专利技术的主 题内容。从结合附图的以下详细描述,本专利技术的以上和其它特征和优点是清楚的,其中: 图1示出用于通过指令不确定度在多线程处理器内进行指令平衡的系统100的框 图; 图2示出根据示例性实施例的可以实现示例性指令平衡方法的处理器指令流水 线系统的框图; 图3示出用于通过指令不确定度在多线程处理器内进行指令平衡的方法的流程 图; 图4示出可以实现为跟踪流水线中的不确定度的表的示例; 图5示意性示出根据示例性实施例的可以实现的静态水印的示例; 图6示意性示出根据示例性实施例的可以实现的来自发布队列的刷新(flush)的 示例;以及 图7示出在具有作为制造物的有形介质中实施的计算机程序代码逻辑的计算机 可读/可用的介质上的计算机程序产品的示例。 【具体实施方式】 在示例性实施例中,系统和方法在处理器中实现同时多线程运行,以允许处理器 内核实现每晶体管更高的吞吐量(即更多工作)。在给定的流水线中,在此所描述的系统和 方法不仅计算每条所预测的路径的方向,而且还计算用于每条所预测的路径的置信度/精 度。此外,跟踪对于所预测的分支的不确定度并且通过每个所预测的分支传输对于所预测 的分支的不确定度,以便关于从每个线程执行指令的顺序进行判断。通过允许线程全空 闲并且只要存在可用的资源,就要求如每个线程期望的那样多的资源,资源在追求实现最 大可能吞吐量的意义上并未在各线程之间得以划分。增加吞吐量公正性的一个区域是在分 支的区域周围。每当给定的线程更有可能(相对于其它线程)对于给定的分支得到不正确 地预测的方向/目标时,就应在资源正消耗/请求时回退,并且允许其它(即更高置信的) 线程要求其资源的共享。在单线程处理器中,所有资源专用于单线程。在同时多线程(SMT) 处理器中,这些资源在并行执行线程之间是共享的。一些资源是静态地划分的,而其它资 源是动态地划分的。动态地划分的资源是基于先到先服务的。虽然动态资源允许优化,但 存在很多动态资源的性能限制。例如,当一个线程X停止达几个周期时,另一线程Y有能力 利用大量流水线资源。在克服停止时,线程Y可能正创建扔掉(throw-away)工作(例如, 下行到分支错误路径)并且从线程X获取线程X可能对于未扔掉的工作而使用的资源。 图1示出用于通过指令不确定度在多线程处理器内进行指令平衡的系统100的框 图。可以以硬件、软件(例如固件)或其组合来实现在此所描述的方法。在示例性实施例 中,以作为专用或通用数字计算机(例如个人计算机、工作站、小型计算机或大型计算机) 的微处理器的一部分的硬件来实现在此所描述的方法。系统100因此包括通用计算机101。 在示例性实施例中,关于硬件架构,如图1所示,计算机101包括处理器105、耦合 到存储器控制器115的存储器110以及以通信方式经由本地输入/输出控制器135而耦合 的一个或多个输入和/或输出(I/O)设备140、145 本文档来自技高网
...

【技术保护点】
一种用于流水线中的指令执行的计算机实现的方法,所述方法包括:在所述流水线中取回多条指令,其中,所述多条指令包括多条分支指令;对于所述多条分支指令中的每一条,将分支不确定度分配给所述多条分支指令中的每一条;对于所述多条指令中的每一条,分配指令不确定度,其为较旧的未判决的分支的分支不确定度的总和;以及在所述流水线中基于指令不确定度的当前总和来平衡所述指令。

【技术特征摘要】
【国外来华专利技术】2012.02.06 US 13/366,9991. 一种用于流水线中的指令执行的计算机实现的方法,所述方法包括: 在所述流水线中取回多条指令,其中,所述多条指令包括多条分支指令; 对于所述多条分支指令中的每一条,将分支不确定度分配给所述多条分支指令中的每 一条; 对于所述多条指令中的每一条,分配指令不确定度,其为较旧的未判决的分支的分支 不确定度的总和;以及 在所述流水线中基于指令不确定度的当前总和来平衡所述指令。2. 如权利要求1所述的方法,还包括:分配用于与所述多条指令的多个指令子集关联 的多个线程中的每一个的多个不确定度。3. 如权利要求2所述的方法,还包括:根据所述多个不确定度来计算...

【专利技术属性】
技术研发人员:BR普拉斯基A布尤克托苏诺格卢V斯里尼瓦桑
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1