执行跟踪内的物理存储器地址省略或混淆制造技术

技术编号:39434521 阅读:11 留言:0更新日期:2023-11-19 16:17
省略或混淆执行跟踪内的物理存储器地址

【技术实现步骤摘要】
【国外来华专利技术】执行跟踪内的物理存储器地址省略或混淆


[0001]本公开涉及基于录入处理器高速缓存活动来记录比特精确执行跟踪的系统

方法和设备


技术介绍

[0002]跟踪并纠正不期望的软件行为是软件开发中的核心活动

不期望的软件行为可以包括很多事情,诸如执行崩溃

运行时异常

缓慢的执行性能

不正确的数据结果

数据损坏等

不期望的软件行为是由多种因素触发的,诸如数据输入

用户输入

竞争条件
(
例如,在接入共享资源时
)


鉴于各种触发器,不期望的软件行为通常很少见且看似随机,而且极难重现

因此,开发人员标识给定的不期望的软件行为通常非常耗时且困难

一旦不期望的
[0003]软件行为已经被标识,确定其一个或多个根本原因通常又是耗时且困难的

[0004]开发人员使用各种方法来标识不期望的软件行为,然后标识应用的代码中引起不期望的软件行为的一个或多个位置

例如,开发人员经常针对不同的输入测试应用的代码的不同部分
(
例如,单元测试
)。
作为另一个示例,开发人员经常在调试器中推理应用的代码的执行
(
例如,通过在代码执行时设置断点
/
观察点/>、
单步执行代码行等
)。
作为另一个示例,开发人员经常在剖析器中观察代码执行行为
(
例如,定时

覆盖
)。
作为另一个示例,开发人员经常将诊断代码
(
例如跟踪语句
)
插入到应用的代码中

[0005]虽然传统的诊断工具
(
例如,调试器

剖析器等
)
已经在“实时”前向执行代码上操作,但是新兴形式的诊断工具使能“历史”调试
(
也称为“时间旅行”或“反向”调试
)
,其中执行上下文的至少一部分的执行被记录到一个或多个跟踪文件
(
即,执行跟踪
)


使用一些跟踪技术,执行跟踪可以包含“比特精确”的历史执行跟踪数据,这使所跟踪的执行上下文的任何记录部分能够被虚拟地向下“重放”(
例如,经由仿真
)
到单独指令的粒度
(
例如,机器代码指令

中间语言代码指令等
)。
因此,使用“比特精确”跟踪数据,诊断工具使开发人员能够推断主题上下文的记录的先前执行,这与仅限于“实时”前向执行的传统调试相反

例如,使用可重放的执行跟踪,一些历史调试器提供了启用正向和反向断点
/
观察点两者的用户体验,使代码能够向前和向后两者被单步执行等

另一方面,一些历史分析器能够从先前执行的代码中得出代码执行行为
(
例如,定时

覆盖
)。
[0006]用于记录执行跟踪的一些技术主要基于记录对微处理器的
(
处理器的
)
存储器高速缓存的流入来操作

然而,由于现代处理器通常以数万到数十万
MIPS(
每秒数百万条指令
)
的速度执行,因此程序的线程的可重放执行跟踪可以捕获大量信息,即使只有线程的执行的几分之一秒被捕获

因此,可重放的执行跟踪在存储器和
/
或磁盘上的大小很快就增长地非常大


技术实现思路

[0007]本文描述的至少一些实施例操作以经由在录入存储器高速缓存条目
(
例如,由存储器高速缓存流入引起
)
时采用的新存储器地址压缩技术来减小执行跟踪大小

当录入存
储器高速缓存条目时,先前跟踪技术将录入与每个存储器高速缓存条目相关联的存储器地址的完整规范,其包括录入存储器页的规范
(specification)
加上从存储器页的开始到主高速缓存行的偏移

本文描述的新存储器地址压缩技术不是在录入给定存储器高速缓存条目时录入存储器页的规范,而是标识与同该存储器高速缓存条目相关联的存储器地址的至少一部分相匹配的录入的转译后备缓冲器
(TLB)
条目

然后,这些新的存储器地址压缩技术录入对该
TLB
条目的引用
(
而不是像之前那样录入存储器页的规范
)
,以及距由所标识的
TLB
条目指定的存储器页的开始到该存储器页内的主题高速缓存线的偏移

录入的
TLB
条目引用使用于录入的存储器高速缓存条目的适当存储器页能够稍后从
TLB
条目确定

[0008]值得注意的是,录入对
TLB
条目的引用可能比录入存储器页的规范需要显着较少的比特,并且因此与先前的录入技术相比,被使用以录入每个存储器高速缓存条目的比特数被减少

由于存储器高速缓存条目包括执行跟踪的很大一部分,因此与先前跟踪技术相比,减少被使用以录入每个存储器高速缓存条目的比特数会引起显着总体跟踪大小减小的技术效果,从而节省了处理

存储器和存储资源

[0009]根据这些新的存储器地址压缩技术,一些实施例针对用于经由对
TLB
条目的引用来压缩执行踪迹内的存储器地址的方法

系统和计算机程序产品

在一种实现中,微处理器包括处理单元
、TLB
和存储器高速缓存,该
TLB
包括多个
TLB
槽,该存储器高速缓存包括多个高速缓存槽

微处理器还包括控制逻辑,控制逻辑配置微处理器标识多个
TLB
槽中的一个
TLB
槽内的
TLB
条目,该
TLB
条目包括虚拟地址空间内的虚拟存储器页的虚拟地址与硬件存储器内的物理存储器页的物理地址之间的映射

控制逻辑还配置微处理器发起将该
TLB
条目录入到执行跟踪中,包括发起录入至少以下项:
(i)
虚拟地址和
(ii)
用于该
TLB
条目的标识符,该标识符从
TLB
中的多个活动条目中唯一地标识该
TLB
条目

控制逻辑还配置微处理器在标识该<本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.
一种微处理器
(101)
,包括:处理单元
(102)
;转译后备缓冲器
(TLB)(108)
,包括多个
TLB
槽;存储器高速缓存
(107)
,包括多个高速缓存槽;以及控制逻辑
(107)
,配置所述微处理器以至少:标识
(114)
所述多个
TLB
槽中的第一
TLB
槽中的第一
TLB
条目,所述第一
TLB
条目包括第一虚拟地址空间内的第一虚拟存储器页的第一虚拟地址与硬件存储器内的物理存储器页的物理地址之间的第一映射;发起
(115)
将所述第一
TLB
条目录入到执行跟踪中,包括发起录入至少以下项:
(i)
所述第一虚拟地址和
(ii)
针对所述第一
TLB
条目的第一标识符;标识
(114)
所述多个
TLB
槽中的第二
TLB
槽中的第二
TLB
条目,所述第二
TLB
条目包括第二虚拟地址空间内的第二虚拟存储器页的第二虚拟地址与由所述第一
TLB
条目映射到的所述硬件存储器内的所述物理存储器页的所述物理地址之间的第二映射;发起
(115)
将所述第二
TLB
条目录入到所述执行跟踪中,包括发起录入至少以下项:
(i)
所述第二虚拟地址和
(ii)
针对所述第二
TLB
条目的第二标识符;与发起将所述第二
TLB
条目录入到所述执行跟踪中相关地,确定
(115)
所述第一
TLB
条目和所述第二
TLB
条目各自
(i)
在所述
TLB
中是活动的,
(ii)
被录入到所述执行跟踪中,并且
(iii)
具有到所述物理地址的共同映射;以及至少基于所述确定,确保
(115)
所述执行跟踪指示所述第一
TLB
条目和所述第二
TLB
条目各自映射到所述物理地址
。2.
根据权利要求1所述的微处理器,其中
(i)
针对所述第一
TLB
条目的所述第一标识符或
(ii)
针对所述第二
TLB
条目的所述第二标识符中的至少一个包括对所述多个
TLB
槽中的对应
TLB
槽的标识
。3.
根据权利要求1所述的微处理器,其中
(i)
针对所述第一
TLB
条目的所述第一标识符或
(ii)
针对所述第二
TLB
条目的所述第二标识符中的至少一个包括伪随机值
。4.
根据权利要求1所述的微处理器,其中
(i)
针对所述第一
TLB
条目的所述第一标识符或
(ii)
针对所述第二
TLB
条目的所述第二标识符中的至少一个基于在
TLB
冲刷时被重置的递增或递减计数器
。5.
根据权利要求1至4中任一项所述的微处理器,其中所述控制逻辑配置所述微处理器以通过针对所述第一
TLB
条目和所述第二
TLB
条目中的每个还发起录入
(iii)
对于所述第一
TLB
条目和所述第二
TLB
条目共同的第三标识符来确保所述执行跟踪指示所述第...

【专利技术属性】
技术研发人员:J
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1