原创 太空探索之装备:Chipkill自愈内存

2006-10-25 08:34 7339 10 9 分类: 处理器与DSP

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

     Chipkill内存是IBMNASA(美国太空总署)计划于2003年向火星发射的 “火星漫游者”探测器而设计的,其宗旨只有一个:高可靠性。那么,Chipkill内存是怎样实现高可靠性的呢? 

内存纠错技术的发展过程


90年代初,内存体系采用奇偶性校验(Parity Verifying)技术。奇偶校验内存在每一字节(8位)外又额外增加了一位作为错误检测之用,BIOS中的监控程序会将存入内存中的数据位相加,并将结果存于校验位中。比如一个字节中存储了某一数值10011110,每一位加起来的结果为奇数(100111105),校验位存入1。当CPU读取储存的数据时,监控程序再次相加存储的8位数据,并将计算结果与校验位相比较。如果发现二者不同,系统就会产生出错信息。奇偶校验技术仅能粗略地检查内存错误,并不具备纠错能力。


另一种内存纠错技术叫做ECCError Correct Code,纠错码),它也是在原来的数据位上外加位来实现的,增加的位用来重建错误数据。在ECC纠错体系中,如果数据为n个字节,则外加的ECC位为log2n + 5。例如对于64位数据,需要外加log28 + 5 = 8ECC位。


当出现一个存储位错误时,ECC体系可以自动进行纠错。当出现2个数据位错误时,可以检测出来,但不能纠错,这种行为通常称作“单错纠正/双错检测(Single Error Correction/Double Error Detection ,简称SEC/DED)。一次存取中有2个以上的数据位出错时,由于SEC/DED体系检测不出来了,致使数据的完整性受损。采用这种结构的存储器,当检测出多位错误时,系统就会报告出现了致命故障(Fatal fault),之后系统崩溃。


随着RAM芯片的集成度的提高和内存容量的增大,内存发生错误的概率也随之增加。几年前被认为很可靠的SECDED内存体系,今天已经力不从心了,寻求具有多位纠错能力的内存体系结构一直是众多厂商追求的目标。


1996年,Compaq公司的Advanced ECC技术实现了纠正单一内存芯片上的多位错误,也可以纠正内存条上单芯片的失效。1998年,惠普在LH3服务器产品中提出的自修复概念,主要内容也是内存的多位纠错能力。


Chipkill内存是IBMNASA(美国太空总署)计划于2003年向火星发射的 “火星漫游者”探测器而设计的,如图12001年,IBM将这种chipkill技术移植到“蓝色基因”服务器产品中,成为其面向电子商务的电子蜥蜴计划中的一个重要行动。接着DELL等厂商也纷纷在服务器中采用了这种内存体系。


5090da09-2248-4154-b75f-1458ae57bf14.JPG


图1  Chipkill内存


Chipkill是一种具有自愈(Self-healing)能力的内存体系结构,在工作过程中进行自我测试(self-test)和自我诊断(self-diagnosis),如果某个RAM芯片或内存条损坏,可以向管理员报告出错信息,但机器仍可继续运行,管理人员可在适当的时候更换故障的零件。


Chipkill内存的结构


RAM器件失效最为严重的情形是其全部数据位全部发生错误,纠正这种错误的基本思路应该着眼于芯片和系统的硬件结构,而不可能通过软件升级的方式来达到目的。


存储器中的每个字节外加一个ECC位构成ECC字。如果存储器系统的数据宽度为32个字节(或256位),实际的存储器数据的宽度是25632288位。同时,每一个数据位都被置于分离的ECC字中。


2描述了这种方法工作的原理。存储系统由4DIMM模块构成,32个字节(256位)的数据被分成4ECC字,每个ECC字含有8个字节(64位)的数据位和8ECC位。这样,一个ECC字的实际长度为64872位,存储数据总长度为72×4288位。


点击看大图


图2 Chipkill内存纠错原理


存储器控制器(Memory Controller)把每个ECC字被分成4个长度为18位的段,分别存储于4DIMM中。同时,每个DIMM中也存储了4个来自不同的ECC字的段。然后,每个段的18个位再被存储在不同的RAM芯片中。


经过上述处理,每个DRAM芯片中只保存了ECC字的一位。如果RAM芯片失效,导致某个芯片中的全部18个位都出错,也只是造成ECC字的一位错误。因为每个ECC字具有SECDED能力,可以自动纠错,所以可以恢复所有的数据。当然,对于RAM中的某一位、某一行、某一列发生失效,系统也可以实现自动纠正错误。


Chipkill内存的应用前景


通过对ECC体系进行改造而设计的自动纠错的内存体系结构,实现了人们盼望已久的彻底避免系统瘫痪和数据丢失的目的。短短几年内,集成了chipkill技术的电脑产品已经在交通调度、证券交易等高可靠性系统中得到了广泛应用了。


人们发现,使用chipkill内存的电脑产品,在提高了可靠性的同时,也降低了系统维护成本,减少了电子商务中的风险和法律责任,种种好处足以抵消价格偏高的不利因素。我们相信,chipkill技术不久就会出现在包括台式机、笔记本和嵌入式系统等所有电脑产品中。


作者:陈忠民

文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /2 下一条