[发明专利]用于记录可重放跟踪的计算机系统、方法、硬件存储设备有效
申请号: | 201780053059.9 | 申请日: | 2017-08-23 |
公开(公告)号: | CN109643273B | 公开(公告)日: | 2022-02-01 |
发明(设计)人: | J·莫拉 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 记录 重放 跟踪 计算机系统 方法 硬件 存储 设备 | ||
1.一种计算机系统,包括:
一个或多个处理器;以及
一个或多个计算机可读介质,所述一个或多个计算机可读介质具有存储于其上的计算机可执行指令,所述计算机可执行指令能够由所述一个或多个处理器执行以使得所述计算机系统记录多线程进程的执行的可重放跟踪,所述计算机可执行指令包括能够执行以使得所述计算机系统至少执行以下操作的指令:
标识跟踪存储器模型,所述跟踪存储器模型限定将要跨所述多线程进程的多个线程被排序的一个或多个可排序事件;
跨所述一个或多个处理器的一个或多个处理单元同时执行所述多个线程;以及
在所述多个线程的执行期间,独立地记录针对每个线程的单独的可重放跟踪,包括针对每个线程:
记录针对所述线程的初始状态;
记录由至少一个处理器指令执行的至少一个存储器读取,由所述线程执行的所述至少一个处理器指令将存储器作为输入;
利用单调增加的数字来记录由所述线程执行的至少一个可排序事件,所述单调增加的数字将所述事件在跨所述多个线程的其他可排序事件间进行排序;以及
针对所述多个线程中的每个线程记录多个关键帧,所述多个关键帧中的每个关键帧包括足以使得所述计算机系统能够在执行位置处开始重放所述单独的可重放跟踪的信息,所述执行位置各自对应于所述多个关键帧中的特定的一个关键帧,其中所述多个关键帧包括完整关键帧和轻量级关键帧两者,除了使得所述计算机系统能够在特定执行位置处开始重放所述单独的可重放跟踪所需的所述信息之外,所述完整关键帧还包括补充信息。
2.根据权利要求1所述的计算机系统,其中记录针对所述线程的初始状态包括:在执行所述线程之前,记录一个或多个处理器寄存器的初始状态。
3.根据权利要求1所述的计算机系统,其中独立地记录针对每个线程的单独的可重放跟踪包括:针对至少一个线程记录由所述线程执行的至少一个非确定性处理器指令的副作用,包括记录由所述非确定性处理器指令对一个或多个处理器寄存器做出的改变。
4.根据权利要求1所述的计算机系统,其中记录由至少一个处理器指令执行的至少一个存储器读取包括:基于预测算法的使用来记录所述至少一个存储器读取。
5.根据权利要求1所述的计算机系统,其中记录由至少一个处理器指令执行的至少一个存储器读取包括:使用存储器的影子副本来预测读取值,所述影子副本仅包括能够由所述进程寻址的存储器的子集。
6.根据权利要求1所述的计算机系统,其中记录由至少一个处理器指令执行的至少一个存储器读取包括:记录与所述存储器读取相关联的存储器页面的标识。
7.根据权利要求1所述的计算机系统,其中所述完整关键帧对应于第一可重放跟踪,所述补充信息包括所加载的模块的头部信息。
8.根据权利要求1所述的计算机系统,其中独立地记录针对每个线程的单独的可重放跟踪包括:针对至少一个线程,基于预测算法的使用来确定存储器读取不需要被记录。
9.根据权利要求1所述的计算机系统,其中独立地记录针对每个线程的单独的可重放跟踪包括:针对每个线程记录到一个或多个可重新使用的环形缓冲区中。
10.根据权利要求1所述的计算机系统,其中独立地记录针对每个线程的单独的可重放跟踪包括:针对每个线程记录对所述线程的执行的一个或多个中断。
11.根据权利要求1所述的计算机系统,其中记录完整关键帧和轻量级关键帧的频率是可调节的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780053059.9/1.html,转载请声明来源钻瓜专利网。