Google:DRAM错误率超出人们预想

本周Google和多伦多大学公布的一项研究结果表明,DRAM内存模块的数据错误率要远远高于人们的预想,而且更有可能成为系统宕机和服务中断的罪魁祸首。

这项研究采用了上百万台Google服务器,结果表明所有DIMM中有大约8.2%受到了可修正错误的影响,平均一个DIMM每年要发生3700次可修正错误。

这项报告指出:"我们首次发现内存错误普遍存在。所有在用设备中大约1/3每年至少遇到一次内存错误,平均每年发生的可修正错误为22000次。在不同平台上得出的数据不同,有些平台大约有50%的设备受到可修正错误的影响,有的仅为12%~27%。"

至少发生过一次错误的Google服务器每年发生错误的平均数从25到611不等。内存错误可能是由电磁干扰或者硬件故障所导致。

内存错误可分为软错误和硬错误两种,软错误很少损坏字位,但是并不会避免物理损坏,这是可修正的;硬错误会损坏DRAM中的字位而成为物理缺陷,从而造成数据错误的反复发生。

Google和多伦多大学进行的这项研究涉及来自多家厂商的内存已经多种类型的内存,例如DDR1、DDR2和FB-DIMM。

这项研究覆盖了Google数据中心内的绝大多数服务器,历时两年半时间,从2006年1月持续到2008年6月。

虽然这项研究主要针对的是服务器,而且采用最新更高密度DRAM不会使错误率提高,但是随着内存芯片的密度越来越高,PC也最终需要纠错代码技术。

在特定芯片上的纠错代码被用于检测和纠正数据存储或者数据传输过长中发生的错误。

目前,DRAM采用50nm制程技术,并将迁移到40nm上。字位越来越小,DRAM就越容易发生软错误。

例如,当一台具有纠错技术的服务器在发生软错误之后仍能正常运行,而PC就需要重新启动。每次处理器尝试从服务器卡中的一个字位进行读取的时候也需要纠正硬错误,但是PC中的DRAM因为没有纠错功能而需要被替换掉,否则可能会导致采用这个内存的系统或者应用发生崩溃。

Handy表示:"研究表明,硬错误要比软错误更加常见。这意味着模块运行在服务器上,每次遇到发生硬错误的字位,它就会进行修正这样内存模块不需要被替换。如果是PC用户的话,那么设备可能就会中断运行。"如果错误是可修正的,例如多个字位超出了纠错代码可修正范围的话,服务器就会停止运转。

研究表明,考虑到这其中可能涉及到的系统故障和修复成本,内存错误的成本其实是很高的,另外它还可能引发安全问题。

报告指出:"在运行大规模系统的生产站点中,内存模块更换等级接近模块更换等级的上限,内存错误是导致硬件崩溃的最常见硬件问题。另外,最近的研究工作表明内存错误可能导致安全漏洞。"