内存神医──Docmemory

Author: 冯小民 Date: 2001年 38期

?牐犗衷贘S的手段越来越高明,有时光凭肉眼很难分辨内存条的真假,而专用的内存测试仪器对用户来说又是可望不可及的(也没有必要),为此,笔者这里向你推荐CST公司出品的内存测试工具软件——Docmemory。
  #1?牐犚弧ocmemory简介
  ?牐燚ocmemory有“内存神医”之称,它是一种先进的可自启动的电脑内存检测软件。该软件使用严谨的测试算法和程序来检测基本内存和扩展内存。它可检测出几乎所有内存条的故障;它自动探测内存容量并用直观的方法显示内存在哪些地址处存在问题。
  ?牐牬蠹铱梢詇ttp://www.Docmemory.com或驱动之家(http://www.mydrivers.com)下载Docmemory 1.45a版,下载后执行Docmemory.exe文件,它将自动解压并进入安装画面,安装时请选择“Make Boot-Disk”,制作自启动软盘。使用这个软盘可以直接启动电脑进行内存测试,无须操作系统的支持,启动之后会自动进入测试画面。
  ?牐犠⒁猓焊萌砑南低郴肪秤Ω檬荳in3.1、Win9X,在Win NT和Win 2000下将不能正常工作(不要在Win Me下制作启动软盘,因为Win Me的FORMAT命令不支持参数/S,即使用其它方法制作出包含Docmemory的启动盘,也将无法进行测试,建议在Win 98下安装,制作的软盘同样可以在装Win Me系统的PC上进行测试)。
  #1?牐牰⑷绾尾馐阅诖?
  ?牐燚ocmenory有两种测试方法供选择:快速测试(Quick Test)与老化测试(Burn-in Test)。默认选择是“Burn-in Test”。二者的主要区别是:“Burn-in Test”将连续多次进行测试,而Quick Test则只测试一次。选用老化测试可以检测出95%以上的内存故障。
  #2?牐牐ㄒ唬┡渲貌馐阅J?
  ?牐犑褂弥翱梢耘渲貌馐阅J剑セ鞑说ダ干系摹癈onfiguration”得到一下拉式菜单,菜单项目及说明如下:
  ?牐?1.“Test Group”:选择只测试常规内存或扩展内存或二者都测试。“Base Memory Test”测试1MB以下的常规内存区域;“Extended Memory Test”则测试扩展内存区域(测试时无须加载扩展内存管理程序HIMEM.SYS)。建议二者都选上。
  ?牐?2.“Test Pattern”:配置测试模式。应用了在内存测试仪器上使用的算法和程序,它们都是非常系统、精密且具有综合性的内存测试算法。这些算法用于发现内存模块是否存在该模式下的瑕疵。
  ?牐牎? Walk Data “0” 和 Walk Data “1”:在这两种模式下,将向内存任意位置填入“0”或“1”并从相应位置读取信息以检测数据是否改变。
  ?牐牎? Walk Address “0”和 Walk Address “1”:用于检测地址线是否存在数据位丢失等错误。Walk Address  “1”首先向某些位置填入任意数据,如果检测到任何改变,可以推断内存地址线有问题;而Walk Address “0”除了地址位置与Walk Address “1”不同外其它都相同。
  ?牐牎? MATS+:这种模式可以发现内存单元是否存在诸如地址解码错误等问题。
  ?牐牎? March B:与MATS+类似,但它能使用更详细的测试程序来查出更多错误,比如地址解码错误(Address Decoder Faults)、 耦合倒置错误( Coupling Inversion Faults) 等。
  ?牐牎? March C-: 检测是否有与“耦合倒置错误”无关的地址解码等错误。
  ?牐牎? Checkerboard:检测内存模块中的每个单元是否存在与相邻列、相邻数据总线之间可能存在的缺陷。它向每个偶数列内存单元写入一些数据,并将这些数据的二倍值向奇数列写入,然后从每行、列中读取数据并校验是否正确。
  ?牐牎? Burst:用于检查在读写循环中的数据突发功能是否正常。
  ?牐?3.“Test Loop 1-9999”:设置测试重复的次数,取值在1~9999之间(对于快速测试,该值固定为1,也就是说只进行一次)。循环测试有助于检测内存条是否有热不稳定的现象,或者是否能持久工作。为了考查内存条是否有热不稳定问题,建议选择循环测试并将测试次数加大(当然时间也会很长)来检测内存模块是否能连续工作。
  ?牐?4.“Change DRAM Size”:改变内存条容量,如果软件没有正确检查到内存容量就应该更改(如在一些非AMI BIOS主板——该软件专门对AMI BIOS做过优化——或更新的主板中运行有可能检测的内存容量不正确)。
  #2?牐牐ǘ┛疾馐?
  ?牐犈渲猛瓿珊螅慊鳌癆ction”菜单下的“Run_Test”或按下快捷键F5开始测试。测试时屏幕显示内存条的测试状态、系统信息和测试结果。如果测试不能通过将发生警告并高亮显示发生错误的位置。只有全部显示为“PASS”才表示测试通过。
  #2?牐牐ㄈ┓治霾馐越峁?
  ?牐犎绻觳獾酱砦螅珼ocmemory将显示结果并停留在出现错误的内存区域,下面我们以在一台586电脑上使用的一根32MB的内存条为例,对实际检测到的结果进行分析(^38030402a^)。
  ?牐牬咏峁梢钥吹剑饫锍鱿至肆礁龃砦螅馐腿缦拢?
  ?牐?1.Base Memory Test??7F090-A0000??
  ?牐燤ATS + Loop 1……Fail
  ?牐燗ddr:0007F090(506K),Exp:55aa55aa.Act:01500150
  ?牐犓得鳎阂陨纤跣吹囊庖逦篈ddr表示地址(Address),Exp代表预期的(Expected)数据,Act表示实际(Actual)测得的数据。
  ?牐牱治觯涸诮械谝换睾喜馐缘墓讨校葱小癕ATS+”模式写入一串数据(55aa55aa)到基本内存时,从该区域读取数据并试图与55aa55aa相匹配,在内存地址0007F090(大约506KB)处读取的值是01500150,与预期值(55aa55aa)不同,说明内存条这一区域有缺陷。
  ?牐?2.Extended Memory Test in 32MB(扩展内存测试)
  ?牐燤ATS + Loop 1……Fail
  ?牐燗ddr :00100000(1M), Exp:55aa55aa,Act:21802180
  ?牐牱治觯涸诘刂肺?00100000(1M)处执行MATS+测试时遇到了实际读出的数据(21802180)与希望返回的数据(55aa55aa)不相匹配的错误。
  ?牐犠酆仙厦娣治隹芍媚诖嫣踉?504KB和1MB这两个位置都不能通过MATS+测试,显然这根内存条存在地址解码方面的问题,建议更换。