执行追踪内的存储器地址压缩制造技术

技术编号:39436042 阅读:8 留言:0更新日期:2023-11-19 16:19
经由参考转换后备缓冲器(TLB)条目来压缩执行追踪内的存储器地址。一种微处理器标识TLB槽内的TLB条目,该TLB条目将虚拟存储器页映射到物理存储器页。微处理器通过启动对虚拟存储器页的至少一个虚拟地址的记录以及从多个活动的TLB条目中唯一地标识TLB条目的标识符的记录,来启动对TLB条目的记录。随后,微处理器标识存储器高速缓存槽内的高速缓存条目,该高速缓存条目包括对应于高速缓存线的物理存储器地址。微处理器通过将物理存储器地址的物理存储器页标识部分与TLB条目相匹配来启动高速缓存条目的记录,然后启动至少针对TLB条目的标识符和偏移部分的记录。目的标识符和偏移部分的记录。目的标识符和偏移部分的记录。

【技术实现步骤摘要】
【国外来华专利技术】执行追踪内的存储器地址压缩


[0001]本公开涉及基于记录处理器高速缓存活动来记录位准确执行追踪的系统、方法和设备。

技术介绍

[0002]追踪和纠正不期望的软件行为是软件开发中的核心活动。不期望的软件行为可能包括许多东西,例如执行崩溃、运行时异常、执行性能缓慢、不正确的数据结果、数据损坏等。不期望的软件行为由各种各样的因素触发,例如数据输入、用户输入、竞争条件(例如,当访问共享资源时)等。考虑到触发的多样性,不期望的软件行为通常是罕见的并且看起来是随机的,并且极难再现。因此,开发人员标识给定的不期望的软件行为通常非常耗时和困难。一旦标识了不期望的软件行为,通常也很耗时且难以确定其根本原因(或多个原因)。
[0003]开发人员使用各种方法来标识不期望的软件行为,然后标识导致不期望的软件行为的应用代码中的一个或多个位置。例如,开发人员经常针对不同的输入测试应用代码的不同部分(例如,单元测试)。作为另一个示例,开发人员经常对应用代码在调试器中的执行进行推理(例如,通过设置断点/观察点、通过在代码执行时单步执行代码行等)。作为另一个示例,开发人员经常观察剖析器中的代码执行行为(例如,计时、覆盖)。作为另一个示例,开发人员经常将诊断代码(例如追踪语句)插入到应用代码中。
[0004]虽然传统诊断工具(例如,调试器、剖析器等)在“实时”正向执行代码上操作,一种新兴形式的诊断工具使得能够进行“历史”调试(也称为“时间旅行”或“反向”调试),其中执行上下文的至少一部分的执行被记录到一个或多个追踪文件(即,执行追踪)中。使用一些追踪技术,执行追踪可以包含“位准确的”历史执行追踪数据,这使得追踪的执行上下文的任何记录部分能够被虚拟地“重放”(例如,经由仿真)到各个指令(例如,机器代码指令、中间语言代码指令等)的粒度。因此,使用“位准确的”追踪数据,诊断工具使开发人员能够推断主题上下文的所记录的先前执行,而不是传统的调试,其仅限于“实时”正向执行。例如,使用可重放执行追踪,一些历史调试器提供允许正向和反向断点/观察点的用户体验,这使得代码能够正向和反向步进等。另一方面,一些历史剖析器能够从先前执行的代码导出代码执行行为(例如,计时、覆盖)。
[0005]用于记录执行追踪的一些技术主要基于对微处理器的(处理器的)存储器高速缓存的记录注入来操作。然而,由于现代处理器通常以数万至数十万MIPS(每秒数百万条指令)的速率执行,所以程序线程的可重放执行追踪可以捕获大量信息,即使只捕获了线程执行的一小部分。因此,可重放执行追踪在存储器和/或磁盘上迅速变得非常大。

技术实现思路

[0006]本文描述的至少一些实施例通过在记录存储器高速缓存条目时采用的新的存储器地址压缩技术来减小执行追踪大小(例如,由存储器高速缓存注入引起)。当记录存储器高速缓存条目时,现有追踪技术将记录与每个存储器高速缓存条目相关联的存储器地址的
完整规范,这包括记录存储器页的规范加上从存储器页的启动到主题高速缓存线的偏移。本文描述的新的存储器地址压缩技术不是在记录给定的存储器高速缓存条目时记录存储器页的规范,而是标识与与该存储器高速缓存条目相关联的存储器地址的至少一部分相匹配的所记录的转换后备缓冲器(TLB)条目。然后,这些新的存储器地址压缩技术记录对该TLB条目的参考(而不是如先前所做的那样记录存储器页面的规范),以及从由所标识的TLB条目指定的存储器页面的启动到该存储器页面内的主题高速缓存线的偏移。已记录的TLB条目参考使得能够稍后从TLB条目确定用于所记录的存储器高速缓存条目的适当的存储器页面。
[0007]值得注意的是,与记录存储器页的规范相比,记录对TLB条目的参考可能需要显著更少的位,因此与现有的记录技术相比,用于记录每个存储器高速缓存条目的位数被减少。由于存储器高速缓存条目包括执行追踪的大部分,因此与现有追踪技术相比,减少用于记录每个存储器高速缓存条目的位数导致显著的总体追踪大小减小的技术效果,这节省了处理、存储器和存储设备资源。
[0008]根据这些新的存储器地址压缩技术,一些实施例涉及用于通过参考TLB条目来压缩执行追踪内的存储器地址的方法、系统和计算机程序产品。在一种实现中,微处理器包括处理单元、包括多个TLB槽的TLB和包括多个高速缓存槽的存储器高速缓存。微处理器还包括控制逻辑,其配置微处理器以标识多个TLB槽中的一个TLB槽内的TLB条目,TLB条目包括在虚拟地址空间内的虚拟存储器页的虚拟地址与硬件存储器内的物理存储器页的物理地址之间的映射。控制逻辑还配置微处理器以启动将TLB条目记录到执行追踪中,包括启动至少以下各项的记录:(i)虚拟地址和(ii)TLB条目的标识符,该标识符从TLB中的多个活动条目中唯一地标识TLB条目。控制逻辑还配置微处理器以在标识TLB条目之后标识多个高速缓存槽中的一个高速缓存槽内的高速缓存条目,高速缓存条目包括(i)对应于高速缓存线的物理存储器地址,以及(ii)高速缓存线的数据,物理存储器地址包括物理存储器页标识部分和偏移部分。控制逻辑还配置微处理器以启动将高速缓存条目记录到执行追踪中。启动高速缓存条目的记录包括将物理存储器地址的物理存储器页面标识部分与TLB条目匹配。启动高速缓存条目的记录还包括,基于将物理存储器地址的物理存储器页面标识部分与TLB条目匹配,启动至少以下各项的记录:(i)TLB条目的标识符和(ii)偏移部分。
[0009]本文描述的至少一些实施例还用于从执行追踪中省略物理存储器地址。当记录TLB条目时,现有追踪技术将记录虚拟存储器页面和物理存储器页面之间的映射。然而,专利技术人已经认识到,重放执行追踪不需要涉及再现在记录期间使用的物理存储器布局,并且因此当将TLB条目记录到执行追踪中时可以省略物理存储器页面地址。然而,为了确保可以在重放期间正确地再现共享存储器交互,本文的实施例检测两个(或更多)活动TLB条目何时映射到同一物理存储器页,并确保将这样的指示记录到执行追踪中。由于这些技术防止已记录的TLB条目包含物理存储器页地址,因此这些实施例产生了防止潜在敏感信息进入执行追踪的技术效果,从而提高了计算机安全性。例如,如果在多租户环境中记录执行追踪(例如,通过记录管理程序),则这些实施例防止关于租户的物理存储器使用的潜在敏感信息被记录到执行追踪中。此外,与现有追踪技术相比,通过从已记录的TLB条目中省略物理存储器页面地址,实现了追踪大小的减小,从而节省了处理、存储器和存储设备资源。
[0010]相关实施例混淆执行追踪内的物理存储器地址,而不是从执行追踪中省略它们。
具体地,这些实施例例如通过记录物理存储器地址的加密版本、记录物理存储器地址的散列、记录物理存储器地址的单向变换等来记录物理存储器地址的某些派生,作为记录TLB条目的一部分。混淆执行追踪内的物理存储器地址仍然提供了防止潜在敏感信息进入执行追踪的技术效果,从而提高了计算机安全性。同时,混淆执行追踪内的物理存储器地址还能够分析被追踪程序对物理存储器的使用(即使实际物理存储器地址不可用),这可以实现例如存储器管理例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种微处理器(102),包括:处理单元(106);转换后备缓冲器(TLB)(108),包括多个TLB槽;存储器缓存(107),包括多个高速缓存槽;以及控制逻辑(109),将所述微处理器配置为至少:标识(114)所述多个TLB槽中的一个TLB槽内的TLB条目,所述TLB条目包括虚拟地址空间内的虚拟存储器页的虚拟地址与硬件存储器内的物理存储器页的物理地址之间的映射;启动(115)将所述TLB条目记录到执行追踪中,包括启动对至少以下各项的记录:(i)所述虚拟地址,以及(ii)针对所述TLB条目的标识符,所述标识符从所述TLB中的多个活动条目中唯一地标识所述TLB条目;在标识所述TLB条目之后,标识(117)所述多个高速缓存槽中的一个高速缓存槽内的高速缓存条目,所述高速缓存条目包括(i)对应于高速缓存线的物理存储器地址,以及(ii)所述高速缓存线的数据,所述物理存储器地址包括物理存储器页标识部分和偏移部分;以及启动(118)将所述高速缓存条目记录到所述执行追踪中,包括,将所述物理存储器地址的所述物理存储器页标识部分与所述TLB条目进行匹配,以及基于将所述物理存储器地址的所述物理存储器页标识部分与所述TLB条目进行匹配,启动对至少以下各项的记录:(i)针对所述TLB条目的所述标识符以及(ii)所述偏移部分。2.根据权利要求1所述的微处理器,其中启动将所述TLB条目记录到所述执行追踪中还包括启动对(iii)所述硬件存储器内的所述物理存储器页的所述物理地址的记录。3.根据权利要求1所述的微处理器,其中启动将所述TLB条目记录到所述执行追踪中还包括启动对(iii)所述虚拟存储器页或所述物理存储器页的大小的记录。4.根据权利要求1至3中任一项所述的微处理器,其中启动将所述高速缓存条目记录到所述执行追踪中还包括启动对(iii)所述高速缓存线的所述数据的记录。5.根据权利要求1至3中任一项所述的微处理器,其中启动将所述高速缓存条目记录到所述执行追踪中还包括启动对...

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

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

1