[发明专利]针对事务型数据处理执行模式的调用堆栈维护有效
申请号: | 201580037126.9 | 申请日: | 2015-06-09 |
公开(公告)号: | CN106663026B | 公开(公告)日: | 2021-01-12 |
发明(设计)人: | 马修·詹姆斯·霍斯内尔;斯蒂芬·迪斯特尔霍斯特 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 林强 |
地址: | 英国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 事务 数据处理 执行 模式 调用 堆栈 维护 | ||
1.一种用于数据处理的装置,包括:
处理器电路,被配置为执行数据处理指令,其中,所述处理器电路被配置为依据它执行的所述数据处理指令来维护调用堆栈数据结构,并且其中,所述处理器电路被配置为:当执行的所述数据处理指令访问与其它处理器电路共享的存储数据项时,在事务执行模式中操作;以及
事务前堆栈指针存储电路,被配置为存储所述调用堆栈数据结构的堆栈深度指示,其中,所述处理器电路被配置为在进入所述事务执行模式前存储所述堆栈深度指示,
其中,所述处理器电路被配置为:当在所述事务执行模式中操作时,确定对所述调用堆栈数据结构的修改相对于所述堆栈深度指示的相对堆栈位置,并且
如果所述相对堆栈位置处于相对于由所述堆栈深度指示所指示的位置的正向堆栈增长方向,则与所述修改相关联地存储所述修改是非推测性的指示,并且
如果所述相对堆栈位置不处于相对于由所述堆栈深度指示所指示的位置的正向堆栈增长方向,则与所述修改相关联地存储所述修改是推测性的指示。
2.如权利要求1所述的装置,其中,所述事务前堆栈指针存储电路被配置为存储由所述处理器电路用于所述调用堆栈数据结构的堆栈指针的副本。
3.如权利要求1或权利要求2所述的装置,其中,所述事务前堆栈指针存储电路包括所述处理器电路可访问的寄存器。
4.如权利要求3所述的装置,其中,所述寄存器被配置为不可由所述处理器电路执行的数据处理指令访问。
5.如权利要求1或权利要求2所述的装置,其中,如果所述相对堆栈位置不处于相对于由所述堆栈深度指示所指示的位置的正向堆栈增长方向并且所述修改是到所述调用堆栈数据结构的推送,则通过所述推送被推送给所述调用堆栈数据结构的数据项被标志为推测性写入。
6.如权利要求1或权利要求2所述的装置,其中,如果所述相对堆栈位置不处于相对于由所述堆栈深度指示所指示的位置的正向堆栈增长方向并且所述修改是自所述调用堆栈数据结构的弹出,则通过所述弹出从所述调用堆栈数据结构中弹出的数据项被标志为推测性读取。
7.如权利要求1或权利要求2所述的装置,还包括:存储电路,被配置为存储由所述处理器电路在执行所述数据处理执行时在存储器中访问的数据项的本地副本,其中所述处理器电路被配置为在所述存储电路中维护所述调用堆栈数据结构。
8.如权利要求7所述的装置,其中,所述存储电路包括一致性控制单元,所述一致性控制单元被配置为:允许所述存储电路中被指示为非推测性的内容被驱逐至所述存储器,并且如果所述存储电路的内容被选择进行驱逐并且被指示为推测性的,则生成错误状态。
9.如权利要求8所述的装置,其中,所述一致性控制单元被配置为:当所述处理器电路退出所述事务执行模式并且所述事务执行模式中执行的数据处理指令已经成功完成它们的数据处理操作时,把所述存储电路中被指示为推测性的内容改变为被指示为非推测性的。
10.如权利要求8或权利要求9所述的装置,其中,所述一致性控制单元被配置为向所述其它处理器电路隐藏所述存储电路中被指示为推测性的内容。
11.如权利要求1或权利要求2所述的装置,还包括:中止处置电路,所述中止处置电路被配置为:当所述处理器电路在所述事务执行模式中操作时,响应于待定事务已经失败的指示而执行回滚过程,
其中,所述回滚过程包括丢弃被指示为推测性的任何修改并且使用存储的堆栈深度指示重置当前堆栈指针。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580037126.9/1.html,转载请声明来源钻瓜专利网。