CN101834611A - 一种纠正多比特错误的ecc电路 - Google Patents
一种纠正多比特错误的ecc电路 Download PDFInfo
- Publication number
- CN101834611A CN101834611A CN 201010167575 CN201010167575A CN101834611A CN 101834611 A CN101834611 A CN 101834611A CN 201010167575 CN201010167575 CN 201010167575 CN 201010167575 A CN201010167575 A CN 201010167575A CN 101834611 A CN101834611 A CN 101834611A
- Authority
- CN
- China
- Prior art keywords
- bit
- decoder
- fpga
- circuit
- ecc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 13
- 238000012795 verification Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 claims description 5
- 241001269238 Data Species 0.000 claims description 4
- 238000012937 correction Methods 0.000 description 6
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000002800 charge carrier Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Logic Circuits (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明属于FPGA技术领域,具体为一种应用于SRAM FPGA器件的纠正多比特错误的ECC电路。该电路由3选1MUX,译码器,错误图样查找表和回写电路依次连接构成。其流程为:首先将编程点信息回读到ECC寄存器当中,按一定规则分别经过3选1MUX输出到译码器;同时,FPGA芯片内部BLOCK RAM中存储的冗余位作为4位冗余位输出到译码器;译码器采用(15,11)汉明循环码译码器。这种电路能够对FPGA中发生软错误的多个编程点进行纠正,从而使FPGA具有抗软错误功能,同时也最大程度的减少了面积开支。
Description
技术领域
本发明属于FPGA技术领域,具体涉及一种使FPGA具有抗软错误功能的电路结构。尤其涉及一种FPGA内的纠正多比特错误的ECC电路结构。
背景技术
FPGA具有独特的现场可编程性和通用灵活性,电路功能可重配置,设计周期短,因而在国防武器装备、民口通信、汽车、医疗等领域中得到日益广泛的应用。但是随着半导体工艺进入超深亚微米或纳米尺度,小尺寸,高密度和低电压所带来的优势面临巨大挑战--噪声容限的减小,使得基于SRAM结构的FPGA器件极易受到位翻转(bit flips)[1]。这种源于软错误(soft error)的偶然的位翻转,是由于高能带粒子射入半导体器件灵敏区,产生部分额外的载流子,使器件逻辑状态翻转为相反状态,从而存储的信息出错,导致系统功能紊乱,严重的可以导致灾难性事故[2]。基于SRAM结构的FPGA,配置位流(configuration bitstream)决定了设计电路的内部走线及功能[2],位流信息中的每一位对应FPGA内部结构中的码点(programmable point)(即一个SRAM单元)。Xilinx公司的Virtex系列FPGA,易受到软错误影响的敏感位(sensitive bits)中,有91%来自于配置位(configuration bits)[1]。因而,软错误引起的单粒子翻转(SEU-single-eventupset),作用于配置存储器(configuration memory),往往影响到FPGA既定的电路功能。
近些年,为了增强FPGA配置存储器抗软错误能力,国内外提出了很多方法。主流FPGA供应商Xilinx公司在其高性能的FPGA芯片Virtex系列中每帧数据采用一个ECC电路,可以纠正每帧数据中的1比特错误。但是宇宙射线会影响到编程点阵列的多列,进而产生多种错误形式。包括行多错误,列多错误及L型错误,在Virtex系列芯片的ECC校验中,一个ECC字可以对应阵列中的一列,这样,行多错误位由于分属于不同的ECC字,因而这类行多错误能够看作单个错误,ECC电路就可以处理了。然而对于其他情形,如列多错误及L型错误,由于它们属于同一个ECC字内,则Virtex系列中的ECC电路无能为力。因此有必要提出一种能纠正由于宇宙射线引起的各种编程点错误的电路结构。
参考文献:
[1]P.Graham,M.Caffrey,J.Zimmerman,D.E.Johnson,P.Sundararajan,andC.Patterson,“Consequences and Categories of SRAM FPGA Configuration SEUs”,Millitary and Aerospace Applications of Programmable Logic Devices(MAPLD),2003
[2]S.Srinivasan,A.Gayasen,N.Vijaykrishnam,M.Kandemir,Y.Xie andM.J.Irwin,“Improving soft-error tolerance of FPGA configuration bits”,ICCAD,2004
[3]J.Maiz,S.Hareland,K.Zhang,and P.Armstrong,“Characterization ofmulti-bit soft error events in advanced SRAMs,”,in IEDMTech.Dig.,Dec.2003,pp.519-522
[4]T.Suzuki,Y.Yamagami,I.Hatanaka,A.Shibayama,H.Akamatsu and H Yamauchi,“A Sub-0.5-V Operating Embedded SRAM Featuring a Multi-Bit-Error-ImmuneHidden-ECC Scheme”,IEEE Journal of Solid-State Circuits,Vol.41,No.1,Jan 2006
[5]R.W.Hamming,“Error Detecting and Error Correcting Codes,”Bell SystemTech.J.,29,147(1950)。
发明内容
本发明针对基于SRAM结构的FPGA,提出一种能纠正宇宙射线引起的各种软错误的ECC电路,用于防止软错误造成FPGA电路逻辑错误。
FPGA中的可编程资源包括可编程逻辑资源和可编程互联资源,可以视为图1中的基本编程点单元(每个编程点单元大小为1bit,实际的FPGA编程点数目远大于图1中的编程点数目,图1仅代表了基本的FPGA编程点结构)。宇宙射线会影响到编程点阵列的多列,进而产生多种错误形式[3](如图1中红线部分)。包括行多错误,列多错误及L型错误。行多错误指同一行中有多个比特错误,列多错误指一列编程点中有多个比特错误,L型错误指编程点的错误位置像一个L字母的形状。然而随着纠正能力的提高(纠正多位错误),所需要的冗余位也会增加,同时电路也会更加复杂。当一个32-bit SRAM包含一个可纠正1-bit错误的ECC电路,利用汉明码编码所需要的冗余位为6位,这时,面积上会增加19%。然而,若采用纠正能力更强的ECC电路,比如说纠正4-bit错误,面积的损耗会增加75%[4]。因而,在面积最小化的前提下,尽量提高纠错能力是ECC电路实现的关键问题。
正是为了克服以上问题,本发明提出了包含汉明循环码的ECC电路,每32位数据为一个单元,利用(15,11)汉明循环码的编译码过程,能够在较小的面积损耗下几乎能纠正由于宇宙射线引起的编程点的全部错误。
本发明提出的纠正多比特错误ECC电路,其结构如图2所示。它由3选1MUX,译码器,错误图样查找表和回写电路依次连接构成。其流程为:首先将编程点信息回读到ECC寄存器当中,按每32比特增加1比特虚拟位的规则(其中A0,A1,A2各占11比特),分别作为11比特有效位经过3选1MUX输出到译码器;与此同时,FPGA芯片内部BLOCK RAM中存储的冗余位作为4位冗余位输出到译码器;译码器采用(15,11)汉明循环码译码器。
汉明码是一种可以纠正一位差错的编码,它利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子纠正码字中的错误[5]。汉明循环码作为一类特殊的汉明码,由于具有循环特性的排列,在编码及解码时,利用约定的生成多项式g(x)进行校验,使得编译码实现更简单。设(n,k)循环码的生成多项式为g(x),以g(x)除接收码多项式R(x)的商式q(x)与余式s(x),故有R(x)=q(x)g(x)+s(x),由上式,s(x)的计算电路类似以g(x)为模的多项式除法电路。本发明采用的(15,11)循环汉明码译码器,即一个15位被除数,5位除数的除法器。除法电路得到的伴随式s(x)若等于0,输出R(x)。若输出s(x)不等于0,则s(x)对应于校验矩阵H(x)中的某一列i,便知接收码矢中第i位有错,在第i位取反数据即可。生成多项式g(x)=x4+x+1的(15,11)汉明循环码,其校验矩H(x)如下:
本发明将ECC(Error Check and Correction)技术运用到FPGA的抗软错误实现中。ECC电路的实现有两个关键问题,一是访问时间的控制,二是在面积最小化的前提下提高抗多位错误的能力。利用(15,11)循环汉明码译码器按照每32位数据为一个单元进行校验,不仅能检测错误,而且能达到纠正多比特错误的效果,最大程度上减少了面积开支。另一方面,汉明循环码的引入,使得编译码电路实现更加简单,大大的减少了ECC电路的面积。
附图说明
图1FPGA数据配置结构示意图。
图2纠正多比特错误的ECC电路结构图。
图3抗软错误系统构建流程图。
具体实施方式
本发明提出的纠正多比特错误的ECC电路在防止软错误对SRAM结构的FPGA产生损害的应用中体现价值,要配合整体流程发挥作用。
利用本发明提出的纠正多比特错误的ECC电路实现抗软错误功能的具体步骤如图3所示,具体描述如下:
1)生成带冗余码的位流。软件将生成的配置数据以每32比特填充一个虚拟位(值为0)进行扩充,然后按每11比特数据为一个信息有效位单元,经过(15,11)汉明循环码编码器生成4位冗余位数据。
2)位流下载。将冗余位数据写入芯片内部BLOCK RAM中,将生成的配置数据写入芯片内部编程点。
3)编程点信息回读。编点信息经过回读输出到ECC寄存器里,每32位编程点自动添加一位虚拟位,值为0。
4)纠正多比特错误的ECC校验。将每33比特数据(加入1比特虚拟位之后)分为3组,每一组为11比特,经过3选1MUX输出到(15,11)汉明循环码译码器中,如有软错误产生则将出错的有效位取反后回写入FPGA芯片。
5)最后通过启动指令使芯片正常启动进入工作状态。
Claims (2)
1.一种纠正多比特错误的ECC电路,其特征在于它由3选1MUX,译码器,错误图样查找表和回写电路依次连接构成;其流程为:首先将编程点信息回读到ECC寄存器当中,按每32比特增加1比特虚拟位的规则,分别作为11比特有效位经过3选1MUX输出到译码器;同时,FPGA芯片内部BLOCK RAM中存储的冗余位作为4位冗余位输出到译码器;译码器采用(15,11)汉明循环码译码器。
2.一种使用如权利要求1所述的纠正多比特错误的ECC电路实施抗软错误的方法,其特征在于具体步骤如下:
1)生成带冗余码的位流软件将生成的配置数据以每32比特填充一个虚拟位进行扩充,然后按每11比特数据为一个信息有效位单元,经过(15,11)汉明循环码编码器生成4位冗余位数据;
2)位流下载将冗余位数据写入芯片内部BLOCK RAM中,将生成的配置数据写入芯片内部编程点;
3)编程点信息回读编点信息经过回读输出到ECC寄存器里,每32位编程点自动添加一位虚拟位,值为0;
4)纠正多比特错误的ECC校验将每33比特数据(加入1比特虚拟位之后)分为3组,每一组为11比特,经过3选1MUX输出到(15,11)汉明循环码译码器中,如有软错误产生则将出错的有效位取反后回写入FPGA芯片;
5)最后通过启动指令使芯片正常启动进入工作状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101675754A CN101834611B (zh) | 2010-05-06 | 2010-05-06 | 一种纠正多比特错误的ecc电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101675754A CN101834611B (zh) | 2010-05-06 | 2010-05-06 | 一种纠正多比特错误的ecc电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101834611A true CN101834611A (zh) | 2010-09-15 |
CN101834611B CN101834611B (zh) | 2012-11-21 |
Family
ID=42718564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101675754A Expired - Fee Related CN101834611B (zh) | 2010-05-06 | 2010-05-06 | 一种纠正多比特错误的ecc电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101834611B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385936A (zh) * | 2011-09-16 | 2012-03-21 | 中国科学院微电子研究所 | 基于汉明码对静态随机存储器多位翻转进行容错的方法 |
CN109165115A (zh) * | 2018-06-26 | 2019-01-08 | 北京中电华大电子设计有限责任公司 | 一种增强flash存储器可靠性的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040124876A1 (en) * | 2002-12-30 | 2004-07-01 | Actel Corporation | Apparatus and method of error detection and correction in a radiation-hardened static random access memory field-programmable gate array |
CN1904843A (zh) * | 2005-07-11 | 2007-01-31 | 阿尔卡特公司 | 用于减轻运行期间集成电路存储器存储装置中的软错误的自动方法和设备 |
CN101063948A (zh) * | 2006-04-21 | 2007-10-31 | 奥特拉股份有限公司 | 可编程装置的软差错定位和敏感度检测 |
-
2010
- 2010-05-06 CN CN2010101675754A patent/CN101834611B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040124876A1 (en) * | 2002-12-30 | 2004-07-01 | Actel Corporation | Apparatus and method of error detection and correction in a radiation-hardened static random access memory field-programmable gate array |
CN1904843A (zh) * | 2005-07-11 | 2007-01-31 | 阿尔卡特公司 | 用于减轻运行期间集成电路存储器存储装置中的软错误的自动方法和设备 |
CN101063948A (zh) * | 2006-04-21 | 2007-10-31 | 奥特拉股份有限公司 | 可编程装置的软差错定位和敏感度检测 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385936A (zh) * | 2011-09-16 | 2012-03-21 | 中国科学院微电子研究所 | 基于汉明码对静态随机存储器多位翻转进行容错的方法 |
CN109165115A (zh) * | 2018-06-26 | 2019-01-08 | 北京中电华大电子设计有限责任公司 | 一种增强flash存储器可靠性的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101834611B (zh) | 2012-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101958720B (zh) | 缩短Turbo乘积码的编译码方法 | |
CN102915768A (zh) | 基于edac模块的三模冗余对存储器的容错装置及其方法 | |
CN111143107B (zh) | 一种fpga单粒子反转校验电路和方法 | |
CN111338840B (zh) | 航天数据保护方法、存储介质、计算机程序、系统、终端 | |
CN102789806B (zh) | 一种空间设备的tcam抗辐照防护方法 | |
US10860419B2 (en) | Minimal aliasing bit-error correction code | |
EP2580703A1 (en) | Method for providing data protection for data stored within a memory element and integrated circuit device therefor | |
CN101834611B (zh) | 一种纠正多比特错误的ecc电路 | |
US20200371872A1 (en) | Error detection and correction with integrity checking | |
Song et al. | SEC-BADAEC: An efficient ECC with no vacancy for strong memory protection | |
CN102355348A (zh) | 一种容错的des算法加速器 | |
CN111597073B (zh) | Fpga单粒子翻转纠错方法及电路 | |
Li et al. | Scheme for periodical concurrent fault detection in parallel CRC circuits | |
CN202838976U (zh) | 基于edac模块的三模冗余对存储器的容错装置 | |
El-Medany | FPGA implementation of CRC with error correction | |
Sunita et al. | Matrix code based multiple error correction technique for n-bit memory data | |
CN102831761B (zh) | 一种航天器遥控开关指令的传输方法 | |
CN1896959A (zh) | 一种静态数据存储的纠错编码装置 | |
CN108242973A (zh) | 一种数据纠错方法及装置 | |
CN111130565B (zh) | 一种基于神经网络的译码方法及装置 | |
CN114880161A (zh) | 用于数据存储校正的基于(23,12)Golay码的双相邻纠错码 | |
CN211124024U (zh) | 一种抗辐射加固存储器 | |
CN102881334B (zh) | 核探测机器人控制系统中数据存储的纠错方法 | |
Savani et al. | Development of seu monitor system for seu detection and correction in virtex-5 fpga | |
Taube et al. | Fault tolerant implementation of a SpaceWire interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121121 |
|
CF01 | Termination of patent right due to non-payment of annual fee |