内存时序引致的蓝屏及关机倒计时故障
现在512M甚至1G的大内存使用越来越普遍,笔者的计算机华硕A8N-SLi主板就装有4条金士顿512M的DDR400内存,总计为2G,但因为使用的Athlon64 3000+ 为D0步进Winchester核心,所以在插满4条内存插槽之后,系统会自动降频为DDR333。
把内存降频使用,对我们DIYer来说,心中自然不爽,于是在BIOS中把内存频率调整为DDR400,此时BIOS中时序参数自动设置如下:
CAS latency (Tcl) 2.5T
Min RAS active time(tras) 7T
RAS to CAS delay(Trcd) 3T
Row precharge Time(Trp) 3T
Row cycle time(Trc) 10T
Row refresh cyc time(Trfc) 20T
Read-to-Write time(Trwt) 4T
Write Recovery time(Twr) 3T
1T/2T Memory Timing 2T
心里想着,不如也调整一下内存时序,提高一下性能,就顺便把内存的几个时序参数也调整了一下,改动过的参数如下,其余未动:
CAS latency (Tcl) 2T
RAS to CAS delay(Trcd) 2T
Row precharge Time(Trp) 2T
1T/2T Memory Timing 1T
重新启动后似乎一切正常,也就没再多想,正常使用了。但两天后在一次上网过程中,突然弹出对话框警告“lsass.exe意外停止,Windows需要重新启动”,接着就是60秒倒数计时。好熟悉啊,当年的“震荡波”病毒不也是这个样子吗?重启之后,赶紧断线杀毒,可是也没杀出病毒,笔者心里觉得蹊跷,因为操作系统本身已经自带了“震荡波”的补丁了啊,而且64位处理器在Windows XP2下已经打开了防溢出功能,不会是又出了什么新的病毒吧。
反正没事了,听会歌吧,一打开“Windows Media Player”,没想到又是同样的对话框警告,接着又重启了,可这次重启完之后,似乎没什么问题了,连续用了一天也没有发现异常情况。可就在第二天晚上,计算机突然蓝屏,提示ntfs.sys文件错误,只好用Reset重启,再用系统文件扫描器重新安装了一遍系统文件,心中以为这下可总算解决问题了。可是就在第三天,计算机又蓝屏,提示为“STOP at oX0000000A”之类的信息,这时才想到可能是内存的问题。
因为本人内存是Hynix的D43内存颗粒,想着应该“体质”还不错,致使发生问题的初期没有想到会是内存的问题,在BIOS中把时序参数改回来之后,一切正常,至今也没有出现过类似的问题。看来D0步进的Winchester核心内存控制器多少有点小bug,想必后来Athlon64的E3和E6核心应该修正了此类问题。
此次的经验总结就是,也许一些硬件设置的问题,会以软件的形式表现出来,比如说笔者遇到的类似病毒之类,误导了用户。平时用电脑,本身还是比较强求稳定性,没必要为了提高一点性能,而像笔者这样去调整内存时序,结果是得不偿失,像内存时序这种问题,平时还是少动为妙,请大家也多加小心。
内存时序是指:CAS Latency -tRCD-tRP -tRAS-CMD Per Clock参数,即常见的5-5-5-15-2T表达方式。
第一个数字表示内存读取数据所需的延迟时间(CAS Latency),即CL值;第二个数字表示从内存行地址到列地址的延迟时间(tRCD);第三个数字表示内存行地址控制器预充电时间(tRP),即内存从结束一个行访问到重新开始的间隔时间。
完稿于2006年2月
发表于2006年7月上的《微型计算机》