[发明专利]调试数据处理事务有效
申请号: | 201580069226.X | 申请日: | 2015-11-23 |
公开(公告)号: | CN107111488B | 公开(公告)日: | 2021-06-15 |
发明(设计)人: | 斯蒂芬·迪斯特尔霍斯特;迈克尔·约翰·威廉姆斯;理查德·罗伊·格里森怀特;马修·詹姆斯·霍斯内尔 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38;G06F9/455;G06F11/36 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 桑敏 |
地址: | 英国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 调试 数据处理 事务 | ||
提供了一种数据处理系统,该系统支持执行包括执行以产生推测更新的一个或多个程序指令的事务。如果事务完成且没有冲突,则在常规操作中推测性更新被提交。可以检测事务执行的开始,并且执行将被转变为由软件仿真执行,而不是由处理硬件直接执行。软件仿真可以存储表示在仿真期间生成的推测性更新的一个或多个版本的数据。软件仿真还可以检测与被仿真的事务的冲突。为了便于修改与被调查的事务相互作用的系统的其他部分的行为,可以响应于检测到对被仿真的事务的存储器访问请求而返回非标准响应信号。可以使用非标准响应信号来发动请求源遵循不同于其本要遵循的处理路径的后续处理路径。还提供了支持以检测导致部分完成的事务停止(冻结)的触发条件,并且将与部分完成的事务相关联的推测性更新保存到系统的架构状态。
技术领域
本公开涉及数据处理系统。
背景技术
可以提供支持如下事务的数据处理系统,该事务中的多个程序指令执行以产生对状态数据的推测性更新,并且在事务完成且没有冲突时提交推测性更新。这样的事务可以被用于例如促进使用共享存储器的多线程处理,其中可以允许使用共享存储器内的数据值的事务根据在存储器访问之间出现冲突时避免进行推测性更新提交的能力并行地进行。在大多数情况下,不会出现这种冲突,因此并行处理可以有效地进行,而不需要支持更严格的机制(例如,使用存储器锁)的开销,但是当冲突确实出现时有可能恢复,因为对状态数据的推测性更新将不会被提交。
发明内容
在本公开的至少一些示例性实施例中,提供了一种处理数据的方法,包括:
执行包括目标事务的程序指令,其中该目标事务具有一个或多个程序指令,该一个或多个程序指令执行以产生对状态数据的推测性更新,并且在目标事务完成且没有冲突时提交推测性更新;
检测与由处理硬件直接执行目标事务的程序指令相对应的触发条件;
在检测到触发条件时,发起对目标事务的执行的软件仿真,软件仿真操作来:
存储表示在仿真执行目标事务期间产生的推测性更新的一个或多个版本的数据;以及
检测与目标事务的冲突。
在本公开的至少一些示例性实施例中,提供了一种用于处理数据的装置,包括:
处理硬件,用于直接执行包括目标事务的程序指令,其中该目标事务包括一个或多个程序指令,该一个或多个程序指令执行以产生对状态数据的推测性更新,并且在事务完成且没有冲突时提交推测性更新;
检测电路,用于检测与由处理硬件直接执行目标事务的程序指令相对应的触发条件;
仿真电路,用于在检测到触发条件时,执行对目标事务的执行的软件仿真,软件仿真操作来:
存储表示在仿真执行目标事务期间产生的推测性更新的一个或多个版本的数据;以及
检测与目标事务的冲突。
在本公开的至少一些示例性实施例中,提供了一种处理数据的方法,包括:
从请求源发出存储器访问请求;
在请求源处检测非标准响应信号的接收;
根据检测到非标准响应信号的接收,发起更新请求源的架构状态数据的第一路径的后续处理或者更新请求源的架构状态数据的第二路径的后续处理,所述第一路径与所述第二路径不同。
在本公开的至少一些示例性实施例中,提供了一种用于处理数据的装置,包括:
发出电路,用于从请求源发出存储器访问请求;
检测电路,用于检测请求源处的非标准响应信号的接收;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580069226.X/2.html,转载请声明来源钻瓜专利网。