[发明专利]在跟踪重放期间存储器值的有效检索有效
申请号: | 201880009735.7 | 申请日: | 2018-01-29 |
公开(公告)号: | CN110249315B | 公开(公告)日: | 2023-06-20 |
发明(设计)人: | J·莫拉 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F11/36 |
代理公司: | 北京世辉律师事务所 16093 | 代理人: | 王俊 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 跟踪 重放 期间 存储器 有效 检索 | ||
1.一种在包括多个处理单元的计算机系统处实现的方法,用于在跟踪重放期间保持存储器值,所述方法包括:
从多个跟踪数据流中识别多个跟踪部分,所述跟踪部分每个表示由可执行实体在一段时间内执行的一个或多个事件;
在所述处理单元处执行所述多个跟踪部分中两个或更多跟踪部分的并行重放,包括在所述多个处理单元中的不同处理单元处同时重放所述两个或更多跟踪部分的每个跟踪;以及
当在不同处理单元处同时重放每个跟踪部分的同时,维持对应于每个跟踪部分的不同持久性数据结构,包括,对于每个跟踪部分:
在所述跟踪部分的对应持久性数据结构中,存储由所述处理单元在重放所述跟踪部分的同时所消耗的每个存储器地址以及在所述跟踪部分的重放期间存储在每个存储器地址处的最近存储器值的记录。
2.根据权利要求1所述的方法,还包括至少基于跨过所述多个跟踪数据流而出现的可排序事件,定义跨过所述多个跟踪数据流中的所有指令的排序。
3.根据权利要求1所述的方法,其中存储每个存储器地址和在每个存储器地址处存储的所述最近存储器值的记录包括存储处理器高速缓存驱逐。
4.根据权利要求1所述的方法,其中存储每个存储器地址和在每个存储器地址处存储的所述最近存储器值的记录包括存储非高速缓存读取的值。
5.根据权利要求1所述的方法,还包括:合并与相同数据流上的相邻跟踪部分相对应的至少两个持久性数据结构。
6.根据权利要求1所述的方法,其中识别所述多个跟踪部分包括识别由以下中至少一个所界定的至少一个跟踪部分:可排序事件或关键帧。
7.根据权利要求1所述的方法,其中维持针对至少一个跟踪部分的持久性数据结构包括从与相同数据流上的相邻跟踪部分对应的另一个持久性数据结构中获得至少一个存储器值。
8.根据权利要求1所述的方法,还包括:将至少一个持久性数据结构保存到持久存储装置。
9.根据权利要求1所述的方法,其中存储在至少一个跟踪部分的重放期间在存储器地址处所存储的最近存储器值包括在所述存储器地址处重写先前存储器值。
10.根据权利要求1所述的方法,其中所述多个处理单元包括提供两个或更多虚拟处理单元的至少一个物理处理单元。
11.一种计算机系统,包括:
一个或多个处理器;以及
一个或多个计算机可读存储介质,其上存储有计算机可执行指令,当所述计算机可执行指令在一个或多个处理器处被执行时,使得所述计算机系统在跟踪重放期间保持存储器值,所述计算机可执行指令包括指令,所述指令能够执行以引起所述计算机系统至少执行以下操作:
从多个跟踪数据流中识别多个跟踪部分,所述跟踪部分每个表示由可执行实体在一段时间内执行的一个或多个事件;
在所述一个或多个处理器的多个处理单元处执行所述多个跟踪部分中的两个或更多跟踪部分的并行重放,包括在不同处理单元处同时重放所述两个或更多跟踪部分的每个跟踪;以及
当在不同处理单元处同时重放每个跟踪部分的同时,维持对应于每个跟踪部分的不同持久性数据结构,包括,对于每个跟踪部分:
在所述跟踪部分的对应持久性数据结构中,存储所由述处理单元在重放所述跟踪部分的同时所消耗的每个存储器地址以及在所述跟踪部分的重放期间存储在每个存储器地址处的最近存储器值的记录。
12.根据权利要求11所述的计算机系统,其中当所述计算机可执行指令在所述一个或多个处理器处被执行时,还使得所述计算机系统至少基于跨过所述多个跟踪数据流而出现的可排序事件,定义所述多个跟踪部分之间的排序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880009735.7/1.html,转载请声明来源钻瓜专利网。