-
公开(公告)号:CN111095222B
公开(公告)日:2023-09-15
申请号:CN201880060330.6
申请日:2018-06-22
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
Abstract: 使用高速缓存一致性协议(CCP)数据执行基于高速缓存的追踪记录。实施例检测到发生了引起高速缓存行与后备存储区之间的交互的操作,针对引起该操作的处理单元启用了记载,高速缓存行是记载中的参与者,并且CCP指示存在要被记载到追踪的数据。然后,实施例使该数据被记载到追踪,该数据可用于重放该操作。
-
公开(公告)号:CN115552381A
公开(公告)日:2022-12-30
申请号:CN202180033358.2
申请日:2021-04-30
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
Abstract: 一种计算机系统,基于将高速缓存一致性协议(CCP)消息记录到第一跟踪中,以及将存储器快照记录到第二跟踪中来记录可重放执行跟踪。基于确定将要启用对第一执行上下文的执行的跟踪,计算机系统开始将第一执行上下文的存储器空间的一个或多个存储器快照日志记录到第二跟踪中,并且启用处理器的硬件跟踪功能。启用跟踪功能使处理器响应于对第一执行上下文的存储器空间的一个或多个存储器访问而生成的CCP消息日志记录到第一跟踪中。在启用处理器的硬件跟踪特征之后,计算机系统还日志记录或以其他方式处理第二执行上下文向第一执行上下文的存储器空间的写入。
-
公开(公告)号:CN114981783A
公开(公告)日:2022-08-30
申请号:CN202080093060.6
申请日:2020-11-24
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
Abstract: 将主题可重放跟踪与比较可重放跟踪进行区分包括标识记录在主题跟踪中的第一指令序列内的第一多个函数,并且标识记录在比较跟踪中的第二指令序列中的第二多个函数。标识第一多个函数的第一多个组和第二多个函数的第二多个组。比较第一多个组和第二多个组,包括基于每个组的身份和与该组相对应的(多个)函数确定第一多个组中的每个第一组是否是以下至少一项:等于第二多个组中的第二组、是第二多个组中的第二组的替换、从第二多个组中被删除、或者插入第二多个组中。
-
公开(公告)号:CN114490292A
公开(公告)日:2022-05-13
申请号:CN202210093599.2
申请日:2017-08-23
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
IPC: G06F11/34
Abstract: 本公开的实施例涉及用于记录可重放跟踪的计算机系统、方法、硬件存储设备。记录多线程进程的执行的可重放跟踪包括标识跟踪存储器模型,其限定将要跨多线程进程的多个线程被排序的一个或多个可排序事件。跨一个或多个处理器的一个或多个处理单元同时执行多个线程。在多个线程的执行期间,针对每个线程独立地记录单独的可重放跟踪。记录包括针对每个线程:记录针对线程的初始状态;记录由至少一个处理器指令执行的至少一个存储器读取,由线程执行的至少一个处理器指令将存储器作为输入;以及利用单调增加的数字记录由线程执行的至少一个可排序事件,单调增加的数字将事件在跨多个线程的其他可排序事件间进行排序。
-
公开(公告)号:CN113711190A
公开(公告)日:2021-11-26
申请号:CN202080027948.X
申请日:2020-03-26
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
Abstract: 本公开涉及创建减少用于线程集中分析的处理的存储器快照。标识多个追踪片段,每个追踪片段表示可执行指令在多个线程的对应线程上的不间断连续执行。追踪片段包括与第一线程相对应的第一片段和第二片段、以及与第二线程相对应的第三片段。确定片段中间的排序。按照该排序,第一片段在第一线程上可排序在第二片段之前,并且第三片段可排序在第一片段与第二片段之间。基于第三片段可排序在第一片段与第二片段之间,标识与其执行由第三追踪片段表示的可执行指令交互的存储器单元。将标识存储器单元的存储器快照数据插入到与第一线程相对应的追踪数据中。
-
公开(公告)号:CN113678110A
公开(公告)日:2021-11-19
申请号:CN202080027930.X
申请日:2020-04-04
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
Abstract: 本公开涉及在与使存储器单元值被记录到追踪中的事件相对应的(多个)执行时间之前暴露存储器单元值。包括第一追踪片段和第二追踪片段的追踪片段在追踪内被标识。每个追踪片段记录可执行指令在对应线程上的不间断连续执行。第一追踪片段可以在第二追踪片段之前排序。确定在第二片段的回放期间,存储器单元值可以在第一执行时间处被暴露,第一执行时间在第二执行时间之前,第二执行时间对应于使存储器单元值在追踪记录期间被记录到追踪中的事件。输出数据被生成,该输出数据指示在第二追踪片段的回放期间存储器单元值可以在第一执行时间暴露。
-
公开(公告)号:CN113196243A
公开(公告)日:2021-07-30
申请号:CN201980082004.X
申请日:2019-12-03
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
IPC: G06F11/36
Abstract: 仿真器可以使用编译器元数据来有效地仿真从源代码编译的可执行机器代码的执行。基于访问与机器代码相关联的编译器元数据,仿真器可以标识机器代码未暗示的、源代码的(多个)行为,机器代码从该源代码而被编译。从这些行为中,仿真器可以标识在仿真线程的执行期间可以应用的(多个)仿真器优化,以减少仿真机器代码的执行所需要的步骤数,同时保留任何外部可见的副作用。这些优化可以操作来减少仿真机器代码的执行所需要的仿真器操作数,或者从仿真中省略一个或多个机器代码指令。这些优化然后可以在仿真线程的执行的同时而被应用。所仿真的执行可以被记录为跟踪,该跟踪与在没有这些优化的情况下所记录的跟踪等效。
-
公开(公告)号:CN113168367A
公开(公告)日:2021-07-23
申请号:CN201980081491.8
申请日:2019-10-11
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
Abstract: 存储存储器重排序提示到处理器跟踪包括:在系统执行多条机器代码指令的同时,系统发起特定机器代码指令的执行,该特定机器代码指令执行对存储器地址的加载。基于该指令的发起,系统发起将处理器高速缓存中的、存储与存储器地址相对应的第一值的特定高速缓存线存储到处理器跟踪中。在发起特定高速缓存线的存储之后,并且在提交特定机器代码指令之前,系统检测影响特定高速缓存线的事件。基于该检测,系统发起存储器重排序提示到处理器跟踪中的存储。
-
公开(公告)号:CN110799952A
公开(公告)日:2020-02-14
申请号:CN201880043765.X
申请日:2018-05-23
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
IPC: G06F11/36
Abstract: 分布式跟踪记录和重放基于跟踪在第一计算机系统处的第一实体的执行,同时还并发地并且独立地跟踪在第二计算机系统处的第二实体的执行。跟踪包括在实体在其对应计算机系统处的执行期间发生的并且以支持实体的所记录的执行的完整重放的保真度被记录的对应可排序事件。每个跟踪包括在相应可排序事件中至少部分地排序在实体之间传递的至少一个消息的发送或接收的信息。
-
公开(公告)号:CN110062927A
公开(公告)日:2019-07-26
申请号:CN201780076149.X
申请日:2017-12-13
Applicant: 微软技术许可有限责任公司
IPC: G06F11/36
Abstract: 本文中的实施例涉及对代码执行的并行重放。实施例解析包括多个追踪数据流的追踪数据,该多个追踪数据流各自表示对多个可执行实体中的对应可执行实体的执行,并且标识多个追踪段,该多个追踪段各自表示由可执行实体中的一个可执行实体在一段时间内执行的一个或多个事件。该实施例定义追踪段之间的排序,标识可执行实体中的至少一个可执行实体中的感兴趣点,并且标识追踪段的当根据排序被线性地重放时将遇到感兴趣点的子集。该实施例在执行池中对追踪段的子集排队以用于由一个或多个处理器重放。然后,基于追踪数据,该实施例使用(多个)处理器来并行地重放追踪段的子集中的两个或更多个追踪段。
-
-
-
-
-
-
-
-
-