当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于在持续存储器系统中的应用验证的技术技术方案

技术编号:16432674 阅读:79 留言:0更新日期:2017-10-22 10:00
用于软件测试的技术包括具有持续存储器的计算设备,其包括平台模拟器和将被测试的应用或其它代码模块。计算设备使用平台模拟器在测试位置生成针对应用的检查点。计算设备使用平台模拟器从测试位置到结束位置执行应用并且追踪对持续存储器的所有写入。计算设备生成平台模拟器模拟的计算设备的硬件规范所允许的持续存储器写入的排列。计算设备从检查点重放每个排列,模拟电源故障,然后使用平台模拟器调用用户定义的测试功能。计算设备可以测试存储器写入的不同排列,直到应用使用持续存储器被确认为止。描述和要求保护其它实施例。

Techniques for application verification in persistent memory systems

Techniques for software testing include computing devices with persistent memory, including platform simulators and applications to be tested or other code modules. The computing device uses the platform simulator to generate checkpoints for the application at the test location. The computing device uses the platform emulator to execute the application from the test position to the end position and tracks all writes to the persistent memory. The continuous memory write arrangement allowed by the hardware specification of the computing device simulated by the device generation platform simulator. The computing device replayed each permutation from the checkpoint, simulated the power failure, and then invoked the user defined test function using the platform simulator. The computing device can test the different arrangements of the memory writes until the application is confirmed by using the persistent memory. Description and requirements for the protection of other embodiments.

【技术实现步骤摘要】
【国外来华专利技术】用于在持续存储器系统中的应用验证的技术相关申请的交叉引用本申请要求2015年3月27日提交的题为“TECHNOLOGIESFORAPPLICATIONVALIDATIONINPERSISTENTMEMORYSYSTEMS”的美国实用专利申请序列号14/670,965的优先权。
技术实现思路
一些计算系统包括持续存储器,该持续存储器可以是可字节寻址的高性能的非易失性存储器。持续存储器可以提供与传统的易失性随机存取存储器(RAM)相当的性能,同时还提供数据持久性。然而,持续存储器可能对应用开发人员提出额外的挑战。具体地,应用开发人员可能必须保证在任何给定的时间,持续存储器中的数据是一致的。否则,诸如硬件故障或电源故障之类的意外的故障可能会导致数据损坏。诸如编译器和调试器之类的传统软件开发工具可以被用于校正错误,并且以另外的方式使用持续存储器来验证应用的正确性。另外,用于测试使用持续存储器的应用的基于管理程序的框架在PhilipLantz等人,Yat:AValidationFrameworkforPersistentMemorySoftware,USENIXAnnualTechnicalConferenceat433(2014)中有所描述。附图说明本文描述的概念通过示例而不通过附图中的限制的方式进行了说明。为了说明的简单和清楚,附图中例示的元件不一定按比例绘制。在适当的情况下,图中已经重复了附图标记,以指示对应或相似的元件。图1是用于具有持续存储器的应用测试的计算设备的至少一个实施例的简化框图;图2是可以由图1的计算设备建立的至少一个实施例环境的简化框图;图3是用于可以由图1和图2的计算设备执行的具有持续存储器的应用测试的方法的至少一个实施例的简化流程图;以及图4是可以使用图3的方法来测试的应用和相关联的测试功能的至少一个实施例的伪代码。具体实施方式虽然本公开内容的概念易于受到各种修改和替代形式的影响,但是其具体实施例已经通过附图中的示例示出并且将在本文中进行详细描述。然而,应当理解,并不意图将本公开内容的概念限制为所公开的特定形式,相反,本专利技术意图涵盖与本公开内容和所附权利要求一致的所有修改、等同和替代方案。说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指出所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以或可以不一定包括特定的特征、结构或特性。此外,这样的短语不一定指代相同的实施例。另外,当结合实施例描述特定的特征、结构或特性时,认为在本领域技术人员的知识范围内,结合其它实施例来实现这些特征、结构或特性,无论是否明确描述。另外,应当理解,以“A、B和C中的至少一个”形式包含在列表中的项可以是(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项可以是(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。在一些情况下,可以在硬件、固件、软件或它们的任何组合中实施所公开的实施例。所公开的实施例还可以被实施为由一个或多个暂时性或非暂时性机器可读(例如,计算机可读)储存介质承载或者储存在一个或多个暂时性或非暂时性机器可读(例如,计算机可读)储存介质上的指令,该指令可由一个或多个处理器读取和执行。机器可读储存介质可以被具体化为用于以机器可读的形式(例如,易失性或非易失性存储器、介质盘或其它介质设备)储存或发送信息的任何储存设备、机构或其它物理结构。在附图中,可以以具体的布置和/或排序示出一些结构或方法特征。然而,应当理解,这些具体的布置和/或排序可能不被需要。相反,在一些实施例中,这些特征可以以与在说明性图形中示出的不同的方式和/或顺序布置。另外,在特定图形中包括结构或方法特征并不意味着指在所有实施例中都需要这些特征,并且在一些实施例中,这些特征可以不被包括或者可以与其它特征组合。现在参考图1,在一个实施例中,用于测试持续存储器应用的计算设备100配置有全平台模拟器和用于测试的应用。平台模拟器模拟具有持续存储器的模拟计算设备102的执行。具体地,平台模拟器模拟模拟计算设备102的处理器寄存器、易失性高速缓存、易失性存储器和持续存储器的内容。在使用中,如下面更详细描述的那样,计算设备100在应用(例如,要测试的功能)中的测试位置处创建检查点,然后使用平台模拟器模拟执行应用直到结束位置。在模拟执行期间,计算设备100追踪由应用执行的持续存储器写入。在完成模拟执行之后,计算设备100可以生成由应用执行的持续存储器写入的许多不同排列并且例如通过执行部分但不是全部追踪的持续存储器写入来模拟电源故障。对于每个被测试的排列,计算设备100使用平台模拟器来执行用户供应的测试功能,以验证模拟的电源故障之后的模拟持续存储器的一致性。计算设备100可以向用户报告任何测试失败。通过提供用于测试持续存储器一致性的自动化框架,计算设备100可以使用持续存储器来提高应用的质量。此外,计算设备100可以使用用户级和/或应用级工具来执行应用测试,而不需要对操作系统或管理程序的修改。另外,在说明性实施例中,计算设备100具有与模拟计算设备102相同的架构;例如,计算设备100包括持续存储器。然而,应当理解,在一些实施例中,计算设备100可以具有与模拟的计算设备102不同的架构和/或可以不包括持续存储器。计算设备100可以被具体化为能够执行本文描述的功能的任何类型的计算设备,该计算设备包括但不限于计算机、工作站、多处理器系统、服务器、机架式服务器、刀片服务器、膝上型计算机、笔记本计算机、网络装置、web装置、分布式计算系统、基于处理器的系统和/或消费电子设备。如图1所示,计算设备100包括处理器120、输入/输出子系统122、存储器124、数据储存设备130和通信电路132。当然,计算设备100可以包括其它或附加组件(诸如在其它实施例中通常在服务器设备(例如,各种输入/输出设备)中发现的那些)。另外,在一些实施例中,一个或多个说明性组件可以并入或以其他方式形成另一组件的一部分。例如,在一些实施例中,存储器124或其部分可以并入处理器120中。处理器120可以被具体化为能够执行本文所描述的功能的任何类型的处理器。处理器120可以被具体化为单核或多核处理器、数字信号处理器、微控制器或其它处理器或处理/控制电路。类似地,存储器124可以被具体化为能够执行本文所描述的功能的任何类型的易失性或非易失性存储器或数据储存器。在操作中,存储器124可以储存在计算设备100的操作期间使用的各种数据和软件(诸如操作系统、应用、程序、库和驱动器)。存储器124还包括易失性存储器126和持续存储器128。易失性存储器126可以被具体化为传统RAM,这意味着当从计算设备100和/或易失性存储器126移除电力时,包含在易失性存储器126中的任何数据都会丢失。持续存储器128可以被具体化为任何字节可寻址的高性能的非易失性存储器。例如,持续存储器128可以被具体化为电池支持的RAM、相变存储器、基于忆阻器的存储器或其它类型的持续存储器。持续存储器128可以包括类似于易失性存储器126的程序和数据;然而,在从计算设备100和/或持续存储器128移本文档来自技高网...
用于在持续存储器系统中的应用验证的技术

【技术保护点】
一种用于软件测试的计算设备,所述计算设备包括:捕获模块,所述捕获模块用于:(i)使用所述计算设备的平台模拟器来从代码模块中的测试位置到所述代码模块中的第二位置执行所述代码模块,并且(ii)在执行所述代码模块期间追踪由所述平台模拟器模拟的模拟计算设备的持续存储器状态,以生成指示所述持续存储器状态的追踪数据;以及重放模块,所述重放模块用于(i)基于所述追踪数据来生成持续存储器写入的排列,其中,所述持续存储器写入的排列具有所述模拟计算设备的硬件规范所允许的排序,(ii)重放所述持续存储器写入的排列,(iii)响应于重放所述持续存储器写入的排列而模拟电源故障,以及(iv)响应于所述电源故障的模拟而使用所述平台模拟器来调用与所述代码模块相关联的测试功能。

【技术特征摘要】
【国外来华专利技术】2015.03.27 US 14/670,9651.一种用于软件测试的计算设备,所述计算设备包括:捕获模块,所述捕获模块用于:(i)使用所述计算设备的平台模拟器来从代码模块中的测试位置到所述代码模块中的第二位置执行所述代码模块,并且(ii)在执行所述代码模块期间追踪由所述平台模拟器模拟的模拟计算设备的持续存储器状态,以生成指示所述持续存储器状态的追踪数据;以及重放模块,所述重放模块用于(i)基于所述追踪数据来生成持续存储器写入的排列,其中,所述持续存储器写入的排列具有所述模拟计算设备的硬件规范所允许的排序,(ii)重放所述持续存储器写入的排列,(iii)响应于重放所述持续存储器写入的排列而模拟电源故障,以及(iv)响应于所述电源故障的模拟而使用所述平台模拟器来调用与所述代码模块相关联的测试功能。2.根据权利要求1所述的计算设备,其中,追踪所述持续存储器状态包括:追踪由所述代码模块执行的持续存储器写入;追踪由所述代码模块执行的高速缓存行冲洗;或者追踪由所述代码模块执行的存储器栅栏。3.根据权利要求1所述的计算设备,其中,追踪所述持续存储器状态包括追踪由所述代码模块执行的持续存储器提交原语。4.根据权利要求3所述的计算设备,其中,基于所述追踪数据来生成所述持续存储器写入的排列包括:选择由持续存储器提交原语定界的所述追踪数据的段;以及生成被限于所述追踪数据的所述段的持续存储器写入的排列。5.根据权利要求1所述的计算设备,其中:所述捕获模块还用于使用所述平台模拟器来生成针对所述代码模块中的所述测试位置的状态检查点,其中,所述状态检查点指示所述模拟计算设备的所述持续存储器状态;以及重放所述持续存储器写入的排列包括基于所述状态检查点来重放所述持续存储器写入的排列,其中,重放所述持续存储器写入的排列包括根据所述持续存储器写入的排列来修改所述状态检查点。6.根据权利要求5所述的计算设备,其中,所述重放模块还用于响应于从所述代码模块中的所述测试位置到所述代码模块中的所述第二位置对所述代码模块的执行而将所述代码模块恢复到所述状态检查点。7.根据权利要求1所述的计算设备,其中,基于所述追踪数据来生成所述持续存储器写入的排列包括从能够由所述追踪数据定义的持续存储器写入的所有可能排列的集合中随机选择排列。8.根据权利要求1所述的计算设备,其中,模拟所述电源故障包括在所述排列部分地完成时停止所述排列的重放。9.根据权利要求1-8中任一项所述的计算设备,其中,所述重放模块还用于:响应于所述电源故障的模拟而使用所述平台模拟器来调用与所述代码模块相关联的恢复功能;其中,调用所述测试功能包括响应于所述恢复功能的调用而调用所述测试功能。10.根据权利要求1-8中任一项所述的计算设备,其中,所述重放模块还用于:响应于所述测试功能的调用而确定所述测试功能是否失败;以及响应于确定所述测试功能失败而报告测试失败。11.根据权利要求1-8中任一项所述的计算设备,其中,所述重放模块还用于:确定持续存储器写入的充分排列是否已经响应于所述测试功能的调用而被测试;以及响应于确定持续存储器写入的充分排列尚未被测试而基于所述追踪数据来生成持续存储器写入的第二排列,其中,所述持续存储器写入的第二排列具有所述模拟计算设备的所述硬件规范所允许的、并且与所述持续存储器写入的排列的排序不同的排序。12.根据权利要求11所述的计算设备,其中,确定持续存储器写入的充分排列是否已经被测试包括:确定具有所述模拟计算设备的所述硬件规范所允许的排序的、能够由所述追踪数据定义的持续存储器写入的所有可能排列是否已经被测试。13.根据权利要求11所述的计算...

【专利技术属性】
技术研发人员:P·R·兰茨T·维尔哈姆K·因施特鲁门托维K·库马尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1