CN106531224B - 一种基于sram型fpga的ram数据可靠性加固装置及方法 - Google Patents
一种基于sram型fpga的ram数据可靠性加固装置及方法 Download PDFInfo
- Publication number
- CN106531224B CN106531224B CN201610939803.2A CN201610939803A CN106531224B CN 106531224 B CN106531224 B CN 106531224B CN 201610939803 A CN201610939803 A CN 201610939803A CN 106531224 B CN106531224 B CN 106531224B
- Authority
- CN
- China
- Prior art keywords
- data
- signal
- edac circuit
- error
- circuit
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Abstract
一种基于SRAM型FPGA的RAM数据可靠性加固装置及方法,涉及一种基于SRAM型FPGA的片内或片外RAM存储器数据加固装置和方法。为了解决现有的存储器加固方法存在的抗辐射工艺加固费用高、存储器三模冗余硬件开销大、SRAM型FPGA设计的EDAC电路自身可靠性差等问题。本发明采用Hsiao码作为纠错码实现EDAC电路的编解码操作,能实现数据的纠一检二功能,采用缓存方式实现错误数据纠正后的回写,将处理器或外设访问双口RAM的写地址和写数据暂存于地址缓存和数据缓存中。本发明适用于SRAM型FPGA的RAM数据可靠性加固。
Description
技术领域
本发明涉及一种基于SRAM型FPGA的RAM数据可靠性加固装置及方法。
背景技术
随着卫星技术与应用的不断发展,人们在要求降低卫星成本、减小风险的同时,迫切需要缩短卫星的开发研制周期,小卫星技术因此应运而生。
SRAM型FPGA由于集成度高,灵活性好,可以反复烧写,开发成本低,高密度等特性,已广泛应用在航空航天领域,但是SRAM型FPGA是易失性存储,很容易受到单粒子翻转的影响。单粒子翻转可能会造成存储器数据状态的变化,从而使星载计算机系统的指令或是数据出现错误,严重时可能导致整个星载计算机系统的崩溃。
在星载计算机系统的设计中,不仅要满足基本的功能需求,更要考虑航天品质的高可靠性要求。目前针对单粒子翻转效应进行器件加固的方法可以归为两类,分别为错误避免和错误容忍。前者是从制作工艺的角度对器件进行加固,以防止单粒子翻转引发的的错误;后者是从电路设计方面对器件进行加固,这种技术不能阻止错误的发生,但是能在出错后保证系统的正常运行,如EDAC电路(Error Detection And Correction即错误检测与纠正电路)、三模冗余等。
上述器件加固方法中,抗辐射工艺加固的方法费用高,且通用性差;存储器的三模冗余方法会增加硬件开销,不适用于对体积、质量与功耗等要求较高的场合;EDAC虽能通过编解码对数据进行保护,但是其自身可能存在可靠性问题,另外,错误数据纠正后的回写操作会降低存储器的访问速度。
发明内容
本发明是为了解决现有的存储器加固方法存在的抗辐射工艺加固的方法费用高,且通用性差;存储器的三模冗余方法会增加硬件开销,不适用于对体积、质量与功耗等要求较高的场合;EDAC虽能通过编解码对数据进行保护,但是存在可靠性差问题,且在错误数据纠正后的回写操作会降低存储器的访问速度的问题,提出了一种基于SRAM型FPGA的片内或片外RAM数据可靠性加固装置及方法。
本发明所述的一种基于SRAM型FPGA的RAM数据可靠性加固装置,该装置包括多路表决器一2、EDAC电路一4、EDAC电路二3、EDAC电路三5和多路表决器二6;
处理器或外部设备1的地址码信号输出端和数据信号输出端均同时与EDAC电路一4的地址码信号输入端和数据信号输入端、EDAC电路二3的地址码信号输入端和数据信号输入端和EDAC电路三5的地址码信号输入端和数据信号输入端相连;
EDAC电路一4的地址码、读写控制与数据信号输出端、EDAC电路二3的地址码、读写控制与数据信号输出端和EDAC电路三5的地址码、读写控制与数据信号输出端分别与多路表决器二6的多路信号输入端连接,多路表决器二6的表决后信号输出端连接RAM7的信号输入端;
RAM7的数据信号输出端同时连接EDAC电路一4的解码信号输入端、EDAC电路二3的解码信号输入端和EDAC电路三5的解码信号输入端;
EDAC电路一4的纠错后数据和错误标志位信号输出端、EDAC电路二3的纠错后数据和错误标志位信号输出端和EDAC电路三5的纠错后数据和错误标志位信号输出端分别与多路表决器一2的多路信号输入端连接。
进一步地:EDAC电路一4、EDAC电路二3和EDAC电路三5的结构相同;EDAC电路一4包括地址缓存器41、读写控制电路42、编码器43、数据缓存器44、数据选择器45、错误解码模块46、错误纠正模块47、伴随式生成模块48和错误标志模块49;
地址缓存器41用于接收处理器或外部设备1发送的地址码信号;所述地址缓存器41的信号输入端为EDAC电路一4的地址码信号输入端;向多路表决器二6发送地址码信号;
编码器43用于接收处理器或外部设备1发送的数据信号,向数据缓存器44发送编码后的数据信号,编码器43的信号输入端为EDAC电路一4的数据信号输入端;所述编码后的数据信号为汉明码数据;
读写控制电路42用于接收地址缓存器41发送的状态信号,向数据缓存器44和地址缓存器41发送缓存读或写使能信号,同时向多路表决器二6发送读或写控制信号;
数据缓存器44用于接收读写控制电路42发送的缓存读或写使能信号,根据接收的缓存读或写使能信号接收编码器43发送的编码后数据信号,向数据选择器45发送编码后数据信号;
数据选择器45用于接收读写控制电路42发送的多路选择器选择控制端信号、数据缓存器44发送的编码后数据信号和错误纠正模块47发送的纠正后数据编码信号,向多路表决器二6发送正确的数据编码信号;
错误解码模块46用于接收伴随式生成模块48发送的校验子信号,根据校验子的值与误码位置的对应关系,判断数据中出现错误码的个数和位置,获得错误图样信号,向错误纠正模块47发送错误图样信号;
错误纠正模块47用于读取RAM7的编码信号,接收错误解码模块46发送的错误图样信号,对错误图样与从RAM中读入的数据码和校验码进行异或处理实现错误纠正,将纠正后的编码信号发送至数据选择器45和多路表决器一2;
伴随式生成模块48用于读取RAM7的数据编码信号,利用监督矩阵对读取的数据编码信号与校验码进行异或处理,获得校验子信号,向错误标志模块49发送校验子信号;
错误标志模块49用于接收伴随式生成模块48发送的校验子信号,根据校验子判断数据编码有无错误,输出错误标志位信号,若数据编码无错误,则输出的一位错误标志位SEF和两位错误标志位DEF均为0,若数据编码有一位错误,则输出的一位错误标志位SEF为1,两位错误标志位DEF为0;若数据编码有两位错误,则输出的一位错误标志位SEF为0,两位错误标志位DEF为1。
一种基于SRAM型FPGA的RAM数据可靠性加固方法,该方法的具体步骤为:
将处理器或外部设备1的数据写入RAM(7)的过程;
步骤一、将处理器或外部设备1发送的地址码信号和数据信号同时发送至EDAC电路一4、EDAC电路二3和EDAC电路三5,对地址码信号和数据信号进行三模备份;
步骤二、EDAC电路一4、EDAC电路二3和EDAC电路三5分别利用三个编码器对处理器或外部设备1发送的数据信号进行编码,获得三路数据编码,所述编码为改进汉明码;
步骤三、利用多路表决器二6对通过EDAC电路一4、EDAC电路二3和EDAC电路三5获得三路数据编码进行三选二表决,获得正确的编码,并将正确的编码写入RAM7;编码包括数据码与校验码;
处理器或外部设备1从RAM(7)中读取数据的过程;
步骤四、处理器或外部设备1将需要访问的地址信号同时发送至EDAC电路一4、EDAC电路二3和EDAC电路三5,EDAC电路一4、EDAC电路二3和EDAC电路三5分别采用三个地址缓存器41将需要访问的地址数据发送至多路表决器二6,经多路表决器二6对需要访问的地址数据进行三选二表决,将表决获得的地址码数据作为所需要访问的地址,对RAM7进行访问;
步骤五、由于EDAC电路一4、EDAC电路二3和EDAC电路三5的结构相同,因此数据处理过程相同,EDAC电路一4通过伴随式生成模块48利用从RAM7读取的编码生成校验子,错误解码模块46利用校验子的值与误码位置的对应关系,生成错误图样信号;错误标志模块49根据校验子判断数据编码有无错误,输出错误标志位信号,若数据编码无错误,则输出的一位错误标志位SEF和两位错误标志位DEF均为0,若数据编码有一位错误,则输出的一位错误标志位SEF为1,两位错误标志位DEF为0;若数据编码有两位错误,则输出的一位错误标志位SEF为0,两位错误标志位DEF为1;
步骤六、利用错误图样信号与从RAM7读取的编码对错误图样与从RAM中读入的数据码和校验码进行异或处理实现错误纠正,将纠正后的编码信号发送至数据选择器45和多路表决器一2,数据选择器45对纠正后的编码信号进行回写;
步骤七、多路表决器一2对接收的EDAC电路一4、EDAC电路二3和EDAC电路三5发送的纠正后的编码信号进行三选二表决,将表决后的编码发送至处理器或外部设备1。
进一步说明:EDAC电路一4、EDAC电路二3和EDAC电路三5的数据选择器45对纠正后的编码信号进行回写的过程均为:
EDAC电路一4的数据选择器45、EDAC电路二3的数据选择器45和EDAC电路三5的数据选择器45均将错误纠正模块47发送的纠正后的编码信号发送至多路表决器二6进行三选二表决,获得正确的编码信号,并将正确的编码信号写入RAM7;实现回写。
本发明的有益效果在于:
(1)采用Hsiao码作为纠错码实现EDAC电路的编解码操作,能实现数据的纠一检二功能。Hsiao码具有编码效率高、纠错成本低、纠错时间短的优点,与相同纠检错能力的编码方式相比,Hsiao码占用资源较少,且编码和解码过程延时较短。
(2)采用缓存方式实现错误数据纠正后的回写,将处理器或外设访问双口RAM的写地址和写数据暂存于地址缓存和数据缓存中。该方法解决了处理器对RAM写操作与EDAC回写操作的冲突,即使连续读取数据且发生一位错误也不会影响写操作的执行,提高处理器向RAM写入数据的频率。
(3)SRAM型FPGA不仅BRAM受单粒子翻转的影响,配置区也可能因单粒子翻转而出错。利用SRAM型FPGA的逻辑资源对EDAC模块采用三模冗余设计,三选二输出正确结果,实现对配置区电路的加固,防止EDAC电路受单粒子翻转影响导致编码或解码等过程出错,提高装置自身的可靠性。
附图说明
图1为发明所述一种基于SRAM型FPGA的RAM数据可靠性加固装置的原理框图;
图2为EDAC电路一的原理框图;图中,读写控制电路的WR端为处理器写使能信号端,RD端为处理器读使能信号端,wr_en端为缓存写使能信号端,rd_en端为缓存读使能信号端,ram_we端为RAM写信号端,ram_oe端为RAM读信号端,full为缓存满状态标志位,empty为缓存空状态标志位,SEF为一位错误标志(错误标志模块生成),WD为数据选择器选择控制端信号。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
具体实施方式一、结合图1说明本实施方式,本实施方式所述的一种基于SRAM型FPGA的RAM数据可靠性加固装置,该装置包括多路表决器一2、EDAC电路一4、EDAC电路二3、EDAC电路三5和多路表决器二6;
处理器或外部设备1的地址码信号输出端和数据信号输出端均同时与EDAC电路一4的地址码信号输入端和数据信号输入端、EDAC电路二3的地址码信号输入端和数据信号输入端和EDAC电路三5的地址码信号输入端和数据信号输入端相连;
EDAC电路一4的地址码、读写控制与数据信号输出端、EDAC电路二3的地址码、读写控制与数据信号输出端和EDAC电路三5的地址码、读写控制与数据信号输出端分别与多路表决器二6的多路信号输入端连接,多路表决器二6的表决后信号输出端连接RAM7的信号输入端;
RAM7的数据信号输出端同时连接EDAC电路一4的解码信号输入端、EDAC电路二3的解码信号输入端和EDAC电路三5的解码信号输入端;
EDAC电路一4的纠错后数据和错误标志位信号输出端、EDAC电路二3的纠错后数据和错误标志位信号输出端和EDAC电路三5的纠错后数据和错误标志位信号输出端分别与多路表决器一2的多路信号输入端连接。
具体实施方式二、本实施方式是对具体实施方式一所述的一种基于SRAM型FPGA的RAM数据可靠性加固装置的进一步说明,EDAC电路一4、EDAC电路二3和EDAC电路三5的结构相同;EDAC电路一4包括地址缓存器41、读写控制电路42、编码器43、数据缓存器44、数据选择器45、错误解码模块46、错误纠正模块47、伴随式生成模块48和错误标志模块49;
地址缓存器41用于接收处理器或外部设备1发送的地址码信号;所述地址缓存器41的信号输入端为EDAC电路一4的地址码信号输入端;向多路表决器二6发送地址码信号;
编码器43用于接收处理器或外部设备1发送的数据信号,向数据缓存器44发送编码后的数据信号,编码器43的信号输入端为EDAC电路一4的数据信号输入端;所述编码后的数据信号为汉明码数据;
读写控制电路42用于接收地址缓存器41发送的状态信号,向数据缓存器44和地址缓存器41发送缓存读或写使能信号,同时向多路表决器二6发送读或写控制信号;
数据缓存器44用于接收读写控制电路42发送的缓存读或写使能信号,根据接收的缓存读或写使能信号接收编码器43发送的编码后数据信号,向数据选择器45发送编码后数据信号;
数据选择器45用于接收读写控制电路42发送的多路选择器选择控制端信号、数据缓存器44发送的编码后数据信号和错误纠正模块47发送的纠正后数据编码信号,向多路表决器二发送正确的数据编码信号;WD=0,选择0通道,发送的是编码器编码后数据;WD=1,选择1通道,发送的是纠正后的编码数据;
错误解码模块46用于接收伴随式生成模块48发送的校验子信号,根据校验子的值与误码位置的对应关系,判断数据中出现错误码的个数和位置,获得错误图样信号,向错误纠正模块47发送错误图样信号;
错误纠正模块47用于读取RAM7的编码信号,接收错误解码模块46发送的错误图样信号,对错误图样与从RAM中读入的数据码和校验码进行异或处理实现错误纠正,将纠正后的编码信号发送至数据选择器45和多路表决器一2;
伴随式生成模块48用于读取RAM7的数据编码信号,利用监督矩阵对读取的数据编码信号与校验码进行异或处理,获得校验子信号,向错误标志模块49发送;
错误标志模块49用于接收伴随式生成模块48发送的校验子信号,根据校验子判断数据编码有无错误,输出错误标志位信号,若数据编码无错误,则输出的一位错误标志位SEF和两位错误标志位DEF均为0,若数据编码有一位错误,则输出的一位错误标志位SEF为1,两位错误标志位DEF为0;若数据编码有两位错误,则输出的一位错误标志位SEF为0,两位错误标志位DEF为1。
EDAC电路解码器模块的主要功能是对从RAM中读取的编码数据进行纠检错,向处理器或外设传送正确数据并生成错误状态,主要由伴随式生成、错误解码、错误纠正、错误标志四个部分组成,其关键在于通过伴随式找到发生翻转位的位置,确定后对该位取反,即可得到正确的数据。当处理器或外设要读取RAM中的数据时,ram_oe=1,RAM中的编码数据经解码器模块得到原始数据。
a)伴随式生成
根据监督矩阵H,对从RAM中读入的信息码与校验码进行异或处理,得到校验子S。
b)错误解码
根据校验子S的值,按照校验子与误码位置的对应关系,判断出数据中出现错误的个数和位置,得到错误图样E。
c)错误纠正
错误图样E与从RAM中读入的信息码与校验码进行异或处理,实现错误纠正功能。
d)错误标志
通过校验子S进行判断,若一位错误标志SEF=0,两位错误标志DEF=0,读入的数据无错;若SEF=1,DEF=0,数据有一位错误,电路进行纠错处理;若无错,SEF=0,DEF=1,数据有两位错误,电路请求中断。
回写:数据回写功能是指当从RAM中读取的数据有一位错误时,EDAC电路将解码器模块纠正后的正确数据重新写入RAM中。
利用缓存实现错误数据纠正后的回写,是将处理器或外设访问RAM的地址和写入数据缓存在地址缓存和数据缓存中实现的。
当RAM中读取的数据有一位错误时,SEF=1,此时令wr_en=1,rd_en=0,地址缓存和数据缓存只进不出,多路选择器MUX选择“1”通路,ram_we=1,纠正后的数据重新写入RAM。若此时处理器仍然要对RAM执行写操作,则要写入的数据和地址暂存在地址缓存和数据缓存中,直至回写完成再使能rd_en,通过empty信号判断地址缓存和数据缓存是否为空,若不为空,证明在回写过程中处理器已执行写操作,因此根据地址缓存中的地址依次读取数据缓存中的数据写入RAM中。若在数据回写过程中缓存满信号full=1,则处理器进行异常处理。
本发明解决了处理器对RAM写操作与EDAC回写操作的冲突,也能防止更新后的数据重新纠正,提高处理器向RAM写入数据的频率。
具体实施方式三、本实施方式所述的是一种基于SRAM型FPGA的RAM数据可靠性加固方法,该方法的具体步骤为:
将处理器或外部设备1的数据写入RAM7的过程;
步骤一、将处理器或外部设备1发送的地址码信号和数据信号同时发送至EDAC电路一4、EDAC电路二3和EDAC电路三5,对地址码信号和数据信号进行三模备份;
步骤二、EDAC电路一4、EDAC电路二3和EDAC电路三5分别利用三个编码器对处理器或外部设备1发送的数据信号进行编码,获得三路数据编码,所述编码为改进汉明码;
步骤三、利用多路表决器二6对通过EDAC电路一4、EDAC电路二3和EDAC电路三5获得三路数据编码进行三选二表决,获得正确的编码,并将正确的编码写入RAM7;编码包括数据码与校验码;
处理器或外部设备1从RAM7中读取数据的过程;
步骤四、处理器或外部设备1将需要访问的地址信号同时发送至EDAC电路一4、EDAC电路二3和EDAC电路三5,EDAC电路一4、EDAC电路二3和EDAC电路三5分别采用三个地址缓存器41将需要访问的地址信号发送至多路表决器二6,经多路表决器二6对需要访问的地址数据进行三选二表决,将表决获得的地址码数据作为所需要访问的地址,对RAM7进行访问;
步骤五、由于EDAC电路一4、EDAC电路二3和EDAC电路三5的结构相同,因此数据处理过程相同,EDAC电路一4通过伴随式生成模块48利用从RAM7读取的编码生成校验子,错误解码模块46利用校验子的值与误码位置的对应关系,生成错误图样信号;错误标志模块49根据校验子判断数据编码有无错误,输出错误标志位信号,若数据编码无错误,则输出的一位错误标志位SEF和两位错误标志位DEF均为0,若数据编码有一位错误,则输出的一位错误标志位SEF为1,两位错误标志位DEF为0;若数据编码有两位错误,则输出的一位错误标志位SEF为0,两位错误标志位DEF为1;
步骤六、利用错误图样信号与从RAM7读取的编码对错误图样与从RAM中读入的数据码和校验子进行异或处理实现错误纠正,将纠正后的编码信号发送至数据选择器45和多路表决器一2,数据选择器45对纠正后的编码信号进行回写;
步骤七、多路表决器一2对接收的EDAC电路一4、EDAC电路二3和EDAC电路三5发送的纠正后的编码信号进行三选二表决,将表决后的编码发送至处理器或外部设备1。
改进汉明码(Hsiao码)的H矩阵应满足:
(1)每列含有奇数个1,且无相同列;
(2)总的1的个数少,所以校验位、伴随式生成表达式中的半加项数少,从而生成逻辑所需的半加器少,可以节约器材、降低成本和提高可靠性;
(3)每行中1的个数尽量相等或接近某个平均值,这种决定了生成逻辑及其级数的一致性,不仅译码速度快,同时线路匀称。
考察其伴随式:
(1)若S=0,则认为没有错误;
(2)若S≠0,且S含有奇数个,则认为产生了单位错;
(3)若S≠0,且S含有偶数个,则认为产生了两位错。
Hisao码在纠检错能力方面优于扩展汉明码,它的三位错误的误纠概率低于后者,而四位错误的检测概率高于后者,从性能上看性能更加优越;逻辑中所需半加器数量少,且线路均匀,可以降低成本,提高编译码速度,便于硬件实现。
具体实施方式四、本实施方式三所述的一种基于SRAM型FPGA的RAM数据可靠性加固方法的进一步说明,EDAC电路一4、EDAC电路二3和EDAC电路三5的数据选择器45对纠正后的编码信号进行回写的过程均为:
EDAC电路一4的数据选择器45、EDAC电路二3的数据选择器45和EDAC电路三5的数据选择器45均将错误纠正模块47发送的纠正后的编码信号发送至多路表决器二6进行三选二表决,获得正确的编码信号,并将正确的编码信号写入RAM7;实现回写。
本发明对EDAC电路的可靠性设计采用三模冗余结构,将EDAC电路三次备份,通过三选二多路表决器进行判断,三个模块输出结果均一致,或者有两个模块输出结果一致时,可以输出正确结果。由于三个模块是互相独立的,两个模块同时出现错误是极小概率事件,故可以大大提高器件的可靠性。
当处理器向RAM写入数据时,EDAC1、EDAC2和EDAC3中编码器的输出结果通过多路表决器1进行判决,向RAM输入正确数据;当处理器从RAM读取数据时,EDAC1、EDAC2和EDAC3中解码器的输出结果通过多路表决器2进行判决,向处理器输入正确数据。本发明中的RAM可以指代SRAM型FPGA片外的RAM,也可以是SRAM型FPGA片内的RAM。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于SRAM型FPGA的RAM数据可靠性加固装置,其特征在于,该装置包括多路表决器一(2)、EDAC电路一(4)、EDAC电路二(3)、EDAC电路三(5)和多路表决器二(6);
处理器或外部设备(1)的地址码信号输出端和数据信号输出端均同时与EDAC电路一(4)的地址码信号输入端和数据信号输入端、EDAC电路二(3)的地址码信号输入端和数据信号输入端和EDAC电路三(5)的地址码信号输入端和数据信号输入端相连;
EDAC电路一(4)的地址码、读写控制与数据信号输出端、EDAC电路二(3)的地址码、读写控制与数据信号输出端和EDAC电路三(5)的地址码、读写控制与数据信号输出端分别与多路表决器二(6)的多路信号输入端连接,多路表决器二(6)的表决后信号输出端连接RAM(7)的信号输入端;
RAM(7)的数据信号输出端同时连接EDAC电路一(4)的解码信号输入端、EDAC电路二(3)的解码信号输入端和EDAC电路三(5)的解码信号输入端;
EDAC电路一(4)的纠错后数据和错误标志位信号输出端、EDAC电路二(3)的纠错后数据和错误标志位信号输出端和EDAC电路三(5)的纠错后数据和错误标志位信号输出端分别与多路表决器一(2)的多路信号输入端连接;
EDAC电路一(4)、EDAC电路二(3)和EDAC电路三(5)的结构相同;
EDAC电路一(4)包括地址缓存器(41)、读写控制电路(42)、编码器(43)、数据缓存器(44)、数据选择器(45)、错误解码模块(46)、错误纠正模块(47)、伴随式生成模块(48)和错误标志模块(49);
地址缓存器(41)用于接收处理器或外部设备(1)发送的地址码信号;所述地址缓存器(41)的信号输入端为EDAC电路一(4)的地址码信号输入端;向多路表决器二(6)发送地址码信号;
编码器(43)用于接收处理器或外部设备(1)发送的数据信号,向数据缓存器(44)发送编码后的数据信号,编码器(43)的信号输入端为EDAC电路一(4)的数据信号输入端;所述编码后的数据信号为汉明码数据;
读写控制电路(42)用于接收地址缓存器(41)发送的状态信号,向数据缓存器(44)和地址缓存器(41)发送缓存读或写使能信号,同时向多路表决器二(6)发送读或写控制信号;
数据缓存器(44)用于接收读写控制电路(42)发送的缓存读或写使能信号,根据接收的缓存读或写使能信号接收编码器(43)发送的编码后数据信号,向数据选择器(45)发送编码后数据信号;
数据选择器(45)用于接收读写控制电路(42)发送的多路选择器选择控制端信号、数据缓存器(44)发送的编码后数据信号和错误纠正模块(47)发送的纠正后数据编码信号,向多路表决器二(6)发送正确的数据编码信号;
错误解码模块(46)用于接收伴随式生成模块(48)发送的校验子信号,根据校验子的值与误码位置的对应关系,判断数据中出现错误码的个数和位置,获得错误图样信号,向错误纠正模块(47)发送错误图样信号;
错误纠正模块(47)用于读取RAM(7)的编码信号,接收错误解码模块(46)发送的错误图样信号,对错误图样与从RAM中读入的数据码和校验码进行异或处理实现错误纠正,将纠正后的编码信号发送至数据选择器(45)和多路表决器一(2);
伴随式生成模块(48)用于读取RAM(7)的数据编码信号,利用监督矩阵对读取的数据编码信号与校验码进行异或处理,获得校验子信号,向错误标志模块(49)发送校验子信号;
错误标志模块(49)用于接收伴随式生成模块(48)发送的校验子信号,根据校验子判断数据编码有无错误,输出错误标志位信号,若数据编码无错误;则输出的一位错误标志位SEF和两位错误标志位DEF均为0,若数据编码有一位错误,则输出的一位错误标志位SEF为1,两位错误标志位DEF为0;若数据编码有两位错误,则输出的一位错误标志位SEF为0,两位错误标志位DEF为1。
2.一种基于SRAM型FPGA的RAM数据可靠性加固方法,该方法基于权利要求1所述装置实现,其特征在于,该方法的具体步骤为:
将处理器或外部设备(1)的数据写入RAM(7)的过程;
步骤一、将处理器或外部设备(1)发送的地址码信号和数据信号同时发送至EDAC电路一(4)、EDAC电路二(3)和EDAC电路三(5),对地址码信号和数据信号进行三模备份;
步骤二、EDAC电路一(4)、EDAC电路二(3)和EDAC电路三(5)分别利用三个编码器对处理器或外部设备(1)发送的数据信号进行编码,获得三路数据编码,所述编码为改进汉明码;
步骤三、利用多路表决器二(6)对通过EDAC电路一(4)、EDAC电路二(3)和EDAC电路三(5)获得三路数据编码进行三选二表决,获得正确的编码,并将正确的编码写入RAM(7);编码包括数据码与校验码;
处理器或外部设备(1)从RAM(7)中读取数据的过程;
步骤四、处理器或外部设备(1)将需要访问的地址信号同时发送至EDAC电路一(4)、EDAC电路二(3)和EDAC电路三(5),EDAC电路一(4)、EDAC电路二(3)和EDAC电路三(5)分别采用三个地址缓存器(41)将需要访问的地址数据发送至多路表决器二(6),经多路表决器二(6)对需要访问的地址数据进行三选二表决,将表决获得的地址码数据作为所需要访问的地址,对RAM(7)进行访问;
步骤五、由于EDAC电路一(4)、EDAC电路二(3)和EDAC电路三(5)的结构相同,因此数据处理过程相同,EDAC电路一(4)通过伴随式生成模块(48)利用从RAM(7)读取的编码生成校验子,错误解码模块(46)利用校验子的值与误码位置的对应关系,生成错误图样信号;错误标志模块(49)根据校验子判断数据编码有无错误,输出错误标志位信号,若数据编码无错误;则输出的一位错误标志位SEF和两位错误标志位DEF均为0,若数据编码有一位错误,则输出的一位错误标志位SEF为1,两位错误标志位DEF为0;若数据编码有两位错误,则输出的一位错误标志位SEF为0,两位错误标志位DEF为1;
步骤六、利用错误图样信号与从RAM(7)读取的编码对错误图样与从RAM中读入的数据码和校验码进行异或处理实现错误纠正,将纠正后的编码信号发送至数据选择器(45)和多路表决器一(2),数据选择器(45)对纠正后的编码信号进行回写;
步骤七、多路表决器一(2)对接收的EDAC电路一(4)、EDAC电路二(3)和EDAC电路三(5)发送的纠正后的编码信号进行三选二表决,将表决后的编码发送至处理器或外部设备(1)。
3.根据权利要求2所述的一种基于SRAM型FPGA的RAM数据可靠性加固方法,其特征在于,EDAC电路一(4)、EDAC电路二(3)和EDAC电路三(5)的数据选择器(45)对纠正后的编码信号进行回写的过程均为:
EDAC电路一(4)的数据选择器(45)、EDAC电路二(3)的数据选择器(45)和EDAC电路三(5)的数据选择器(45)均将错误纠正模块(47)发送的纠正后的编码信号发送至多路表决器二(6)进行三选二表决,获得正确的编码信号,并将正确的编码信号写入RAM(7);实现回写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610939803.2A CN106531224B (zh) | 2016-10-25 | 2016-10-25 | 一种基于sram型fpga的ram数据可靠性加固装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610939803.2A CN106531224B (zh) | 2016-10-25 | 2016-10-25 | 一种基于sram型fpga的ram数据可靠性加固装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106531224A CN106531224A (zh) | 2017-03-22 |
CN106531224B true CN106531224B (zh) | 2019-07-16 |
Family
ID=58292409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610939803.2A Active CN106531224B (zh) | 2016-10-25 | 2016-10-25 | 一种基于sram型fpga的ram数据可靠性加固装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106531224B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291570B (zh) * | 2017-06-23 | 2020-01-07 | 哈尔滨工业大学 | 基于Zynq-7000的片上存储器抗单粒子翻转防护方法 |
CN108766491B (zh) * | 2018-06-01 | 2019-05-31 | 北京理工大学 | 一种sram型fpga片内跟踪环路单粒子翻转错误修复方法 |
CN110309014B (zh) * | 2019-07-05 | 2023-06-20 | 西安微电子技术研究所 | 一种全行编解码sram编码器数据读写结构及数据读写方法 |
CN111653306B (zh) * | 2020-07-07 | 2022-08-26 | 中国人民解放军国防科技大学 | 用于单端口sram的微体系结构级通用加固装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2144980A1 (en) * | 1992-09-29 | 1994-08-18 | Robert L. Papenberg | Fault tolerant memory system |
CN102385936A (zh) * | 2011-09-16 | 2012-03-21 | 中国科学院微电子研究所 | 基于汉明码对静态随机存储器多位翻转进行容错的方法 |
CN102915768A (zh) * | 2012-10-01 | 2013-02-06 | 中国科学院近代物理研究所 | 基于edac模块的三模冗余对存储器的容错装置及其方法 |
CN103176934A (zh) * | 2013-02-01 | 2013-06-26 | 中国科学院近代物理研究所 | 基于fpga的容错异步串行收发器装置 |
CN103236271A (zh) * | 2013-03-26 | 2013-08-07 | 深圳市国微电子有限公司 | 基于三模冗余加固单粒子翻转的存储器、加固方法 |
CN103578567A (zh) * | 2013-11-18 | 2014-02-12 | 中国电子科技集团公司第五十八研究所 | 基于三模冗余抗辐照自刷新寄存器 |
CN105045672A (zh) * | 2015-07-24 | 2015-11-11 | 哈尔滨工业大学 | 一种基于sram fpga的多级容错加固卫星信息处理系统 |
CN105607698A (zh) * | 2015-12-17 | 2016-05-25 | 哈尔滨工业大学 | 一种高可靠性星载计算机系统方案设计方法 |
-
2016
- 2016-10-25 CN CN201610939803.2A patent/CN106531224B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2144980A1 (en) * | 1992-09-29 | 1994-08-18 | Robert L. Papenberg | Fault tolerant memory system |
CN102385936A (zh) * | 2011-09-16 | 2012-03-21 | 中国科学院微电子研究所 | 基于汉明码对静态随机存储器多位翻转进行容错的方法 |
CN102915768A (zh) * | 2012-10-01 | 2013-02-06 | 中国科学院近代物理研究所 | 基于edac模块的三模冗余对存储器的容错装置及其方法 |
CN103176934A (zh) * | 2013-02-01 | 2013-06-26 | 中国科学院近代物理研究所 | 基于fpga的容错异步串行收发器装置 |
CN103236271A (zh) * | 2013-03-26 | 2013-08-07 | 深圳市国微电子有限公司 | 基于三模冗余加固单粒子翻转的存储器、加固方法 |
CN103578567A (zh) * | 2013-11-18 | 2014-02-12 | 中国电子科技集团公司第五十八研究所 | 基于三模冗余抗辐照自刷新寄存器 |
CN105045672A (zh) * | 2015-07-24 | 2015-11-11 | 哈尔滨工业大学 | 一种基于sram fpga的多级容错加固卫星信息处理系统 |
CN105607698A (zh) * | 2015-12-17 | 2016-05-25 | 哈尔滨工业大学 | 一种高可靠性星载计算机系统方案设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106531224A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6539503B1 (en) | Method and apparatus for testing error detection | |
US7644348B2 (en) | Method and apparatus for error detection and correction | |
EP1160987B1 (en) | Method and apparatus for verifying error correcting codes | |
CN106531224B (zh) | 一种基于sram型fpga的ram数据可靠性加固装置及方法 | |
CN105340022A (zh) | 用于校正数据错误的电路、设备及方法 | |
US20120079346A1 (en) | Simulated error causing apparatus | |
JP2001249854A (ja) | メモリ設計のための共有式誤り訂正 | |
KR20130087935A (ko) | 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법 | |
KR20180086816A (ko) | 사전-검사된 에러율에 따른 적응형 에러정정을 수행하는 메모리장치 및 전자장치와, 메모리장치의 동작방법 | |
CN101615147A (zh) | 皮卫星基于fpga的存储模块的容错方法 | |
CN111192622B (zh) | 闪存控制器及其中的编码电路与解码电路 | |
KR20200071484A (ko) | 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 메모리 시스템 | |
US20220391282A1 (en) | Modified checksum using a poison data pattern | |
US8707133B2 (en) | Method and apparatus to reduce a quantity of error detection/correction bits in memory coupled to a data-protected processor port | |
US11775382B2 (en) | Modified parity data using a poison data unit | |
CN109426582B (zh) | 用于存储装置为错误处置进行数据处理的方法及控制器 | |
CN112599169B (zh) | 存储器的读操作控制方法及装置以及存储器控制器 | |
CN110309014A (zh) | 一种全行编解码sram编码器数据读写结构及数据读写方法 | |
US10984881B1 (en) | Memory sub-system self-testing operations | |
CN107291570B (zh) | 基于Zynq-7000的片上存储器抗单粒子翻转防护方法 | |
CN105023616A (zh) | 一种基于汉明码存取数据的方法及集成随机存取存储器 | |
US20230396269A1 (en) | Scaled bit flip thresholds across columns for irregular low density parity check decoding | |
CN113254252B (zh) | 一种具有bram的卫星载荷fpga及其使用方法 | |
CN115729746A (zh) | 一种基于crc和ecc存储数据保护方法 | |
CN111796774B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |