微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 基于CPLD的容错存储器的设计实现

基于CPLD的容错存储器的设计实现

时间:09-14 来源:互联网 点击:
随着各种电路和芯片的性能(速度、集成度等)不断提高,尤其是在军事、航空航天等用途中对可靠性的要求往往是第一位的,人们对于系统的可靠性方面的要求日益增加,这对电路系统的设计和制造都提出了严格的目标要求。  
 
存储器是电路系统中最常用的器件之一,采用大规模集成电路存储芯片构成。实际统计表明,存储器在太空应用中的主要错误是由瞬态错误(也叫单个事件扰动,SEU)所引起的一位错或者相关多位错,而随机独立的多位错误极少。半导体存储器的错误大体上分为硬错误和软错误,其中主要为软错误。硬错误所表现的现象是在某个或某些位置上,存取数据重复地出现错误。出现这种现象的原因是一个或几个存储单元出现故障。软错误主要是由α粒子引起的。存储器芯片的材料中含有微量放射性元素,他们会间断地释放α粒子。这些粒子以相当大的能量冲击存储电容,改变其电荷,从而引起存储数据的错误。引起软错误的另一原因是噪声干扰。同时在太空环境下,在带电粒子足够能量撞击下,存储器的存储单元中的位发生翻转从而产生SEU错误。本文设计实现了用CPLD技术和纠检错芯片对存储器进行容错,大大提高了系统的可靠性。下面是具体容错存储器和门警电路的设计。

1 检错与纠错原理

常用的能检测2位错同时能纠正1位错(简称纠一检二,SEC-DED)的纠错码有扩展汉明码(Extended Hamming Code)和最佳奇权码(Optimal他们的最小码距都为4,两者有相似之处,如冗余度一样,对于数据位数k,校验位数r应满足2 r-1 ≥k+r。当k=16时,r=6,数据位长增加1倍,校验位数只需增加1位,编码效率较高。另外从来源上讲,两者分别是汉明码的扩展码和截短码,也有资料称最佳奇权码为修正汉明码(Modified Hamming Code)。文献介绍了SEC-DED和SEC-AUED)码的编解码理论。从性能上看最佳奇权码比扩展汉明码更为优越,前者在纠检错能力方面也优于后者,他的3位错误的误纠概率低于后者,而4位错误的检测概率高于后者,最重要的是他便于硬件实现,故应用的最多,本文采用最佳奇权码。  

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

(1)每列含有奇数个1,且无相同列。  
 
(2)总的1的个数少,所以校验位、伴随式生成表达式中的半加项数少,从而生成逻辑所需的半加器少,可以节约器材、降低成本和提高可靠性。  
 
(3)每行中1的个数尽量相等或接近某个平均值,这种决定生成逻辑及其级数的一致性,不仅译码速度快,同时线路匀称。  
 
应用中采用(13,8,4)最佳奇权码,数据码为(d7 d6 d5 d4 d3 d2 d1 d0),校验码为(c4 c3 c2 c1 c0),P矩阵和编码规则分别为:  



译码时把数据再次编码所得到的新校验位与原校验位模2加,便得到伴随式S,由其可判别错误类型:


(1)若S=0,则认为没有错误;  
 
(2)若S≠0,且S含有奇数个1,则认为产生了单位错;若S≠0,且S含有偶数个1,则认为产生了2位错。  



因此,错误图样S=[s 0  s 1  s 2  s 3  s 4 ]与产生的错误一一对应,从而实现纠一检二功能。  

2 存储器容错芯片设计实现

2.1 存储器设计实现方案  

(1)备份行(或列)方案  

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

(2)纠错编码方案  

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



2.2 纠检错电路设计

纠检错电路必须配合CPU的读写时序进行工作,可以将CPU的时序分为读周期和写周期。在写周期时,总线通过纠错电路直接将数据写入到存储器,同时数据通过纠错电路产生5 b校验码写入到冗余存储器。读周期时分成2步,第1步从存储器和冗余存储器分别读取数据和校验位数据送入纠错电路锁存;第2步进行检错,如果没有错误直接将数据送出到数据总线,有2位错产生中断进行处理,有1位错对数据进行纠错并送入数据总线。因需要的是正确数据,如果是校验位出错则不进行任何处理,直接输出正确数据。  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top