《当追踪数据处理系统时的键配置.pdf》由会员分享,可在线阅读,更多相关《当追踪数据处理系统时的键配置.pdf(27页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102947804 A (43)申请公布日 2013.02.27 C N 1 0 2 9 4 7 8 0 4 A *CN102947804A* (21)申请号 201180030554.0 (22)申请日 2011.05.24 1010350.5 2010.06.21 GB G06F 11/36(2006.01) (71)申请人 ARM 有限公司 地址英国剑桥 (72)发明人约翰霍尔利 安德鲁斯维尼 保罗吉尔克森 (74)专利代理机构北京东方亿思知识产权代理 有限责任公司 11258 代理人李晓冬 (54) 发明名称 当追踪数据处理系统时的键配置 (57) 摘要 本发。
2、明提供了一种追踪单元,该追踪单元被 配置为产生指示数据处理单元的处理活动的追踪 数据的项目。该追踪单元包括追踪索引单元,该追 踪索引单元被配置为将索引值与由该追踪单元产 生的追踪数据的项目的至少一个子集相关联。该 追踪索引单元被配置为产生作为索引值的预定序 列中的一个的每个索引值,其中该预定序列中的 第n+1索引值仅可从在该预定序列中的第n索引 值确定。 (30)优先权数据 (85)PCT申请进入国家阶段日 2012.12.20 (86)PCT申请的申请数据 PCT/GB2011/050979 2011.05.24 (87)PCT申请的公布数据 WO2011/161429 EN 2011.12。
3、.29 (51)Int.Cl. 权利要求书4页 说明书17页 附图5页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 4 页 说明书 17 页 附图 5 页 1/4页 2 1.一种追踪单元,该追踪单元被配置为产生指示数据处理单元的处理活动的追踪数据 的项目,该追踪单元包括: 追踪索引单元,该追踪索引单元被配置为关联索引值和由该追踪单元产生的追踪数据 的项目的至少一个子集, 所述追踪索引单元被配置为产生作为索引值的预定序列中的一个的所述索引值, 其中所述预定序列中的第n+1索引值仅可从在所述预定序列中的第n索引值确定。 2.如权利要求1的追踪单元,其中所述追踪单元包括计。
4、数器,该计数器被配置为提供 索引值的所述预定序列。 3.如权利要求1的追踪单元,其中所述追踪单元包括索引储存单元,该索引储存单元 被配置为储存至少一个所述索引值。 4.如权利要求1的追踪单元,其中所述追踪单元包括索引储存单元,该索引储存单元 被配置为储存两索引值的间的差值。 5.如权利要求4的追踪单元,其中该索引储存单元是FIFO装置。 6.如权利要求3的追踪单元,其中介于数据处理单元的处理活动包括推测指令执行并 且,介于至少一个索引值是与至少一个推测执行指令相关联的。 7.如权利要求6的追踪单元,其中所述索引储存单元被配置为储存所述至少一个索引 值,直至所述至少一个推测执行指令已被确定或取消。
5、。 8.如权利要求6的追踪单元,其中所述推测执行指令形成指令群组的一部分,其中所 述指令群组的第一指令的推测执行使所述群组指令的所有指令的推测执行成为必要。 9.如权利要求8的追踪单元,其中所述索引储存单元包括第一索引储存单元,该第一 索引储存单元被配置为储存第一索引值,该第一索引值与所述指令群组内的第一指令相关 联。 10.如权利要求9的追踪单元,其中所述第一索引储存单元包括第一多个条目被配置 为取决于指示所述指令群组的指示符而储存所述第一索引值。 11.如权利要求10的追踪单元,其中所述第一多个条目的数目至少对应于能由所述数 据处理单元推测执行的指令群组的最大数目。 12.如权利要求9的追。
6、踪单元,其中所述追踪单元被配置为从所述数据处理单元接收 取消指示,所述取消指示会指示已经推测执行的选定指令群组已被取消,并且,所述追踪单 元被配置为产生指示所述选定指令群组的追踪数据的取消项目。 13.如权利要求12的追踪单元,其中所述追踪单元被配置为当接收到所述取消指示 时,取决于第一索引值产生追踪数据的所述取消项目,该第一索引值储存在所述第一索引 储存单元中并与所述选定指令群组相关联。 14.如权利要求13的追踪单元,其中所述追踪单元包括计数器,该计数器被配置为提 供索引值的所述预定序列,并且,所述追踪单元被配置为进一步取决于所述计数器的目前 计数器值产生追踪数据的所述取消项目。 15.如。
7、权利要求8的追踪单元,其中所述索引储存单元包括最后索引储存单元,该最后 索引储存单元被配置为储与所述指令群组内的最后指令相关联的最后索引值。 16.如权利要求15的追踪单元,其中所述最后索引储存单元包括第二多个项,并且,被 配置为取决于指示所述群组指令的指示符储存所述最后索引值。 权 利 要 求 书CN 102947804 A 2/4页 3 17.如权利要求16的追踪单元,其中所述第二多个条目的数目至少对应于可由所述数 据处理单元推测执行的指令群组的最大数目。 18.如权利要求15的追踪单元,其中所述追踪单元是组态以从所述数据处理单元接收 确定指示,所述确定指示指示已经推测执行的选定指令群组已。
8、被确定,并且,所述追踪单元 是组态以产生指示所述选定指令群组的追踪数据的确定项目。 19.如权利要求18的追踪单元,其中所述追踪单元被配置为当接收到该确定指示时取 决于最后索引值产生追踪数据的所述确定项目,该最后索引值储存在所述最后索引储存单 元中并与所述选定指令群组相关联。 20.如权利要求19的追踪单元,其中所述追踪单元包括计数器,该计数器被配置为提 供索引值的所述预定序列和未确定储存单元,所述追踪单元被配置为当产生追踪的所述确 定项目时,在所述未确定储存单元中储存所述计数器的目前计数器值。 21.如权利要求20的追踪单元,其中所述追踪单元是被配置为取决于值产生追踪的所 述确定项目,该值储。
9、存在所述未确定储存单元中。 22.如权利要求8的追踪单元,其中所述索引储存单元包括第一索引储存单元,该第一 索引储存单元被配置为储存与所述指令群组内的第一指令相关联的第一索引值,其中所述 索引储存单元包括最后索引储存单元,该最后索引储存单元被配置为储存与所述群组指令 中的最后指令相关联的最后索引值,其中所述最后索引值是以与所述第一索引值相关的格 式储存的。 23.如权利要求22的追踪单元,其中与所述第一索引值相关的所述格式是2位数据格 式。 24.如权利要求18的追踪单元,其中所述追踪单元包括推测深度计数器,该推测深度 计数器被配置为指示由所述数据处理单元执行的指令的目前推测深度。 25.如权。
10、利要求24的追踪单元,其中所述追踪单元包括未决确定计数器,所述未决确 定计数器被配置为指示经未决输出的追踪数据的确定项目的目前数目。 26.如权利要求25的追踪单元,其中所述追踪单元被配置为当接收到所述确定指示而 没有产生追踪数据的所述确定项目时递增所述未决确定计数器。 27.如权利要求25的追踪单元,其中所述追踪单元被配置为当所述推测深度计数器达 到预定值时递减所述未决确定计数器。 28.如权利要求24的追踪单元,其中当所述推测深度计数器达到预定值时产生追踪数 据的另一项目暗示所述追踪单元已从所述数据处理单元接收到另一确定指示。 29.如权利要求1的追踪单元,其中所述追踪单元被配置为响应于预。
11、定事件而将值的 所述预定序列的所述索引值重设至预定值。 30.如权利要求1的追踪单元,其中所述追踪单元被配置为产生值的所述预定序列,以 作为值的回路序列。 31.如权利要求1的追踪单元,其中所述追踪单元被配置为对于所述数据处理单元所 响应的至少一个指令类型不产生追踪数据的项目。 32.如权利要求3的追踪单元,其中所述索引储存单元被配置为选择性地储存进行中 的(in-flight)指示符,所述进行中的指示符指示索引值的所述预定序列的储存索引值目 前正使用中。 权 利 要 求 书CN 102947804 A 3/4页 4 33.如权利要求32的追踪单元,其中所述追踪单元被配置为当产生下一索引值时,。
12、引 用所述进行中的指示符,并且,如果所述进行中的指示符指示所述下一索引值仍使用中时, 储存替代索引值以代替所述下一索引值。 34.如权利要求1的追踪单元,其中所述数据处理单元的处理活动包括使用数据地址 引用储存数据值,并且,所述索引值是与所述至少一个数据地址相关联的数据地址索引值。 35.如权利要求34的追踪单元,其中对所述储存数据值的所述引用包括加载所述储存 数据值。 36.如权利要求34的追踪单元,其中对所述储存数据值的所述引用包括储存所述储存 数据值。 37.如权利要求34的追踪单元,其中所述追踪单元被配置为在数据地址索引值储存表 中储存所述数据地址索引值。 38.如权利要求37的追踪单。
13、元,其中所述追踪单元被配置为选择性地储存进行中的指 示符,所述进行中的指示符指示对与所述数据地址索引值的所述储存数据值相关联的引用 尚未完成并且所述数据地址索引值在进行中的。 39.如权利要求38的追踪单元,其中所述追踪单元被配置为当产生下一数据地址索引 值时,引用储存进行中的指示符,并且,如果所述储存进行中的指示符指示所述下一数据地 址索引值仍进行中的时,储存替代数据地址索引值以代替所述下一数据地址索引值。 40.如权利要求39的追踪单元,其中所述替代数据地址索引值包括数据处理单元索引 值,其中由所述数据处理单元使用所述数据处理单元索引值来引用所述数据地址。 41.如权利要求39的追踪单元,。
14、其中所述替代数据地址索引值具有与数据处理单元索 引值的一对一对应,其中由所述数据处理单元使用所述数据处理单元索引值来引用该数据 地址。 42.如权利要求40的追踪单元,其中所述进行中的指示符与所述数据地址索引值相关 联地储存。 43.如权利要求40的追踪单元,其中所述进行中的指示符与所述数据处理单元索引值 相关联地储存。 44.如权利要求39的追踪单元,其中所述追踪单元被配置为产生指示所述替代数据地 址索引值的追踪数据的项目。 45.如权利要求39的追踪单元,其中所述替代数据地址索引值和所述该数据地址索引 值共享编码协议。 46.如权利要求8的追踪单元,其中所述追踪单元被配置为从所述数据处理单。
15、元接收 有关初始指令群组和后续指令群组的合并指示,其中如果确定如果所述初始指令群组经执 行而将会执行所述后续指令群组时,所述数据处理单元发出所述合并指令,并且由此,所述 初始指令群组和所述后续指令群组是合并的指令群组,并且其中,所述追踪单元是被配置 为取决于所述合并指示以修改与所述合并指令群组相关联的所述索引储存单元中的至少 一个合并索引值。 47.如权利要求46的追踪单元,其中所述追踪单元被配置为产生追踪数据的合并项 目,追踪数据的所述合并项目指示所述初始指令群组和所述后续指令群组已经合并。 48.一种追踪单元,该追踪单元被配置为产生指示数据处理单元的处理活动的追踪数 权 利 要 求 书CN。
16、 102947804 A 4/4页 5 据的项目,所述追踪单元包括: 追踪索引部件,该追踪索引部件用于关联索引值与由该追踪单元产生的追踪数据的项 目的至少一个子集, 所述追踪索引部件被配置为产生所述索引值,以作为索引值的预定序列的一个, 其中所述预定序列中的第n+1索引值仅可从在所述预定序列的第n索引值确定。 49.一种产生指示数据处理单元的处理活动的追踪数据的项目的方法,所述方法包括 以下步骤: 产生追踪数据的项目; 将索引值与由追踪数据的产生项目的至少一个子集关联; 产生所述索引值,以作为索引值的预定序列中的一个, 其中所述预定序列中的第n+1索引值仅可从在所述预定序列中的第n索引值确定。。
17、 权 利 要 求 书CN 102947804 A 1/17页 6 当追踪数据处理系统时的键配置 技术领域 0001 本发明涉及监视数据处理单元的活动,具体地,涉及产生指示该数据处理单元的 处理活动的追踪数据的项目。 背景技术 0002 现代数据处理设备(如微处理器)的复杂性意味着将这种数据处理设备的操作的 编程和调试是复杂和耗时的任务。因此,对于寻求正确地配置数据处理设备的程序设计师, 极有用的是当数据处理设备实行其处理活动时能监视其操作,以确认操作如需求地实行且 当问题发生时加以排除。 0003 监视数据处理设备的处理活动的这种需求必须相对于现代数据处理设备通常经 配置成为极小规模装置(例如。
18、芯片上系统(SoC)的知识来平衡。已知这种装置中的空间 限制是其构造中的极重要因素,并且因此,将监视组件加入这种装置中的机会受到极大限 制。同样地,在SoC周边的管脚也有代价,这限制可从SoC输出用于外部分析的诊断数据的 数量。 0004 由于这些原因,已知提供与这种数据处理设备相关联的追踪单元,追踪单元被配 置为监视数据处理设备的处理活动并产生指示处理活动的序列追踪数据项。具体地,为了 减少必须转移的数据的带宽,已知是以高度压缩形式来提供追踪数据的项目,省略任何冗 余信息并仅包括用于目前分析目的的严格必要的数据。美国专利第7,707,394号提出用于 减少指令追踪期间产生的数据流大小的一些技。
19、术。 0005 如果数据处理设备能进行可推测指令执行,则与追踪数据处理设备的活动相关 联的困难将更突显。已知由于机会而提供推测指令执行,此技术例如通过避免管道平台 被闲置提供更快速的操作。然而,推测指令执行使追踪单元具有困难,因为直至解决该推 测(即,已知给定指令是否实际上已确定),追踪单元不能提供明确地指示数据处理设备的 操作的追踪数据流。一种可能性是使追踪单元缓冲其产生的追踪数据直至解决推测,但如 果处理器的推测深度过大,此技术需要的缓冲器空间可能变成不符合需求的大。替代技术 还推测地产生追踪数据,且接着如果随后发现其对应的指令是误推测则取消追踪数据的某 些项目。例如,Nexus协议(“T。
20、he Nexus5001 Forum-Standard for a Global Embedded Processor Debug Interface”,IEEE-ISTO 5001-2003,2003年12月23日)支持取消追踪 数据项的特定数目。 0006 然而,即使数据处理设备特定地指示追踪单元哪些指令(或更典型地成群组的指 令)应被取消,但识别对应于经取消指令的追踪数据的项目并不直接。成群组的指令是典 型推测执行,因为仅一些指令可导致程序流中的改变,且因此如果其中该群组中任何指令 被执行则可识别成群组的指令,接着整个群组将被执行。 0007 仅产生用于选定指令的追踪数据的追踪技术会产生。
21、特定问题,因为此可使追踪数 据的对应取消项目的产生困难,因为如果(例如)数据处理设备指示最近的两指令群组应 被取消,则追踪单元不能仅指示下游分析单元追踪数据的该两项目应被取消,因为在成群 说 明 书CN 102947804 A 2/17页 7 组的指令及所产生追踪数据的项目的数目间没有此直接相关性。 0008 关联后续识别追踪数据的特定项目的困难的另一问题产生于资料转移的背景中。 由于加载或储存操作可能花许多循环来完成,当(例如)执行加载指令且产生追踪数据的 对应项目时,在已从内存撷取到所请求数据值之前,难以识别数据值应联结的追踪数据的 对应项目(许多循环之前产生)。如果处理器可脱离程序顺序执。
22、行指令或施行数据转移,则 追踪单元也许没有方法来识别哪些数据值属于哪些数据地址。 0009 关于追踪无序处理器的一些背景技术信息可在2005年7月4的“ThePD Trace Interface and Trace Control Block Specification”中找到(其可自http:/www. ETMv3架构(自http:/获得)中找到。 0010 因而将会需求提供一种用于产生追踪数据的项目的改良技术,该改良技术将会允 许追踪单元克服上述问题。 发明内容 0011 本发明的第一方面提供一种追踪单元,该追踪单元被配置为产生指示数据处理单 元的处理活动的追踪数据的项目,该追踪单元包括。
23、:追踪索引单元,该追踪索引单元被配置 为关联索引值与由该追踪单元产生的追踪数据的项目的至少一个子集。该追踪索引单元被 配置为产生该索引值成为索引值的预定序列的一个,其中该预定序列中的第n+1索引值可 仅从在该预定序列中的第n索引值确定。 0012 根据本发明的技术,该追踪单元包括追踪索引单元,该追踪索引单元被配置为关 联索引值与由该追踪单元产生的追踪数据的项目的至少一个子集。具体地,索引值是根据 索引值的预定序列由该追踪索引单元产生,使得该预定序列中的第n+1索引值可仅从在该 预定序列的第n索引值确定。就追踪数据的项目的产生而言,这种索引值与追踪数据的至 少一些项目的关联是有利,因为此举允许追。
24、踪单元将其产生的追踪数据的至少一些项目 加标,因此后续可引用追踪数据的特定项目。此举例如当寻求后续由于误推测而取消追 踪数据的特定项目时具有特定益处。或者当寻求使数据值与产生用于数据转移指令的追踪 数据的项目的关联(该关联可能花费长时间来完成)时具有益处。通过依此方式索引追踪 数据的项目,可造成后续对追踪数据的特定项目的引用。另外,通过能从该预定序列中的 第n索引值确定该预定序列中的第n+1索引值,可暗指大部分索引,而大体上无须显示地追 踪。可因此节省追踪单元内的可贵的空间,且可造成相当节省追踪数据带宽。 0013 虽然可能有提供索引值的预定序列的一些方法,在具体实施例中该追踪单元包括 计数器。
25、,该计数器被配置为提供索引值的该预定序列。计数器可相对地容易在该追踪单元 的硬件中实施且由计数器产生的索引值的预定序列(典型是渐增序列)有利地易于管理。 0014 存在其中该追踪单元能使用关联追踪数据的一些项目的索引值的每个种方法,但 在具体实施例中该追踪单元包括索引储存单元,该索引储存单元被配置为储存至少该索引 值。提供索引储存单元允许该追踪单元保持至少一个索引值的记录,使得该追踪单元的后 续操作可引用该储存值且因此与该储存值关联的追踪数据的项目。 0015 在一些具体实施例中,该追踪单元包括索引储存单元,该索引储存单元被配置为 储存两索引值的间的差值。此提供有利的紧凑储存机制,通过该机制(。
26、例如)可储存索引 说 明 书CN 102947804 A 3/17页 8 值的范围。在具体实施例中,此索引储存单元可是FIFO装置。FIFO装置呈现其中可储存值 的序列的简单结构。 0016 该追踪单元经组态所监视的数据处理单元能采取一些形式,然而在具体实施例 中,该数据处理单元的处理活动包括推测指令执行且该至少一个索引值是与至少一个推测 执行指令关联。指令的推测执行可将困难呈现给追踪单元,因为如果推测执行指令后续通 过数据处理单元指示已被误推测,则可能需求追踪单元将此事实向其追踪数据的接受者表 明。通过具有索引储存单元(其中可能储存与推测执行指令关联的索引值),追踪单元是具 有机制,通过该机。
27、制可保持对该推测指令的引用甚至在其已产生追踪数据的对应项目一段 时间后。 0017 在一些具体实施例中,该索引储存单元被配置为储存该至少一个索引值,直至该 至少一个推测执行指令已被确定或取消。因此该索引储存单元将接着保持对应于推测执 行指令的索引值直至已知该推测执行指令的结果,即该指令是否正确地推测执行(并且是 “经确定”),或误推测(并且是“经取消”)。在索引储存单元中储存对应索引值致使该追踪 单元后续引用该指令且因此引用关联其所产生的任何追踪数据。 0018 指令的推测执行可包括个别指令的推测执行,但在一些具体实施例中,该推测执 行指令形成指令群组的部分,其中该指令群组的第一指令的推测执行。
28、使该群组指令的所有 指令的推测执行成为必要。 0019 在群组内推测地执行指令是实际的,因为仅一些指令(如,分支)造成从顺序指令 执行的可能偏离且如果先前的指令被执行时则其他指令(如,ADD指令)确定被执行。由 于此原因,被配置为施行推测指令执行的数据处理单元典型将推测执行已知形成这种不可 分割群组的指令群组。 0020 在一些具体实施例中,该索引储存单元包括第一索引储存单元,该第一索引储存 单元被配置为储存关联该指令群组内的第一指令的第一索引值。在产生对应于经推测执行 的指令群组的追踪数据中,有利的是储存关联该指令群组中的第一指令的第一索引值,因 为此定义该指令群组的开始。 0021 虽然该。
29、第一索引储存单元可能仅储存单一项,但在具体实施例中该第一索引储存 单元包括第一多个项且被配置为取决于指示该指令群组的指示符而储存该第一索引值。因 而,该第一索引储存单元可在对应于指示该指令群组的指示符的一项中储存第一索引值, 使得后续引用该指令群组可允许从第一索引储存单元撷取该对应第一索引值。 0022 给定该数据处理单元能推测执行一些指令群组,有利的是如果该追踪单元能追踪 对应于群组的每个群组的索引值,及因此在具体实施例中该第一多个项的数目对应于可由 该数据处理单元推测执行的指令群组的至少一个最大数目。 0023 当然推测指令执行有时不正确且在一些具体实施例中该追踪单元被配置为从该 数据处理。
30、单元接收取消指示,该取消指示会指示已经推测执行的选定指令群组已被取消, 且该追踪单元被配置为产生指示该选定指令群组的追踪数据的取消项目。因此,当该数据 处理单元指示应该取消选定指令群组时,该追踪单元被配置为通过产生追踪数据的对应取 消项目以将此信息传送至其追踪数据的接受者。 0024 具体地,在具体实施例中,该追踪单元被配置为当接受该取消指示时,取决于第一 索引值产生追踪数据的该取消项目,该第一索引值储存在该第一索引储存单元中及关联该 说 明 书CN 102947804 A 4/17页 9 选定指令群组。在第一索引储存单元中储存的第一索引值关联该指令群组内的第一指令, 且因此引用此第一索引值致。
31、使该追踪单元提供由于选定指令群组的取消而应被取消的追 踪数据的第一项目的指示。追踪数据的此第一项目可为待取消的如果干项目的第一者,或 可为待取消的追踪数据的特定项目。 0025 在一些具体实施例中,该追踪单元包括计数器,该计数器被配置为提供索引值的 该预定序列且该追踪单元被配置为进一步取决于该计数器的目前计数器值产生追踪数据 的该取消项目。因为该追踪单元被配置为使用计数器来产生索引值的序列,引用计数器的 目前计数器值提供对追踪数据的最近项目的引用。因此通过取决于第一索引值及目前计数 器值两者产生追踪数据的取消项目,该追踪单元能指示其追踪数据的接受者,在追踪数据 项的该序列中在何处应该开始取消以。
32、及在何处其应该结束。 0026 在一些具体实施例中,该索引储存单元包括最后索引储存单元,该最后索引储存 单元被配置为储存关联该指令群组内的最后指令的最后索引值。在产生对应于的推测执行 的指令群组的追踪数据中,有利的是储存关联该群组指令中的最后指令的最后索引值,因 为此定义该群组指令的结束。 0027 虽然该最后索引储存单元可能仅储存单一项,在具体实施例中,该最后索引储存 单元包括第二多个项及被配置为取决于指示该群组指令的指示符储存该最后索引值。因 而,该最后索引储存单元可在对应于指示该群组指令的指示符的一项中储存最后索引值, 使得后续引用该群组指令可允许对应的最后索引值从第二索引储存单元撷取。。
33、 0028 假设该数据处理单元能推测执行一些指令群组,有利的是如果该追踪单元能追踪 对应于群组的每个群组的索引值,及因此在具体实施例中,该第二多个项的数目对应于可 由该数据处理单元推测执行的指令群组的至少一个最大数目。 0029 推测指令执行的实施是因为有许多其中可精确(统计上)预测程序流的情况。一 旦明确地得知指令的推测执行是正确,则该指令是“经确定”且在一些具体实施例,该追踪 单元是组态以从该数据处理单元接收确定指示,该确定指示指示已经推测执行的选定指令 群组已经确定,及该追踪单元是组态以产生指示该选定指令群组的追踪数据的确定项目。 因此,当该数据处理单元指示选定指令群组经确定时,该追踪单。
34、元被配置为通过产生追踪 数据的对应确定项目将此信息传送至其追踪数据的接受者。 0030 尤其是在具体实施例中,该追踪单元被配置为当接收该确定指示时取决于在该最 后索引储存单元中储存及关联该选定指令群组的最后索引值产生追踪数据的该确定项目。 在最后索引储存单元中储存的最后索引值关联该指令群组内的最后指令,且因此引用此最 后索引值致使追踪单元能够提供由于确定该选定指令群组而是明确正确的追踪数据的最 后项目的指示。追踪数据的此最后项目能提供确定的一些项目的结束点,或可以是待确定 的特定项目。 0031 在一些具体实施例中,该追踪单元包括计数器,该计数器被配置为提供索引值的 该预定序列及未确定的储存单。
35、元,该追踪单元被配置为当产生追踪的该确定项目后,在该 未确定储存单元中储存该计数器的目前计数器值。因此,在当指令群组被确定时刻,该追踪 单元可记录目前计数器值,指示未确定指令开始处的点。 0032 在一些具体实施例中,该追踪单元是被配置为取决于在该未确定储存单元中储存 的值产生追踪的该确定项目。由于该未确定储存单元从当追踪的确定项目最后产生的时 说 明 书CN 102947804 A 5/17页 10 刻,通过取决于在该最后索引储存单元中储存的值两者产生追踪数据的确定项目,来储存 目前计数器值,追踪单元是能向其追踪数据的接受者指示在追踪数据项的序列中该确定应 开始的处及该确定应结束的处。 00。
36、33 在一些具体实施例中,该索引储存单元包括第一索引储存单元,该第一索引储存 单元被配置为储存关联该指令群组内的第一指令的第一索引值,该索引储存单元包括最后 索引储存单元,该最后索引储存单元被配置为储存关联该群组指令中的最后指令的最后索 引值,且该最后索引值以与该第一索引值相关的格式储存。 0034 在指令群组中的指令数目方面的限制(该限制继而在该群组指令中的第一指令 及最后指令的间赋予指令数目的限制)可意指可通过以与第一索引值相关的格式储存最 后索引值来获得有利的储存效率,例如作为自第一索引值的偏移。应了解此相对格式能采 取一些形式,但在具体实施例中,与该第一索引值相关的该格式是2位数据格式。
37、。替代具 体实施例可取决于在所关注的群组中的指令数目于数据格式中使用1位数据格式或多于2 位。 0035 在一些具体实施例中,该追踪单元包括推测深度计数器,该推测深度计数器被配 置为指示由该数据处理单元执行的指令的目前推测深度。推测深度计数器的提供致使该追 踪单元能够追踪已推测执行且因此可能需要取消或确定的指令数目。当确定或取消推测执 行指令时,此推测深度计数器可因此减量。 0036 在一些具体实施例中,该追踪单元包括未决(pending)确定计数器,该未决确定 计数器被配置为指示经未决输出的追踪数据的确定项目的目前数目。因此当追踪数据的确 定项目发生时,追踪单元无须立即输出追踪数据的确定项目。
38、,而是可追踪一些这种未决项 目。此更有益于追踪带宽的所需减少。 0037 在一些具体实施例中,该追踪单元被配置为当接收到该确定指示而没有产生追踪 数据的该确定项目时使该未决确定计数器增加。因此未决确定计数器减少追踪数据必须产 生的频率,因为可保持未决确定的执行总数,当从数据处理单元接收确定指示而无须产生 追踪数据的确定项目时使未决确定计数器增加。 0038 在一些具体实施例中,该追踪单元被配置为当该推测深度计数器达到预定值时减 少该未决确定计数器。例如,当推测深度计数器达到数据处理单元的已知最大推测深度时, 推测深度计数器可推理确定必须取代最旧的推测执行指令。 0039 在一些具体实施例中,当。
39、该推测深度计数器达到预定值时产生追踪数据的另一项 目暗示该追踪单元已从该数据处理单元接收到另一确定指示。例如,当推测深度计数器达 到数据处理单元的已知最大推测深度时,如果接收到追踪数据的另一项目,可由追踪数据 的接受者推理出最旧推测执行指令的确定。追踪数据的接受者典型地将经配置以还追踪数 据处理单元的推测深度以实现此推理。 0040 在一些具体实施例中,该追踪单元被配置为响应于预定事件来将值的该预定序列 的该索引值重设至预定值。例如,可能需求使追踪数据的另外项目与相同索引值关联,且此 可仅通过重设索引序列而达到。 0041 在一些具体实施例中,该追踪单元被配置为产生值的该预定序列成为值的回路序。
40、 列。这为产生无限序列提供合适的机制。 0042 可以一些方法组态该追踪单元,但在具体实施例中,该追踪单元被配置为对于该 说 明 书CN 102947804 A 10 6/17页 11 数据处理单元所响应的至少一个指令类型不产生追踪数据的项目。特定指令对经产生追踪 数据的接受者可能比其他指令具有更多关注,且因此可由不关注的追踪数据省略某些类型 的指令而节省可贵的追踪带宽。 0043 在一些具体实施例中,该索引储存单元被配置为选择性地储存进行中的 (in-flight)指示符,该进行中的指示符指示索引值的该预定序列的储存索引值目前正使 用中。虽然可选择索引值的预定序列使得可能发生索引值的再使用而。
41、无歧义,但可能有其 中某些索引值保持与特定追踪项目关联得更长久的示例。进行中的指示符提供机制以识别 哪些索引值应以此方式处置。 0044 在一些具体实施例中,该追踪单元被配置为当产生下一索引值时,引用该进行中 的指示符,及如果该进行中的指示符指示该下一索引值仍处于使用中时,储存替代索引值 以代替该下一索引值。储存替代索引值避免再使用仍处于使用中的索引值。 0045 该数据处理单元的处理活动可变化,但在具体实施例中,该数据处理单元的处理 活动包括使用数据地址引用储存数据值且该索引值是与该至少一个数据地址关联的数据 地址索引值。当与由追踪单元追踪的指令的时间标度比较时,使用数据地址引用储存数据 值。
42、可花费明显时间量。例如,当指令使数据处理单元通过引用数据值的数据地址从内存加 载数据值时,直至多个时钟循环后该数据值才能返回数据处理单元。在此情况下,由开联加 载指令的追踪单元产生的追踪数据的项目可能在数据值返回数据处理单元之前已产生一 段长时间。在此情节下,使用数据地址索引值是有利的,因为此举提供一种机制,通过该机 制关联引用储存数据值的数据地址的追踪数据的特定项目后续可被识别,例如一旦该引用 程序已完成则可识别。 0046 在一些具体实施例中,对该储存数据值的该引用包括加载该储存数据值且在其他 具体实施例中对该储存数据值的该引用包括储存该储存数据值。加载及储存数据值两者需 要如上述可能花费。
43、长时间的内存存取。 0047 在一些具体实施例中,该追踪单元被配置为在数据地址索引值储存表中储存该数 据地址索引值。数据地址索引值储存表的提供致使该数据追踪单元能够储存数据地址索引 值直至以后需要对其引用,例如当完成与引用该值关联的载入或储存操作。 0048 如上述,存在某些指令,追踪数据的产生项目可与该某些指令关联且可能花费明 显时间量以完成该某些指令的操作。这种指令可因此可与其他指令区分,该其他指令经追 踪则在该指令被认为完成前没有另外事件必须发生。等待此事件完成的状态称为“进行中 的(in-flight)”及在一些具体实施例中,该追踪单元被配置为选择性地储存进行中的指示 符,该进行中的指。
44、示符指示对关联该数据地址索引值的该储存数据值的引用尚未完成及该 数据地址索引值在进行中的。组态该追踪单元以依此方式储存进行中的指示符提供机制, 该追踪单元可通过该机制追踪关联尚未完成操作的数据地址索引值。 0049 在这种具体实施例中,该追踪单元被配置为当产生下一数据地址索引值时,引用 储存进行中的指示符,及如果该储存进行中的指示符指示该下一数据地址索引值仍处于进 行中的时,储存替代数据地址索引值以代替该下一数据地址索引值。 0050 由于空间限制的原因,该追踪单元将典型地具有追踪单元可产生的数据地址索引 值的明确及有限范围。因此,当遭遇花费长时间来完成的指令时,使用关联该指令的数据地 址索引。
45、值可能需要达到长时期,该时期会比其中追踪单元循环通过全组数据地址索引值时 说 明 书CN 102947804 A 11 7/17页 12 可用的时期更长。因此,该追踪单元可能经过仍进行中的(即应尚未被再使用)的数据地 址索引值,并且,在此情况下,该追踪单元是组态以不仅使用预定序列中的下一数据地址索 引值,而且在其位置中储存替代数据地址索引值。通过此方法,受限并明确的数据地址索引 值组大体上可由追踪单元使用,但仍可适应其中数据地址索引值需要使用比数据地址索引 值的自然循环更长时期的偶然情况。 0051 替代数据地址索引值能采取一些形式,但在具体实施例中,该替代数据地址索引 值包括数据处理单元索引。
46、值,其中由该数据处理单元用该数据处理单元索引值来引用该数 据地址。数据处理单元本身典型还将具有其用来引用这种数据地址的索引系统,以致即使 当(在处理器循环方面)在造成引用该数据地址及数据值返回间的相当大延迟时,数据处 理单元还可使数据值与数据地址关联。在此情况下,对应数据处理单元索引值(有时称为 “核心键”可由追踪单元用作替代数据地址索引值。然而,对应数据处理单元索引值本身无 须用作替代数据地址索引值的“核心键”(“特殊键”),且在具体实施例,该替代数据地址索 引值具有与数据处理单元索引值的一对一对应,其中是由该数据处理单元使用该数据处理 单元索引值来引用该数据地址。 0052 当该进行中的指。
47、示符由追踪单元储存时,在一些具体实施例中,该进行中的指示 符与该数据地址索引值相关联的储存,而在其他具体实施例中,该进行中的指示符与该数 据处理单元索引值相关联的储存。 0053 当该追踪单元使用替代数据地址索引值时,在一些具体实施例中,该追踪单元被 配置为产生指示该替代数据地址索引值的追踪数据的项目。虽然由追踪单元产生的索引 值的预定的序列大体上允许追踪数据的给定项目的索引从该追踪数据的以前项目的索引 值推理出,但当使用替代数据地址索引值时并非如此情况。就追踪单元而言有利的是产 生指示替代数据地址索引值的追踪数据的项目,使得追踪数据的接受者可确定此“一次性 (one-off)”的特殊索引值。。
48、 0054 替代数据地址索引值及数据地址索引值可根据不同协议编码,但在具体实施例 中,该替代数据地址索引值及该下一次数据地址索引值共享编码协议。例如,能为数据地址 索引值保留该协议内的预定范围,而为替代数据地址索引值保留其余部分。 0055 在一些具体实施例中,该追踪单元被配置为自有关初始指令群组及后续指令群组 的该数据处理单元接收合并指示,其中如果该数据处理单元确定如果执行该初始指令群组 而将执行该后续指令群组时该数据处理单元发出该合并指令,并且因此,该初始指令群组 及该后续指令群组是合并的指令群组,并且,其中该追踪单元是被配置为取决于该合并指 示组态以修改关联该合并指令群组的该索引储存单元。
49、中的至少一个合并索引值。 0056 在处置用于推测执行的指令群组的数据处理单元中,构成群组的定义典型通过指 令(例如分支指令)确定,数据处理单元尚未得知将解决该分支的方法。然而,可能此分支 将会采取的方向事先加以解决,例如如果“如果相等则分支”指令所依据的值经确定且已知 在执行该分支指令前此值将不改变。如果此指令定义两指令群组的间的边界,则在此情况 中,可将两指令群组合并,因为第一群组的执行后必然跟随有第二群组的执行。当数据处理 单元发出此合并指示时追踪单元则可修改储存在索引储存单元中的索引值,该索引储存单 元与现已合并的两指令群组关联。例如,如果第一与最后索引值是先前在与第一及第二指 令群组关联的索引储存单元中储存,当该两指令群组合并时,可修改索引储存单元中的值 说 明 书CN 102947804 A 12 8/17页 13 以用从第一群组取得的第一索引值及从第二群组。