纠错内存

纠错存储器是一种计算机数据存储,它使用纠错代码(ECC)来检测和纠正存储器中发生的n位数据损坏。纠错存储器用于大多数不能容忍数据损坏的计算机,如工业控制应用、关键数据库和基础设施内存缓存。

通常情况下,纠错内存维持着一个对单比特错误免疫的内存系统:从每个字中读取的数据总是与正在写入的数据相同,即使实际存储的一个比特被翻转到错误的状态。大多数非纠错存储器不能检测错误,尽管一些支持奇偶校验的非纠错存储器允许检测但不允许纠正。

描述

纠错码可以防止未检测到的数据损坏,并用于这种损坏不可接受的计算机中,如科学金融计算应用,或数据库和文件服务器中。ECC还可以减少多用户服务器应用和xxx可用性系统中的崩溃次数。

计算机系统中的电或磁干扰可以导致动态随机存取存储器(DRAM)的一个位自发地翻转到相反的状态。最初,人们认为这主要是由于芯片包装材料中的污染物所发射的α粒子造成的,但研究表明,DRAM芯片中的大多数一次性软错误是由于背景辐射造成的,主要是来自宇宙射线二次辐射的中子,它可以改变一个或多个存储单元的内容或干扰用于读取或写入的电路。因此,错误率随着高度的增加而迅速增加;例如,与海平面相比,1.5公里处的中子通量比是3.5倍,10-12公里处(商业飞机的巡航高度)是300倍。因此,在高海拔地区运行的系统需要特殊的可靠性规定。

随着DRAM密度的进一步增加,从而使芯片上的元件变得更小,而且工作电压继续下降,DRAM芯片将更频繁地受到这种辐射的影响,因为较低能量的粒子将能够改变存储单元的状态。另一方面,更小的单元将产生更小的目标,而SOI等技术的使用可能会抵消甚至逆转这一趋势,使单个单元不那么容易受到影响。最近的研究表明,以前对比特单元错误率增加的担忧是没有根据的,因为宇宙辐射引起的单事件颠覆随着工艺几何的变化而急剧减少。

工作研究

表明,错误率差异很大,有七个数量级,从10-10错误/比特小时(大约每千兆字节的内存每小时一个比特错误)到10-17错误/比特小时(大约每千兆字节的内存每千年一个比特错误)。在SIGMETRICS/Performance/’09会议上提出了一项基于Google/s非常多的服务器的大规模研究。发现的实际错误率比以前的小规模或实验室研究高几个数量级,每十亿设备小时每兆字节有25,000(2.5×10-11错误/比特-小时)到70,000(7.0×10-11错误/比特-小时,或每千兆字节内存每1.8小时有1比特错误)的错误。每年有超过8%的DIMM内存模块受到错误的影响。

纠错内存

内存错误的后果与系统有关。在没有ECC的系统中,错误会导致崩溃或数据损坏;在大规模生产现场,内存错误是导致机器崩溃的最常见硬件原因之一。内存错误会导致安全漏洞。如果一个内存错误改变了一个位,既不导致可观察到的故障,也不影响计算或保存中使用的数据,就不会有任何后果。

0

点评

点赞

相关文章