用于在程序指令的控制下处理数据的装置和方法制造方法及图纸

技术编号:13283671 阅读:52 留言:0更新日期:2016-07-09 00:49
用于处理数据的装置(2)包括诸如乱序处理器之类的第一执行电路(4),以及诸如顺序处理器之类的第二执行电路(6)。第一执行电路(4)比第二执行电路(6)具有更高的性能但使用更多的能量。控制电路(24)在第一执行电路(4)是活跃的和第二执行电路(6)是活跃的之间切换。控制电路包括预测电路,该预测电路被配置为根据最近执行的程序指令序列来预测待执行的下一程序指令序列的预测标识,然后根据该预测标识预测与下一程序指令序列应由第一执行电路执行还是应由第二执行电路执行相对应的预测执行目标。

【技术实现步骤摘要】
【国外来华专利技术】用于在程序指令的控制下处理数据的装置和方法
本专利技术涉及数据处理系统领域。更具体地,本专利技术涉及含有用于执行程序指令的多个执行机制的数据处理系统,且可在给定时间就哪个执行机制是活跃的以执行程序指令流来在多个执行机制之间做出选择。
技术介绍
已知提供数据处理系统,例如,采用由英国剑桥的ARM有限公司设计的big.LITTLE处理器技术的那些数据处理系统,该技术包含多个执行机制,活跃执行机制在这多个执行机制中被选择。这些处理器通常包括低性能和低功耗处理器核心连同高性能和高功耗处理器核心。当处理工作负载为不要求高性能时,则处理被切换以便由更节能的低功耗处理器核心执行。相反地,当处理工作负载为高性能是必要的时,则工作负载被切换到高性能处理器核心。该切换在这类系统中被执行的粒度是大的,因为其将处理器状态从小低功耗处理器核心移动到大高性能处理器核心可能花费成千上万的处理周期。虽然上面的系统可被具有优势地使用,已注意到的是,在许多现实生活处理负载中,高性能相对低功耗的要求之间的变化发生于比系统内可被处理的粒度水平更精细的粒度水平,在该系统中,当原因之一关闭时,处理被转移到另一处理器核心的整个处理器状态然后该其他处理器核心被启动。这限制了可被实现的益处。
技术实现思路
从一个方面看,本专利技术提供了一种用于在程序指令的控制下处理数据的装置,所述装置包括:第一执行电路,该第一执行电路被配置为执行程序指令;第二执行电路,该第二执行电路被配置为执行所述程序指令,所述第二执行电路在执行所述程序指令时比所述第一执行电路具有更低的能量消耗,以及所述第二执行电路比所述第一执行电路需要更长的时间来执行所述程序指令;以及控制电路,该控制电路被配置为控制所述程序指令由所述第一执行电路执行还是由所述第二执行电路执行,其中所述控制电路包括预测电路,该预测电路被配置为:(i)根据最近执行的程序指令序列预测待执行的下一程序指令序列的预测标识;以及(ii)根据所述预测标识,预测与所述下一程序指令序列应由所述第一执行电路执行还是应由所述第二执行电路执行相对应的预测执行目标;以及所述控制电路被配置为根据所述预测执行目标选择所述第一执行电路或所述第二执行电路来执行所述下一程序指令序列。本技术认识到,当执行第一执行电路和第二执行电路之间的切换以执行程序指令时,期望的是被选择使用的执行电路对于待执行的下一程序指令序列应是适当的。控制在使用的执行电路之间切换的一种方法是检查最近已被执行的程序指令序列的要求,并假设待执行的下一程序指令序列将具有相同的要求。尽管相邻程序指令序列的处理要求之间存在某些关联,但在实践中下一程序指令序列和上一程序指令序列将具有类似要求的预测在精度上是有限的。本技术通过提供预测电路改进该方法,该预测电路根据最近执行的指令序列预测待执行的下一程序指令序列的标识,然后使用下一程序指令序列的预测标识来预测该下一程序指令序列要求的执行目标。因此,预测电路首先预测什么将是待执行的下一程序指令序列的标识,然后使用该标识来预测哪个是该下一程序指令序列的最适当的执行目标。该技术能为预测的执行目标实现高度的适用性。将认识到的是,程序指令可被划分为程序指令序列,可在程序指令序列上以各种不同的方式做出预测。在监测和标识针对精度/唯一性加权的程序指令序列的复杂度和状态存储要求之间存在平衡,这些序列可用精度/唯一性标识。在某些实施例中,程序指令具有相关联的地址和默认程序流,该默认程序流以与在默认方向顺序向前通过地址相对应的顺序(例如,跟随增量程序计数器值)执行指令。在该上下文中,预测电路可将程序指令划分为序列,包括下一程序指令序列和最近执行的程序指令序列。该序列的划分可依照以下各项来执行:序列包含多于阈值数目的程序指令,以及序列受非顺序(non-sequential)指令约束,在非顺序指令处程序流在默认方向的反方向移动。程序指令的阈值数目确保序列至少具有最小长度,以便防止过频繁地改变执行电路,而用非顺序指令约束序列与程序流将其本身自然划分为序列的方式相匹配,其中序列共享特征并重复因此可服从精确和有用的预测。非顺序指令可包括以下各项中的一个或多个:分支指令、调用指令以及返回指令。在默认方向为增量地址值的情况下,则这些非顺序指令将是分支指令、调用指令以及返回指令的示例,其使得待执行的后续指令的地址在程序流执行顺序中前面的指令之前在存储器地址空间内的地址处被启动。因此,这类非顺序指令将是反向分支指令、引起地址值反向移动的调用指令或引起地址值反向移动的返回指令。将认识到的是,若调用指令引起前向跳跃,则将固有的是,后续的返回指令将引起反向跳跃并因此提供非顺序指令,针对非顺序指令程序流到序列的划分可为键控的。程序指令序列自由包含一个或多个非顺序指令,因此非顺序指令可在被达到的该序列的阈值数目的程序指令之前在序列内发生。程序指令序列在其末端受非顺序指令约束。非顺序指令可被包括于其约束的序列内或可事实上被包括于相邻的序列内。在某些实施例中,程序指令序列在其执行开始受程序流内之前的程序指令序列内的非顺序指令约束。为程序指令序列生成有用的标识符值的有效方式是在预测电路内包括散列生成电路,该散列生成电路根据程序指令序列内的至少一些非顺序指令的地址值生成散列值(hashvalue),散列值形成该程序指令序列的标识符值的至少一部分。程序指令序列内非顺序指令的地址可被视为提供该序列的一种“指纹”,该“指纹”可被用于生成对于该序列足够特定的标识符值,以提供与其他序列的良好区分而相对有效地生成和存储。在某些实施例中,散列生成电路被配置为使用散列函数生成散列值,该散列函数给程序指令序列内在程序流顺序上较晚被布置的非顺序程序指令的地址值较大的权重。已发现的是,该后面发生的非顺序程序指令的地址值在其他序列通过散列函数被组合到散列值中时在其他序列之间提供更好的区分,因此在散列值的生成中给这些地址值较大的权重是有利的。散列生成电路可被配置为使用散列函数生成散列值,该散列函数取决于程序指令序列内布置的程序流顺序中最近的N个非顺序程序指令。针对该实施例,N是整数值,且在某些示例实施例中,可实质等于15。这为散列值提供良好的特定性,同时不过度地增加散列值的存储和计算负担。在某些实施例中,预测电路也可被配置为使用程序指令的目标地址值的至少一部分作为该程序指令序列的标识符值的至少一部分,该程序指令在终止程序指令序列的非顺序程序指令之后被执行。跟随在序列之后的目标指令的目标地址已被发现在程序指令的不同序列之间提供某种程度的区分,期望的是将下一执行电路目标的不同的预测进行关联。在某些实施例中,被应用于将程序流划分为序列的阈值数目是在100和10000之间。具体地,在某些示例实施例中,阈值数目实质为300。预测电路使用针对序列生成的标识符值的方式可变化。在某些实施例中,预测电路被配置为生成最近执行的指令序列标识符值并包括标识符预测表电路,该标识符预测表电路使用该标识符值作为索引以便预测待执行的下一程序指令序列的标识符值。利用这种类型的实施例,预测电路还可包括目标预测表电路,该目标预测表电路使用下一程序指令序列的标识符作为到其自身的索引以便对预测执行目标进行预测。因此,标识符预测表电路被用于在刚被执行的序列的标识符和预本文档来自技高网...

【技术保护点】
一种用于在程序指令的控制下处理数据的装置,所述装置包括:第一执行电路,所述第一执行电路被配置为执行程序指令;第二执行电路,所述第二执行电路被配置为执行所述程序指令,所述第二执行电路在执行所述程序指令时比所述第一执行电路具有更低的能量消耗,以及所述第二执行电路比所述第一执行电路需要更长的时间来执行所述程序指令;以及控制电路,所述控制电路被配置为控制所述程序指令由所述第一执行电路执行还是由所述第二执行电路执行,其中所述控制电路包括预测电路,所述预测电路被配置为:(i)根据最近执行的程序指令序列来预测待执行的下一程序指令序列的预测标识;以及(ii)根据所述预测标识,预测与所述下一程序指令序列应由所述第一执行电路执行还是应由所述第二执行电路执行相对应的预测执行目标;以及所述控制电路被配置为根据所述预测执行目标选择所述第一执行电路或所述第二执行电路来执行所述下一程序指令序列。

【技术特征摘要】
【国外来华专利技术】2013.11.29 US 14/093,0421.一种用于在程序指令的控制下处理数据的装置,所述装置包括:第一执行电路,所述第一执行电路被配置为执行程序指令;第二执行电路,所述第二执行电路被配置为执行所述程序指令,所述第二执行电路在执行所述程序指令时比所述第一执行电路具有更低的能量消耗,以及所述第二执行电路比所述第一执行电路需要更长的时间来执行所述程序指令;以及控制电路,所述控制电路被配置为控制所述程序指令由所述第一执行电路执行还是由所述第二执行电路执行,其中所述控制电路包括预测电路,所述预测电路被配置为:(i)根据最近执行的程序指令序列来预测待执行的下一程序指令序列的预测标识;以及(ii)根据所述预测标识,预测与所述下一程序指令序列应由所述第一执行电路执行还是应由所述第二执行电路执行相对应的预测执行目标;以及所述控制电路被配置为根据所述预测执行目标选择所述第一执行电路或所述第二执行电路来执行所述下一程序指令序列。2.如权利要求1所述的装置,其中,所述程序指令具有相关联的地址和默认程序流,所述默认程序流以与在默认方向顺序向前通过所述地址相对应的顺序执行指令,以及所述预测电路根据以下各项将所述程序指令划分为程序指令序列,所述程序指令序列包括所述下一程序指令序列和所述最近执行的程序指令序列:(i)所述程序指令序列包含多于阈值数目的程序指令;以及(ii)所述程序指令序列受非顺序指令约束,在所述非顺序指令处程序流在与所述默认方向相反的方向移动。3.如权利要求2所述的装置,其中,所述非顺序指令包括以下各项中的一个或多个:分支指令、调用指令以及返回指令。4.如权利要求2和3中任一项所述的装置,其中,所述默认方向相应于与所述程序指令相关联的顺序增加地址。5.如权利要求2所述的装置,其中,所述程序指令序列在约束所述程序指令序列的所述非顺序指令之间包含一个或多个非顺序指令。6.如权利要求2所述的装置,其中,所述程序指令序列在其执行开始受所述程序流内之前程序指令序列内的非顺序指令约束。7.如权利要求2所述的装置,其中,所述预测电路包括散列生成电路,所述散列生成电路被配置为根据程序指令序列内所述非顺序指令中的至少一些非顺序指令的地址值生成散列值,所述散列值被用作所述程序指令序列的标识符值的至少一部分。8.如权利要求7所述的装置,其中,所述散列生成电路被配置为使用散列函数生成所述散列值,所述散列函数给所述程序指令序列内在程序流顺序中较后的非顺序程序指令的地址值较大的权重。9.如权利要求7所述的装置,其中,所述散列生成电路被配置为使用散列函数生成所述散列值,所述散列值取决于所述程序指令序列内的程序流顺序中最近的N个非顺序程序指令,其中N是等于15的整数值。10.如权利要求7所述的装置,其中,所述预测电路被配置为使用程序指令的目标地址值的至少一部分作为程序指令序列的所述标识符值的至少一部分,所述程序指令将在终止所述程序指令序列的非顺序程序之后被执行。11.如权利要求...

【专利技术属性】
技术研发人员:史鲁提·帕特曼纳哈安德鲁·鲁克法尔力图帕那·达斯斯科特·马科
申请(专利权)人:密执安大学评议会
类型:发明
国别省市:美国;US

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

1