用于取消对循环的数据预取请求的方法和设备的制造方法_3

文档序号:9355152阅读:来源:国知局
且被指派输出“00”以指示先前CB指令被强指示为尚未执行。执行状态计数器的“11”输出和“00”输出将为饱和输出值。执行状态计数器将与经检测软件循环中的每一 CB指令相关联或提供每一 CB指令的状态。然而,特定实施方案可能限制用于所述实施方案中的执行状态计数器的数目,且因此限制经预测的CB指令的数目。检测电路146通常在第一次进入软件循环时复位执行状态计数器。
[0034]替代地,禁用预测旗标可与待预测的每一 CB指令而非执行状态计数器相关联。如果先前已确定相关联的CB指令已执行,那么将禁用预测旗标设定为有效以禁用预测。识别经执行的先前CB指令暗示用于预测CB指令的不执行情形的可信度将低于可接受程度。
[0035]索引计数器也可供CHT 152使用以确定软件循环中的哪一 CB指令被计数或评估。例如,在具有五个或五个以上CB指令的循环中,第一 CB指令可具有索引“000”,且第四入选条件分支指令可具有索引“011”。索引表示CHT 152中用以存取对应CB指令的所存储执行状态计数器值的地址。
[0036]预测电路122接收特定CB指令的预测信息(例如,执行状态计数器输出值),且在(例如)图1的解码级131期间预测CB指令将通常分支返回到软件循环开始处,且未预测出达到循环退出情形。在一个实施例中,预测电路122可预测由CB指令指定的条件评估到非分支状态、代码退出或使循环失败。预测电路122追踪CB指令。如果CB指令经预测为分支返回到循环开始处,那么预测信息指示此状态。如果确定CB指令未分支返回,那么追踪电路产生取消未决预取请求信号,且进行条件评估以确定是否进行了不正确预测。如果进行了不正确预测,那么也可清空管线,更新CHT 152中的执行状态计数器,且在一个实施例中,标记相关联的CHT条目以指示特定CB指令并不从此开始预测。在另一实施例中,预测逻辑单元122也可在确定错误预测了 CB指令后即改变预指定的评估准则,以使预测准则从此开始更为保守。
[0037]进一步认识到,并非所有循环皆具有类似特性。如果特定循环提供不良预测结果,那么在预测逻辑电路122中将彼循环标记为禁用预测。以类似方式,特定循环可在操作情境的一个集合下操作而具有良好预测,且可在操作情境的不同集合下操作而具有不良预测。在此状况下,操作情境的辨识允许启用预测、停用预测,或仅通过适合于操作情境的不同评估准则来启用预测。
[0038]图2A说明用于在检测到循环结束分支后即取消未决非必要数据预取请求的过程200。在块202处,监视处理器代码执行以查找软件循环。在决策块204处,作出是否已检测到软件循环的确定。例如,可通过在遍历软件循环的第一遍次识别到表示软件循环的开始处的位置的反向分支来确定软件循环,如上文所描述。如果未识别到软件循环,那么过程200返回到块202。如果已识别到软件循环,那么过程200继续进行到块206。在代码中的此点处,已执行软件循环的第一循环且已准备好开始软件循环的下一循环。
[0039]在块206处软件循环的下一循环中,监视处理器代码以查找CB指令。在决策步骤208处,(例如)在管线解码级(例如,图1的解码级131)期间作出是否已检测到CB指令的确定。如果未检测到CB指令,那么过程200返回到块206。如果已检测到CB指令,那么过程200继续进行到决策块210。在决策块210处,例如,基于条件谓词的评估来作出条件分支(CB)指令是否经解析以结束循环的确定。存在可检测到的数种类型的CB指令评估。例如,经检测CB指令的第一评估可解析出CB指令在软件循环的结尾处,但评估以继续循环处理。例如,在遍历软件循环的第一遍次中识别软件循环的反向分支CB指令通过处理器代码中的其地址位置来标示。又,对于软件循环的数个指定反复尚未完成的状况,CB指令解析以将处理器分支返回到软件循环的开始处。经检测CB指令的第二评估可解析出CB指令在软件循环的结尾处,且评估以结束软件循环。经检测CB指令的第三评估可解析出CB指令在软件循环内,但在评估为被采用或未采用时,处理器代码保留在软件循环中。又,CB指令的第四评估可解析出CB指令在软件循环内,但在评估为被采用或未采用时,处理器代码退出软件循环。在第四评估中,将在软件循环内、但解析为越过反向分支CB指令的地址位置的正向分支的CB指令视为已退出软件循环。
[0040]返回到决策块210,如果经检测CB指令未解析为退出软件循环(如在CB指令的第一和第三评估中),那么过程200继续进行到块212。在块212处,过程200继续正常分支处理且接着返回到块206。如果经检测CB指令解析为退出软件循环(如在CB指令的第二和第四评估中),那么过程200继续进行到块214。在块214处,过程200取消除必要数据预取请求外的未决数据预取请求,处理CB指令且返回到块202以开始搜索下一软件循环。
[0041]图2B说明用于在检测到函数返回后即取消未决非必要数据预取请求的过程250。在块252处,监视处理器代码执行以查找软件函数退出。注意到,可以推测方式执行软件函数。例如,可针对软件循环中的函数呼叫而发生推测性执行。在软件函数的推测性执行的状况下,也可以推测方式执行软件函数退出(例如,RET指令的执行)。在决策块254处,作出是否已检测到软件函数退出(例如,通过在处理器的执行管线中检测返回指令)的确定。如果未检测到软件函数退出,那么过程250返回到块252。
[0042]如果已检测到软件函数退出,那么过程250继续进行到决策块256。在决策块256处,作出此经检测退出情形是否为从中断例程的返回的确定。如果经检测退出为从中断例程的返回,那么过程250返回到块252。如果经检测退出并非从中断例程的返回,那么过程250继续进行到块258。在块258处,过程250取消除必要数据预取请求外的未决数据预取请求,处理返回指令,且接着返回到块252以继续监视处理器代码以便查找软件函数退出。
[0043]频繁地,手动地抑或经由编译器优化,将展开软件循环使得顺序地执行循环的多个反复。每一展开反复的此顺序执行变成额外预取候选者。在循环的最后反复中,每一展开候选者可接着产生加重预取数据高速缓存污染问题的不需要的预取请求。本发明的实施例也适用于通过检测循环的退出或从函数的返回和从每一展开循环取消所有不需要的预取请求而进行的循环展开。
[0044]图3说明具有处理器复合体的便携式装置300的特定实施例,所述处理器复合体经配置以取消选定的未决数据预取请求以减少高速缓存污染。装置300可为无线电子装置,且包含耦合到具有软件指令318的系统存储器312的处理器复合体310。系统存储器312可包含图1的系统存储器114。处理器复合体310可包含:处理器311 ;具有I阶数据高速缓冲存储器(LI Dcache) 222、I阶指令高速缓冲存储器(LI Icache) 326、高速缓冲存储器控制器电路328的集成存储器子系统314 ;和预测逻辑316。处理器311可包含图1的处理器110。集成存储器子系统314也可包含2阶统一高速缓冲存储器(未图示)。LlIcache326 可包含图1 的 LI Icache 124,且 LI Dcache 322 可包含图1 的 LI Dcache 128。
[0045]集成存储器子系统314可包含于处理器复合体310中或可实施为在处理器复合体310外部的一或多个单独装置或电路(未图示)。在一说明性实例中,处理器复合体310根据图1和2中所说明或与图1和2相关联的实施例中的任一者操作。例如,如图3中所展示,LI Icache 326、LI Dcache 322和高速缓冲存储器控制器电路328可在处理器复合体310内存取,且处理器311经配置以存取存储于集成存储器子系统314的存储器中或系统存储器312中的数据或程序指令。
[0046]摄像机接口 334耦合到处理器复合体310且也耦合到摄像机(例如,摄像机336) ο显示控制器340耦合到处理器复合体310且耦合到显示装置342。译码器/解码器(CODEC) 344也可耦合到处理器复合体310。扬声器346和麦克风348可耦合到C0DEC344。无线接口 350可耦合到处理器复合体310,且耦合到无线天线352使得可将经由天线352和无线接口 350接收的无线数据提供到处理器311。
[0047]处理器311可经配置以执行存储于非暂时性计算机可读媒体(例如,系统存储器312)中的软件指令318,所述软件指令可执行以使计算机(例如,处理器311)执行程序(例如,图
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1