【技术实现步骤摘要】
追踪推测性执行的指令
本专利技术的领域涉及数据处理,具体而言涉及用于监视数据处理操作的诊断机制(diagnosticmechanism)。
技术介绍
存在多种想要跟踪处理电路正执行的处理的情形。例如,这种信息在数据处理系统的开发期间是有用的。可用于在这种过程中作为辅助的工具的示例是追踪工具(tracingtool)。追踪数据处理系统的活动、由此生成包括表示系统内的每一步的活动的数据的追踪流(tracestream)是系统开发中的非常有用的工具。这种追踪工具使用多种用于追踪流程流的手段,其中包括存在于其处理正被监视的芯片上的嵌入式追踪宏单元(ETM,ARMLimited,Cambridge的商标)。如果监视处理系统的完整的每步活动,则需要收集、传送和存储的数据的量可能大得惊人。从而,已经设计了减少此信息量的各种方式。其中包括通过仅追踪诸如分支(branch)和加载(load)/存储(store)指令之类的一些指令并且根据这些“追踪活性”(trace-active)指令的追踪和关于指令流的知识推断所有其他“追踪非活性”(trace-inactive)指令来减少所生成的 ...
【技术保护点】
1.一种追踪单元,该追踪单元用于生成指示出执行至少一个指令流的至少一个处理器的处理活动的追踪数据项,所述至少一个指令流包括多个指令群组,所述至少一个处理器推测性地执行所述指令中的至少一些,所述追踪单元包括:追踪电路,该追踪电路用于监视所述至少一个处理器的行为,所述追踪电路受当前追踪控制数据的控制;数据存储库,该数据存储库用于存储与被执行的所述多个指令群组中的相应一个群组相关联的所述追踪控制数据中的至少一些;所述追踪电路被配置为响应于检测到所述指令群组的执行而将所述追踪控制数据存储在所述数据存储库中;所述追踪电路响应于检测到所述至少一个处理器撤消所述推测性执行的指令的至少一个 ...
【技术特征摘要】
2010.06.21 GB 1010356.21.一种追踪单元,该追踪单元用于生成指示出执行至少一个指令流的至少一个处理器的处理活动的追踪数据项,所述至少一个指令流包括多个指令群组,所述至少一个处理器推测性地执行所述指令群组中的至少一些,所述追踪单元包括:追踪电路,该追踪电路用于监视所述至少一个处理器的行为,所述追踪电路受当前追踪控制数据的控制;数据存储库,该数据存储库用于存储与被执行的所述多个指令群组中的相应一个群组相关联的所述追踪控制数据中的至少一些;所述追踪电路被配置为响应于检测到所述指令群组的执行而将所述追踪控制数据存储在所述数据存储库中;所述追踪电路响应于检测到所述至少一个处理器撤消所述推测性执行的至少一个指令群组而取回存储在所述数据存储库中的所述追踪控制数据中的至少一些并且利用所述取回的追踪控制数据来控制所述追踪电路;所述追踪控制数据包括先前被追踪值,所述追踪电路响应于检测到在在前群组中的最终指令被执行时追踪未被使能而对于随后指令群组设置所述先前被追踪值,所述追踪电路响应于检测到所述处理器撤消推测性执行的指令群组,并且,与所述被撤消的群组相关联地存储的所述先前被追踪值被设置而输出表明所述追踪开启的追踪元素。2.根据权利要求1所述的追踪单元,所述追踪单元还包括存储电路,该存储电路用于存储用于控制所述追踪电路的所述当前追踪控制数据;其中,响应于检测到所述至少一个处理器撤消所述推测性执行的指令的所述至少一个群组,所述追踪电路将所述取回的追踪控制数据存储在所述存储电路中。3.根据权利要求1所述的追踪单元,其中,所述追踪控制数据与标识相应的指令群组的标识符一起被存储在所述数据存储库中。4.根据权利要求1所述的追踪单元,其中,所述追踪电路被配置为对于所述被撤消的指令群组取回存储在所述数据存储库中的所述追踪控制数据中的所述至少一些。5.根据权利要求1所述的追踪单元,其中,所述多个指令群组包括以如下方式分组的指令:如果所述群组内的第一指令被执行,则所述群组内的所有所述指令都将执行。6.根据权利要求1所述的追踪单元,所述追踪单元响应于追踪使能信号被断言而使能所述追踪电路监视所述至少一个处理器的所述行为并且响应于所述追踪使能信号未被断言而禁止所述追踪电路监视所述行为。7.根据权利要求1所述的追踪单元,所述追踪控制数据包括初始被追踪值,所述追踪电路响应于在指令群组的执行期间指示执行地址的追踪状态元素的输出而对于所述群组设置所述初始被追踪值,其中,响应于检测到所述处理器撤消被设置了所述初始被追踪值的指令群组,所述追踪电路输出指示出在所述撤消之后执行的所述指令的执行地址的另一状态元素。8.根据权利要求1所述的追踪单元,所述追踪控制数据包括被追踪兴趣值,所述被追踪兴趣值响应于对于一群组输出追踪元素而对于所述群组被设置并且在对于一群组未输出追踪元素的情况下对于所述群组被清除。9.根据权利要求1所述的追踪单元,其中,所述追踪控制数据包括追踪多个值,所述值被设置表明所述群组包括多个生成追踪元素的追踪活性指令,所述值未被设置表明所述群组包括一个或零个追踪活性指令。10.根据权利要求1所述的追踪单元,其中,所述追踪控制数据包括追踪多个值,所述值指示所述群组中的生成追踪元素的追踪活性指令的数目。11.根据权利要求1所述的追踪单元,所述追踪单元被配置为生成索引值并存储与所述多个指令群组中的每个群组相关联的所述索引值,所述索引值对于每一个生成的追踪元素被更新。12.根据权利要求11所述的追踪单元,所述追踪单元包括用于生成所述索引值的计数器,所述追踪电路在所述数据存储库中对于每个指令群组存储指示出所述群组的执行开始时的计数器值的第一计数器值和指示出所述群组的执行结束时的所述计数器值的最末计数器值中的至少一个。13.根据权利要求1所述的追踪单元,所述追踪控制数据包括针对所述群组的追踪开始/停止值,所述追踪开始/停止值影响追踪使能是否被设置,所述追踪开始/停止值响应于检测到所述至少一个处理器的预定行为而被设置。14.一种追踪单元,该追踪单元用于生成指示出执行至少一个指令流的至少一个处理器的处理活动的追踪数据项,所述至少一个指令流包括多个指令群组,所述至少一个处理器推测性地执行所述指令群组中的至少一些,所述追踪单元包括:追踪电路,该追踪电路用于监视所述至少一个处理器的行为,所述追踪电路受当前追踪控制数据的控制;数据存储库,该数据存储库用于存储与被执行的所述多个指令群组中的相应一个群组相关联的所述追踪控制数据中的至少一些;所述追踪电路被配置为响应于检测到所述指令群组的执行而将所述追踪控制数据存储在所述数据存储库中;所述追踪电路响应于检测到所述至少一个处理器撤消所述推测性执行的至少一个指令群组而取回存储在所述数据存储库中的所述追踪控制数据中的至少一些并且利用所述取回的追踪控制数据来控制所述追踪电路;所述追踪单元响应于追踪使能信号被断言而使能所述追踪电路监视所述至少一个处理器的所述行为并且响应于所述追踪使能信号未被断言而禁止所述追踪电路监视所述行为;所述追踪控制数据包括粘性值,无论追踪使能信号是否具有使能值,所述追踪电路响应于具有预定值的所述粘性值而为随后执行的追踪活性指令输出追踪值,并且重置所述粘性值,其中追踪活性指令是触发追踪数据项的输出的指令。15.根据权利要求14所述的追踪单元,其中,所述追踪电路响应于检测到不是触发追踪数据项的输出的追踪活性指令的指令的执行而在所述追踪控制数据中设置所述粘性值。16.根据权利要求15所述的追踪单元,其中,所述追踪电路响应于检测到所述多个指令群组之一中的不是触发追踪数据项的输出的追踪活性指令的最终指令的执行而在所述追踪控制数据中设置所述粘性值,并且,对于随后指令群组将所述被设置的粘性值存储在所述数据存储库中。17.一种追踪单元,该追踪单元用于生成指示出执行至少一个指令流的至少一个处理器的处理活动的追踪数据项,所述至少一个指令流包括多个指令群组,所述至少一个处理器推测性地执行所述指令群组...
【专利技术属性】
技术研发人员:保罗·安东尼·吉尔克森,约翰·迈克尔·霍尔利,
申请(专利权)人:ARM有限公司,
类型:发明
国别省市:GB
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。