用于分支预测的方法和设备技术

技术编号:2848160 阅读:195 留言:0更新日期:2012-04-11 18:40
一种用于预测计算机系统内条件分支结果的系统和方法,所述方法包括如下步骤:识别(105)条件分支的出现,获得(106)自从先前分支以来与系统活动有关的数据,把所述数据和与先前系统活动有关的数据进行比较(110),并且基于这种比较来预测(108)分支结果。可以使用活动监控器(图3-20)来提供与系统活动有关的数据。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种用于分支预测的方法和系统,所述方法和系统特别适合用于执行可编程集成电路的连续程序的处理器中。
技术介绍
分支是被中断的连续程序中的点。如果分支是无条件的,那么其结果始终是相同的,即,所述分支始终被采用。然而,当所述分支有条件时,其结果只有当所述条件是已知的时才能够获知。换言之,基于测试某些数据段,条件分支指令有条件地引起控制转移。除目标地址的描述之外,这种指令还包含待测试的条件。这种条件通常是数字的代数属性的其中一个较小集合。如果条件符合,那么采用分支。否则,不采用它。流水线处理器的性能由于执行条件分支所要求的时间而严重受到限制。当在待测试的数据的代数条件已经确定以前取出所述分支时,会出现由流水线计算机中的条件分支引起的这种性能降低。在所述分支指令自身指定待测试数据的位置的那种计算机中,这种现象是最不利的。对代数条件的评估只是在已经经过流水线的多个阶段以后才被执行。由于直到取出所述分支指令才可以开始,故而直到取出所述分支之后的多个时钟周期才可以获知待测试的条件。由于直到已经测试过数据之后才可以肯定地确定出待取出的下一指令的位置,所以在多个时钟周期内无法取出指令。为了减少这种性能的降低,可以使用分支预测技术。分支预测使用同一分支或者其它分支的历史来预测当前分支的结果。所述分支因此可以基于这种预测来执行,以此试图避免浪费性能。当然,每当预测的结果不正确时,所述系统必须回到分支点,在不正确地预测的分支点之后取出的所有指令的执行效果必须被逆转,并且所述系统然后必须经由正确的分支结果继续执行。由此,由于不良分支之后取出的所有指令必须被丢弃,所以它们象征所有努力被浪费,并且因此很显然的是,机器的性能与分支预测的准确性直接相关。对于用于分支预测而言存在各种常规的思想。分支预测方案可以是静态的或者动态的。在静态方案中,所述分支指令自身包含预测;这通常基于已经执行了典型数据集上的程序的编译器、由生成程序的编译器来提供。只有当计算机的指令集已经着眼于这一方面而进行设计时,才能够进行静态预测。大部分商业上成功的指令集不提供允许静态分支预测的手段。动态分支预测使用与程序执行期间由硬件收集的分支有关的信息。所述程序只得“获知”给定分支指令的过去执行模式,因此其动态预测必须基于这种信息。由于条件分支是十分频繁的,所以可以为每个趋势存储的历史量不是非常大,从而避免了对非常大的存储能力的需要。通常,分支预测信息只保存在程序中较小、但是变化的分支子集上。另一思想被称为“双模态”分支预测,并且涉及使用两位饱和计数器作为预测指示符以便表明是否应该采用分支。两位饱和计数器利用这样的假定,即应该成组地采用分支,如此使得应该采用分支还是分支组可以就最后采用分支还是分支组来进行预测。例如在第WO 98/36350号国际性专利申请、第5,896,529号美国专利、第6,438,656 B1号美国专利以及第5,948,100号美国专利中描述了各种已知的分支预测方法。由此,概括地说,依照现有技术,分支预测势必主要基于如下两个思想的组合——基于其历史预测分支结果。在该情况下,通常使用表来存储最后的结果,也就是说,所述分支执行2或者4次。基于最频繁的结果,做出预测。然而应该很明显的是,预测可靠程度将改变。例如,如果所述分支结果始终是相同的,那么可靠程度将是100%。然而,如果分支结果每次改变,那么可靠程度将是0%。——基于先前n个分支的结果来预测分支结果。动作和实现方式与前述的概念相似,只是预测所基于的信息明显不同。再次,预测的可靠程度将极大地改变。当分支预测的可靠程度不是很高时,预测很可能失败。我们现在已经设计出了改进的结构。
技术实现思路
依照本专利技术,提供了用于预测计算机系统内条件分支的结果的设备,所述设备包括用于识别条件分支出现的装置,用于获得自从先前分支以来与系统活动(activity)有关的数据的装置,用于把所述数据同与先前系统活动有关的数据进行比较的装置以及用于基于这种比较来预测分支结果的装置。此外,依照本专利技术,提供了用于预测计算机系统内条件分支的结果的方法,所述方法包括如下步骤识别条件分支的出现,获得自从先前分支以来与系统活动有关的数据,把所述数据同与先前系统活动有关的数据进行比较并且基于这种比较来预测分支的结果。在优选的实施例中,与系统活动有关的数据包括平均系统活动。优选的是,提供活动历史表,其中存储有与先前系统活动有关的数据以及与这种活动对应的分支结果。由此,在优选的实施例中,当遇到条件分支时,在当前和先前分支之间检索涉及所述系统活动的数据(优选的是,通过活动监控器来检索),把此数据与活动历史表中包含的数据进行比较,并且选择以下的分支结果,与其相关的活动数据最接近于当前所检索的活动数据。然后,优选的是,据此利用最新的活动数据和所选的分支结果来更新活动历史表。在优选的实施例中,所述设备还包括用于使用所述和/或先前分支的结果历史来预测条件分支的结果的装置。有益的是,如果使用分支历史的分支结果预测的准确性的可靠程度相对较低,也许低于预定阈值,那么与系统活动有关的数据只用于分支结果预测。依照现有技术,分支预测考虑了分支历史,但没有虑及产生此历史的系统活动。本专利技术提出了使用另一个参数进行分支预测,即上一次预测的分支和当前分支之间的系统活动、与执行了多少计算量相关的活动。活动监控主要是一种对同一系统(或者部分系统)的先前系统状态和当前系统状态之间差异的测量。差异越大,系统活动就越大。存在多个方式来实现活动监控器,并且这些对于所属
的专业人员而言是显而易见的。较为简单的一种方式涉及监控电源电流,其也给予系统活动。利用文献中众所周知的电路来测量平均电流并且由此监控平均活动通常是可能的。稍候比较详细地描述示例性活动监控器。通过所附的示例性附图和随后的描述能够阐明本专利技术的这些以及其它特征。附图说明现在根据附图、仅仅通过举例来描述本专利技术的实施例,其中图1是举例说明依照本专利技术示例性实施例的分支预测方法的示意性流程图;图2是举例说明用于本专利技术示例性实施例的活动监控器操作的基本原理的示意性电路图;并且图3举例说明了示例性活动监控器的一般实施例。具体实施例方式参照附图的图1,举例说明了用于图示依照本专利技术示例性实施例的分支预测方法的流程图。在步骤100,取出指令,并且就它是否是分支做出确定(在步骤102)。如果它不是分支,那么执行指令(步骤104)。如果是分支,那么就它是否是有条件的做出确定(步骤105)。如果没有,执行指令(步骤104),否则在步骤106检索最后基本块(即,上一次预测的分支和当前分支之间的代码块)的与系统活动有关的数据。提供了活动历史表,其中把与平均系统活动有关的数据与各个结果相关联地存储。比较检索出的活动数据(在步骤110),并且通过选择存储在活动历史表中的结果来预测分支结果(步骤108),其具有与已检索的活动数据最类似的活动。然后据此执行所述分支(步骤104),并且更新所述表以便反映最新的系统活动数据和所预测的分支结果。然后,取出下一指令并且再次执行所述过程。由此,概括地说,使用系统活动进行分支预测涉及存储每个分支结果的平均活动;把最后基本块的活动与这些值进行比较;并且基于哪些已存储的结果具有最类似的活动来预测分支本文档来自技高网
...

【技术保护点】
用于预测计算机系统内条件分支的结果的设备,所述设备包括用于识别条件分支出现的装置,用于获得自从先前分支以来与系统活动有关的数据的装置(20),用于把所述数据同与先前系统活动有关的数据进行比较的装置,以及用于基于这种比较来预测分支结果的装置。

【技术特征摘要】
【国外来华专利技术】EP 2003-7-9 03102064.71.用于预测计算机系统内条件分支的结果的设备,所述设备包括用于识别条件分支出现的装置,用于获得自从先前分支以来与系统活动有关的数据的装置(20),用于把所述数据同与先前系统活动有关的数据进行比较的装置,以及用于基于这种比较来预测分支结果的装置。2.如权利要求1所述的设备,其中与系统活动有关的数据包括平均系统活动。3.如权利要求1或者权利要求2所述的设备,其中提供了活动历史表,其中存储了与先前系统活动有关的数据以及与这种活动相对应的分支结果。4.如权利要求3所述的设备,包括当遇到条件分支时、在当前和先前分支之间检索涉及所述系统活动的数据的装置,以及用于把此数据与活动历史表中包含的数据进行...

【专利技术属性】
技术研发人员:F佩索拉诺
申请(专利权)人:NXP股份有限公司
类型:发明
国别省市:NL[荷兰]

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

1