一种内存ECC功能的测试方法[发明专利]

(10)申请公布号 CN 102214125 A
(43)申请公布日 2011.10.12C N  102214125 A
*CN102214125A*
(21)申请号 201110156713.3
(22)申请日 2011.06.13
G06F 11/10(2006.01)
G06F 11/22(2006.01)
(71)申请人浪潮电子信息产业股份有限公司
地址250101 山东省济南市高新区舜雅路
1036号
(72)发明人康艳丽
李会峰
(54)发明名称
一种内存ECC 功能的测试方法
(57)摘要
本发明提供一种内存ECC 功能的测试方法,
属于一种计算机服务器的内存检测和纠错方法,
具体的测试步骤如下:在内存板的其中一根内存
数据位线上引一根线用来拉低电平;启动系统到
EFIshell 下运行内存检测工具;当内存在检测的
时候,将第二步的引线接地,将数据位拉低,模
拟产生一位数据错误;检测软件会显示内存出错
以及纠错信息。该一种内存ECC 功能的测试方法
和现有技术相比,可以准确方便的核实内存产生
的错误,并可以控制产生错误的次数,通过软件查
看产生错误信息,具有很好的推广使用价值。(51)Int.Cl.
(19)中华人民共和国国家知识产权局(12)发明专利申请
权利要求书 1 页  说明书 4 页  附图 1 页
1.一种内存ECC功能的测试方法,其特征在于其具体的测试步骤如下:
步骤一、在服务器上安装Linux操作系统,引出服务器内存DIM插槽数据位上引跟线;
步骤二、启动服务器到操作系统,开始安装内存检测软件,并配置所需参数:即确定软件要进行的测试方式及测试圈数;
步骤三、重启服务器和操作系统,启动到EFI SHELL下,运行检测软件;
步骤四、把内存板上的其中引线接地,该引线将数据位拉低,产生内存的高低数位错误,该错误通过
检测软件检测出并纠正,再通过检测界面显示出来。
2.根据权利要求1所述的一种内存ECC功能的测试方法,其特征在于所述服务器上安装的Linux操作系统为Redhat Linux操作系统。
3.根据权利要求1所述的一种内存ECC功能的测试方法,其特征在于所述的内存检测软件为memtest软件。
4.根据权利要求1所述的一种内存ECC功能的测试方法,其特征在于所述检测软件的检测方式包括以下九种:
一:内存写入全0 或全  1 ,然后分别从高地址和低地址开始读取,判断是否发生改变;
二:每隔7位写入一个1或0,其余位写0或,然后读出并检验内容是否发生变化;
三:对每个连续的地址,写入的数据每次都左移一位,起始位的位置在每圈检测中也左移一位,并进行 64 圈检测;
四:地址测试,在特定地址写入0,其他地址反复写入1,读出特定地址的内容,检查是否发生了改变;
五:地址测试,在每个地址写入的内容为地址本身,然后读出内容,检验是否正确;
六:将所有的内存写入0或1,然后等待 90 分钟,接着读出内存中的数据,检查它们是否发生了改变;
七:对每个地址写入不同的随机数,然后读出,检查是否发生了改变;
八:使用和 Moving inversions相同的算法,只是写入的是随机数及它的补;
九:每隔一段距离写入一个固定的随机数,其余位置写入该随机数的补,然后读取并检查数据是否发生了改变。
一种内存ECC功能的测试方法
技术领域
[0001] 本发明涉及一种计算机服务器的内存检测和纠错方法,具体地说是一种内存ECC 功能的测试方法。
背景技术
[0002] 内存是一种电子器件,在其工作过程中难免会出现错误,而对于稳定性要求高的用户来说,内存错误可能会引起致命性的问题,内存错误根据其原因还可分为硬错误和软错误:硬件错误是由于硬件的损害或缺陷造成的,因此数据总是不正确,此类错误是无法纠正的;软错误是随机出现的,例如在内存附近突然出现电子干扰等因素都可能造成内存软错误的发生。
[0003] 为了能检测和纠正内存错误,现有技术中的服务器主要用ECC(Error Checking and Correcting,错误检查和纠正)内存来实现,ECC内存即纠错内存,简单的说,其具有发现错误,纠正错误的功能,一般多应用在高档台式电脑/服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。
[0004] 当数据被写入内存,相应的ECC代码与此同时也被保存下来。当重新读回刚才存储的数据时,保存下来的ECC代码就会和读数据时产生的ECC代码做比较。如果两个代码不相同,他们则会被解码,以确定数据中的那一位是不正确的。然后这一错误位会被抛弃,内存控制器则会释放出正确的数据。被纠正的数据很少会被放回内存。假如相同的错误数据再次被读出,则纠正过程再次被执行。重写数据会增加处理过程的开销,这样则会导致系统性能的明显降低。如果是随机事件而非内存的缺点产生的错误,则这一内存地址的错误数据会被再次写入的其他数据所取代。
[0005] 目前检测内存ECC功能的测试方法有很多,但大多数需要在计算机系统下检测或者在BIOS环境下进行,操作起来不是很方便。
发明内容
[0006] 本发明的技术任务是解决现有技术的不足,提供一种操作方便的内存ECC功能的测试方法。
[0007] 本发明的技术方案是按以下方式实现的,该一种内存ECC功能的测试方法,其具体的测试步骤如下:
在服务器上安装Linux操作系统,引出服务器内存DIM插槽数据位上引跟线;
启动服务器到操作系统,开始安装内存检测软件,并配置所需参数:即确定软件要进行的测试方式及测试圈数;
重启服务器和操作系统,启动到EFI SHELL下,运行检测软件;
把内存板上的其中引线接地,该引线将数据位拉低,产生内存的高低数位错误,该错误通过检测软件检测出并纠正,再通过检测界面显示出来。
[0008] 所述服务器上安装的Linux操作系统为Redhat Linux操作系统。
[0009] 所述的内存检测软件为memtest软件。
[0010] 所述检测软件的检测方式包括以下九种:
一:内存写入全0 或全  1 ,然后分别从高地址和低地址开始读取,判断是否发生改变;
二:每隔7位写入一个1或0,其余位写0或,然后读出并检验内容是否发生变化;
三:对每个连续的地址,写入的数据每次都左移一位,起始位的位置在每圈检测中也左移一位,并进行 64 圈检测;
四:地址测试,在特定地址写入0,其他地址反复写入1,读出特定地址的内容,检查是否发生了改变;
五:地址测试,在每个地址写入的内容为地址本身,然后读出内容,检验是否正确;
六:将所有的内存写入0或1,然后等待 90 分钟,接着读出内存中的数据,检查它们是否发生了改变;
七:对每个地址写入不同的随机数,然后读出,检查是否发生了改变;
八:使用和 Moving inversions相同的算法,只是写入的是随机数及它的补;
九:每隔一段距离写入一个固定的随机数,其余位置写入该随机数的补,然后读取并检查数据是否发生了改变。
[0011] 本发明与现有技术相比所产生的有益效果是:
本发明的一种内存ECC功能的测试方法通过将内存板上的引线接地,以产生内存高低位数错误,让内存ECC功能自动检测错误并纠错,通过安装的memtest软件可以查看产生的错误,以核实内存ECC功能是否可以正常使用。该方法可以准确方便的核实内存产生的错误,并可以控制产生错误的次数,通过软件查看产生错误信息,操作过程简单方便。
附图说明
[0012] 附图1是本发明的检测界面示意图。
[0013] 附图中的标记分别表示为:
1、总体进度,
2、单个测试进度,
3、错误统计,
4、出现的上一个错误,
5、已经完成的测试,
6、内存总大小。
具体实施方式
[0014] 下面结合附图1对本发明所提供的一种操作方便的内存ECC功能的测试方法作以下详细说明。
[0015] 该一种内存ECC功能的测试方法,其具体的测试步骤如下:
一、在服务器上安装Linux操作系统,引出服务器内存DIM插槽数据位上引跟线;
二、启动服务器到操作系统,开始安装内存检测软件,该内存检测软件为memtest软件,安装过程如下:
1. 解压tar xjvf memtest.tar.bz2;
2. 打patch,压缩包内提供了一个脚本进行patch的安装:
cd memtest
sh patch.sh
脚本会提示输入Linux 源码所在目录,输入正确的位置后脚本自动完成patch的安装,输入位置时可使用绝对或相对路径。
[0016]    3. 重新编译内核:
cd [ Linux 源码所在目录 ]
make [-j cpunum ]
make modules
make modules_install
make install
其中make命令可使用-j选项来指定使用多少个CPU进行编译,以提高编译的速度,如:
make -j 16
可使用16 个CPU同时进行编译,这里的cpunum 应小于等于机器上的可用逻辑CPU 总数。
[0017] 编译完成后会生成两个文件:
在/boot/efi/efi/redhat/目录下会生成initrd文件,并以.MEMTEST.img 结尾,如initrd-2.6.28.10.MEMTEST.img ,具体文件名与使用的 Linux 内核版本有关;
在/boot/目录下会生成对应的vmlinuz文件,以.MEMTEST结尾,如vmlinuz-2.6.28.10.MEMTEST,具体文件名与使用的Linux内核版本有关,将其拷贝到/ boot/efi/efi/redhat 目录下:
cp /boot/vmlinuz-*.MEMTEST /boot/efi/efi/redhat
4. 运行配置脚本
sh mconfig.sh
根据提示对测试程序进行配置。
[0018]    5. 重启系统,选择进入刚才编译的核心。
[0019] 配置所需参数:即确定软件要进行的测试方式及测试圈数,该检测团建的检测方式包括以下九种, 且每项测试均为可选:
A:内存写入全0 或全  1 ,然后分别从高地址和低地址开始读取,判断是否发生改变;
B:每隔7位写入一个1或0,其余位写0或,然后读出并检验内容是否发生变化;
C:对每个连续的地址,写入的数据每次都左移一位。起始位的位置在每圈检测中也左移一位,为了使用所有的数据模式,需要进行 64 圈检测。这个检测可以有效检测数据敏感的错误,但会耗费较长的时间;
D:地址测试,在特定地址写入0,其他地址反复写入1,读出特定地址的内容,检查是否发生了改变;
E:地址测试,在每个地址写入的内容为地址本身,然后读出内容,检验是否正确。这个测试可能会检测出上一个测试没发现的一些地址错误。
[0020] F:将所有的内存写入0或1,然后等待90 分钟,接着读出内存中的数据,检查它们是否发生了改变,这个测试耗时不小于 3 小时。
[0021] G:对每个地址写入不同的随机数,然后读出,检查是否发生了改变;

本文发布于:2024-09-23 04:22:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/401739.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:内存   检测   错误   软件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议