一种基于ITP工具的MemoryDemandScrub测试方法

文档序号:6631004阅读:1552来源:国知局
一种基于ITP工具的MemoryDemandScrub测试方法【专利摘要】本发明公开了一种基于ITP工具的MemoryDemandScrub测试方法,其具体实现过程为:安装使用ITP工具,在python平台上通过Cscripts脚本,在开启和关闭DemandScrub的两种情况下,给内存注入单BitECCError,再遍历内存地址,通过读取内存中ECCError的数目来判断DemandScrub的功能是否生效。该一种基于ITP工具的MemoryDemandScrub测试方法与现有技术相比,可应用于所有支持MemoryRAS功能的X86服务器产品,模拟用户的实际应用中内存出现的ECCError,确保DemandScrub的功能实现,也有效确保服务器的可靠性和安全性。【专利说明】—种基于ITP工具的MemoryDemandScrub测试方法【
技术领域
】[0001]本发明涉及计算机【
技术领域
】,具体地说是一种实用性强、基于ITP工具的MemoryDemandScrub测试方法。【
背景技术
】[0002]随着IT领域技术的不断发展,传统信息化服务以及日趋强大的云计算服务,对服务器的安全可靠要求越来越高。作为服务器产品提供商,一款服务器无论是在研发阶段还是生产阶段都需要对产品进行安全性测试,从而严格保证该产品的安全性,其主要体现在RAS性能上。[0003]RAS特性中重要的一点就是内存的RAS特性。内存是一种电子器件,在其工作过程中难免会出现错误,而对于稳定性要求高的用户来说,内存错误可能会引起致命性的问题。内存错误根据其原因还可分为硬错误和软错误。硬件错误是由于硬件的损害或缺陷造成的,因此数据总是不正确;软错误是随机出现的,例如在内存附近突然出现电子干扰等因素都可能造成内存软错误的发生。[0004]RAS性能指的是机器的可靠性(Reliability)、可用性(Availability)和可服务性(Serviceability),系统必须尽可能的可靠,不会意外的崩溃,重启甚至导致系统物理损坏,这意味着一个具有可靠性的系统必须能够对于某些小的错误导致的硬件功能失效做出热备。MemoryRAS中的DemandScrub功能可以对内存出现的ECCError纠错,并且防止反复读取该地址时产生不可修复的error。基于此,现提供一种MemoryDemandScrub测试方法,该方法使用ITP工具给内存注入单BitECCError,模拟实际应用中内存出错情况,通过读取寄存器的值来考量MemoryDemandScrub功能是否成功实现。【
发明内容】[0005]本发明的技术任务是针对以上不足之处,提供一种实用性强、基于ITP工具的MemoryDemandScrub测试方法。[0006]一种基于ITP工具的MemoryDemandScrub测试方法,其具体实现过程为:一、准备Windows测试机和Windows控制端;二、用ITP工具连接测试机和控制端;三、测试机上电开机,进入B1SSetup界面;四、设置DemandScrub为[Disabled],即关闭MemoryRASDemandScrub功能;五、保存设置后退出,重启测试机,待测试机进入Windows系统;六、在控制端输入指令,给测试机的一个rank注入单bitECCError;七、待注错结束后,输入指令查看该Rank上ECCError数目增加I;八、反复输入指令,遍历内存地址;九、再查看该Rank上ECCError数目,即每遍历一次内存地址,Error数目增加I;十、重启测试机,设置DemandScrub为[Enabled],即打开MemoryRASDemandScrub功能;1、控制端输入指令,给测试机的一个内存rank注入单bitECCError;十二、输入指令查看该Rank上ECCError数目增加I;十三、反复输入指令遍历内存地址;十四、查看该Rank上ECCError数目,当数目保持不变时,即DemandScrub功能生效。[0007]所述Windows测试机是指安装Windows操作系统的测试平台;Windows控制端是指安装.Netframework3.5和.Netframework4.0、安装工具Intel?PlatformDebugToolkit,并且拷贝Cscripts脚本的Windows控制端平台。[0008]所述步骤二的详细过程为:将测试平台断电,然后将ITP工具的数据线XDP接口端插在主板的XDP接口,USB口插在控制端的USB端口上,并插上ITP电源。[0009]所述步骤六及步骤^--中给内存的一个Rank注入单bitECCError过程均为:在控制端打开工具Intel?PlatformDebugToolkit中的ConfigConsole,选择系统相应的平台后,点击Apply连接上测试机;控制端系统中打开Cscripts脚本文件中的Python控制台“startivt_oem.py”;Python控制台中输入指令,给内存的一个Rank注入单bitECCError。[0010]本发明的一种基于ITP工具的MemoryDemandScrub测试方法,具有以下优点:该发明的一种基于ITP工具的MemoryDemandScrub测试方法适用于带有XDP接口,支持DemandScrub功能的X86服务器产品,适用范围广泛;开启和关闭DemandScrub的两种情况下,给内存注入单BitECCError来模拟实际应用中出现的情况,再遍历内存地址,通过读取内存中ECCError的数目来判断DemandScrub的功能是否生效,该测试方法操作简单,却能够多角度、全方位的检测MemoryRASDemandScrub功能,实用性较强,有效确保了服务器的可靠性和安全性,易于推广。【专利附图】【附图说明】[0011]附图1为本发明实现流程图。【具体实施方式】[0012]下面结合附图和具体实施例对本发明作进一步说明。[0013]IMC读取内存如果遇到ECC错误,那么纠正这个错误,并且把错误的数据写入出问题的DMM里。这种RAS特性主要防止反复需要访问的内存地址如果出错,则每次需要ECC纠错,造成带宽的浪费,而且有可能导致最终变成uncorrectableerror0基于该思路,现提供一种基于ITP工具的MemoryDemandScrub测试方法,如附图1所示,其具体实现过程为:一、准备好Windows测试平台,该Windows测试平台即为安装Windows操作系统的测试机。[0014]二、准备好Windows控制端平台,该控制端平台需要安装.Netframework3.5和.Netframework4.0,安装工具Intel?PlatformDebugToolkit,即Intel?PDT,并且拷贝Cscripts脚本。[0015]三、测试平台断电情况下,将ITP工具的数据线XDP接口端插在主板的XDP接口,USB口插在控制端的USB端口上,并插上ITP电源。[0016]四、测试机上电开机,进入B1SSetup界面。[0017]五、设置DemandScrub为[Disabled],即关闭MemoryRASDemandScrub功能。[0018]六、保存设置后退出,重启测试机台,待测试机进入Windows系统。[0019]七、在控制端打开工具Intel?PlatformDebugToolkit(Intel?PDT)中的ConfigConsole,选择系统相应的平台后,点击Apply连接上测试机。[0020]八、控制端系统中打开Cscripts脚本文件中的Python控制台“startivt—oem.py”。[0021]九、Python控制台中输入指令,给内存的一个Rank注入单bitECCError。输入:#halt#e1.1njectMemError(socket=5^,channel=木],dimm=*,rank=^)SgOO[0022]在上述脚本中,代表需要注错的内存所在的socket,channel,dimm。[0023]十、待注错结束后,查看相应内存中的ECCEitot数目增加I。输入:#halt#e1.disp_ecc_cntO。[0024]十一、输入指令,遍历内存地址:#halt#mem(0x0,8)SgOO[0025]十二、再查看该内存中的ECCError数目,发现Error又增加I。[0026]十三、反复遍历内存地址,再读取该内存中的ECCError数目,会发现每遍历一次内存地址,ECCEitot数目就会增加I。[0027]十四、重启测试机台,进入B1SSetup界面。[0028]十五、设置DemandScrub为[Enabled],即打开MemoryRASDemandScrub功能。[0029]十六、保存设置后退出,重启测试机台,待测试机进入Windows系统。[0030]十七、在控制端打开工具Intel?PlatformDebugToolkit(Intel?PDT)中的ConfigConsole,选择系统相应的平台后,点击Apply连接上测试机。[0031]十八、控制端系统中打开Cscripts脚本文件中的Python控制台“startivt—oem.py”。[0032]十九、Python控制台中输入指令,给内存的一个Rank注入单bitECCError。输Λ:#halt#e1.1njectMemError(socket=5^,channel=木],dimm=*,rank=^)SgOO[0033]上述脚本中,代表需要注错的内存所在的socket,channel,dimm。[0034]二十、待注错结束后,查看相应内存中的ECCEitot数目增加I。输入:#halt#e1.disp_ecc_cntO。[0035]二^、输入指令,遍历内存地址:#halt#mem(0x0,8)#go。[0036]二十二、再输入指令,查看相应内存中的ECCError数目,此时发现其保持不变,证明DemandScrub功能生效,它在第一次发现ECCError后将数据其写入了该DIMM中,防止以后再访问该内存地址时,每次需要ECC纠错,造成带宽的浪费,而且有可能导致最终变成uncorrectableerror。[0037]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种基于ITP工具的MemoryDemandScrub测试方法的权利要求书的且任何所属【
技术领域
】的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。【权利要求】1.一种基于ITP工具的MemoryDemandScrub测试方法,其特征在于,其具体实现过程为:一、准备Windows测试机和Windows控制端;二、用ITP工具连接测试机和控制端;三、测试机上电开机,进入B1SSetup界面;四、设置DemandScrub为[Disabled],即关闭MemoryRASDemandScrub功能;五、保存设置后退出,重启测试机,待测试机进入Windows系统;六、在控制端输入指令,给测试机的一个rank注入单bitECCError;七、待注错结束后,输入指令查看该Rank上ECCError数目增加I;八、反复输入指令,遍历内存地址;九、再查看该Rank上ECCError数目,即每遍历一次内存地址,Error数目增加I;十、重启测试机,设置DemandScrub为[Enabled],即打开MemoryRASDemandScrub功能;1、控制端输入指令,给测试机的一个内存rank注入单bitECCError;十二、输入指令查看该Rank上ECCError数目增加I;十三、反复输入指令遍历内存地址;十四、查看该Rank上ECCError数目,当数目保持不变时,即DemandScrub功能生效。2.根据权利要求1所述的一种基于ITP工具的MemoryDemandScrub测试方法,其特征在于,所述Windows测试机是指安装Windows操作系统的测试平台;Windows控制端是指安装.Netframework3.5和.Netframework4.0、安装工具Intel?PlatformDebugToolkit,并且拷贝Cscripts脚本的Windows控制端平台。3.根据权利要求2所述的一种基于ITP工具的MemoryDemandScrub测试方法,其特征在于,所述步骤二的详细过程为:将测试平台断电,然后将ITP工具的数据线XDP接口端插在主板的XDP接口,USB口插在控制端的USB端口上,并插上ITP电源。4.根据权利要求2所述的一种基于ITP工具的MemoryDemandScrub测试方法,其特征在于,所述步骤六及步骤1--中给内存的一个Rank注入单bitECCError过程均为:在控制端打开工具Intel?PlatformDebugToolkit中的ConfigConsole,选择系统相应的平台后,点击Apply连接上测试机;控制端系统中打开Cscripts脚本文件中的Python控制台“startivt_oem.py”;Python控制台中输入指令,给内存的一个Rank注入单bitECCError。【文档编号】G06F11/26GK104317690SQ201410561599【公开日】2015年1月28日申请日期:2014年10月21日优先权日:2014年10月21日【发明者】齐煜,王守昊申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1