4376|0

1782

帖子

0

TA的资源

至上芯片

楼主
 

纠错码在容错存储器设计中的应用 [复制链接]

纠错码在容错存储器设计中的应用

作者:西安电子科技大学通信工程系 周江 [ 返回 ]


摘 要:本文分析了存储器产生错误的原因,提出了提高其可靠性的途径,给出了一套常用数字系统中存储器容错的纠错码方案,最终通过验证电路说明其可行性。
关键词:容错;ECC;改进汉明码;存储器
容错存储器概述
   存储器是数字系统中常用的器件之一,是采用大规模集成电路存储芯片构成的。实际统计表明,存储器的主要错误是单个电路故障所引起的一位错或者相关多位错,而随机独立的多位错误极少。在按字节组织的内存储器中,主要错误模式为单字节错;而在按位组织的内存储器中,主要错误模式为单位错。

  半导体存储器的错误大体上分为硬错误和软错误,其中主要为软错误。硬错误所表现的现象是在某个或某些位置上,存取数据重复地出现错误,出现这种现象的原因是一个或几个存储单元出现故障。软错误主要是由α粒子引起的,存储器芯片的材料中含有微量放射性元素,它们会间断地释放α粒子。这些粒子以相当大的能量冲击存储电容,改变其电荷,从而引起存储数据的错误。引起软错误的另一原因是噪声干扰。

  随着存储芯片容量的增大,器件的成品率呈指数规律下降。通常人们一方面改良制造工艺以提高成品率,另一方面在电路设计时通过硬件冗余的方式来实现可靠性的提高。当前,VLSI存储器芯片的设计过程中主要采用两种错误检测与纠正方案。

  ● 备份行(或列)方案
   这种方案是在存储芯片的设计与制造过程中,增加若干备份的行(或列)。在芯片测试时,若发现失效的行(或列),则通过激光(或电学)的处理,用备份行(或列)去代替它们。这种方法的优点是设计简单,管芯面积增加较少,电路速度没有损失。但是,它需要增加某些测试与修正失效行(或列)的工艺环节,更重要的弱点是这种方案仅适用于RAM,不能用于ROM。

  ● 纠错编码方案
   这种方案是在存储芯片内部采用纠错编码,自动检测并纠正错误。这种方案不需要额外的测试和纠正错误等工艺环节,除提高成品率外,还对可靠性有明显改进。这种方案最突出的优点是特别适合ROM,在对速度要求不高的情况下也可用于RAM。其主要缺点在于要占用额外的芯片面积,同时因编译码而影响芯片整个的工作速度。将用于存储器系统级的纠错编码等容错技术引入存储器芯片内部,是提高存储芯片成品率和可靠性的有效措施,例如ECC内存就采用了此技术。

常用的纠错码简介
   数据通信中常用的纠检错码有奇偶校验码、汉明码及其改进码。

  ● 在串行通信中使用的一维奇偶校验码是最简单的一种纠错码,它的编码规律是在数据位末尾添加一位校验位,使得整个码字中含有奇数或偶数个1,它能发现所有的奇数位错,但它不能用来纠正错误。需要指出的是采用二维奇偶校验码(即将数据按矩阵排列,分别对行、列进行一维奇偶校验编码)后,不仅可以纠正一位错,还能检出某些突发错误,所以在一些数据传输网络中得以应用。

  ● 汉明码是一种能纠一位错的线性分组码,由于它的编译码简单,在数据通信和计算机存储系统中广泛应用,如在蓝牙技术和硬盘阵列中。它的最小码距为3,可以纠正一位错误,但对于两位错不能检测,还可能会造成误纠。尽管发生一位错的概率相对最高,但在一些要求较高的应用中汉明码不能满足要求。

  ● 常用的能检测两位错同时能纠正一位错(简称纠一检二,SEC-DED)的纠错码有扩展汉明码(Extended Hamming Code)和最佳奇权码(Optimal Odd-Weight-Column Code),它们的最小码距都为4,两者有相似之处,比如冗余度一样,对于数据位数k,校验位数r应满足2r-1≥k+r,当k=16时,r=6,数据位长增加一倍,校验位数只需增加一位,编码效率较高。另外从来源上讲,两者分别是汉明码的扩展码和截短码,也有资料称最佳奇权码为修正汉明码(Modified Hamming Code)。

  本文应用于存储器的纠错码是面向随机字节数据的,一二维奇偶校验码都不能满足要求,只能从最佳奇权码和扩展汉明码中选取。从性能上看最佳奇权码比扩展汉明码更为优越,前者在纠检错能力方面也优于后者,它的三位错误的误纠概率低于后者,而四位错误的检测概率高于后者,最重要的是它便于硬件实现,故应用得最多,本文决定采用最佳奇权码。

编译码原理
   首先构造最佳奇权码的校验矩阵即H矩阵,最佳奇权码的H矩阵应满足:

  (1)每列含有奇数个1,且无相同列;
   (2)总的1的个数少,所以校验位、伴随式生成表达式中的半加项数少,从而生成逻辑所需的半加器少,可以节约器材、降低成本和提高可靠性。
   (3)每行中1的个数尽量相等或接近某个平均值,这种决定了生成逻辑及其级数的一致性,不仅译码速度快,同时线路匀称。

  应用中采用(13,8,4)最佳奇权码,数据码为(d7d6···d1d0),校验码为(),P矩阵和编码规则分别为:
   译码时把数据再次编码所得到的新校验位与原校验位模二加,便得到伴随式S,由其可判别错误类型。

1)若S=0,则认为没有错误;
(2)若S≠0,且S含有奇数个1,则认为产生了单位错;
(3)若S≠0,且S含有偶数个1,则认为产生了两位错;
其中的情况(2)中,根据错误图样可以确定错误位置,将其取反即可完成纠错。
因为对用户而言真正有用的是数据,校验位是无用的。为了节省时间和器材,只对数据纠错,而对校验位不进行纠错,纠错后的数据也不再写回存储器。
纠检错性能分析
   纠一检二码可以校正单错,存储器不因单错而中断工作,故其平均无故障时间MTBF增大,提高了可靠性。但是纠一检二码的新增器材又使MTBF有所下降。

  在效率上,设在时间T内,发生1位错的次数为n1,发生两位及多位错的次数为n2,则未采用纠错码时,平均无故障时间为
T1=T/(n1+n2)=T/(1+n1/n2)n2。

  采用最佳奇权码后,一位错是可纠的,仅两位及多位错是不可纠的,作为出错处理。设由于采用纠错码而增加器材δ%,因而采用最佳奇权码后的平均无故障时间为

据资料估计,对于1位错占整个错误的比例n1/(n1+n2)为80%~90%,δ=8,增益G为4.6~9.3。
纠错系统原理框图
可以采用逻辑运算和ROM查表两种方法进行纠错,图1是逻辑运算纠错的原理框图,图2是ROM查表纠错的原理框图。
用逻辑运算进行纠错使用标准逻辑门电路实现,结构较复杂,容易产生时序错误及竞争冒险;用ROM查表进行纠错使用ROM/EPROM/E2PROM构成编码、译码表,电路结构简单,由于本文中的码长较短,所以采用易于实现的第二种方法,另外,也可采用PLD/CPLD/FPGA等可编程逻辑器件。
验证电路原理图
图3是验证电路原理图,采用Atmel公司51内核的AT89S8252单片机可实现在线编程,ECC ENABLE是控制校验位生成的口线,低电平有效,与写控制线进行或运算后使用。

总结
本文介绍了数字集成电路中提高存储器可靠性的途径,着重说明了使用纠错编码的方法,其中给出了使用最佳奇权码(扩展汉明码)的应用原理和实例,最终通过电路验证了该方案是可行有效的。


Copyright@ 2005 EDAdesign.com.cn 版权所有 不得转载 沪ICP备05000346号
此帖出自模拟电子论坛
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表