CN111338840B - 航天数据保护方法、存储介质、计算机程序、系统、终端 - Google Patents

航天数据保护方法、存储介质、计算机程序、系统、终端 Download PDF

Info

Publication number
CN111338840B
CN111338840B CN202010154382.9A CN202010154382A CN111338840B CN 111338840 B CN111338840 B CN 111338840B CN 202010154382 A CN202010154382 A CN 202010154382A CN 111338840 B CN111338840 B CN 111338840B
Authority
CN
China
Prior art keywords
matrix
data
columns
check
row
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
Application number
CN202010154382.9A
Other languages
English (en)
Other versions
CN111338840A (zh
Inventor
潘伟涛
董勐
邱智亮
邙嘉璐
殷建飞
黄进建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN202010154382.9A priority Critical patent/CN111338840B/zh
Publication of CN111338840A publication Critical patent/CN111338840A/zh
Application granted granted Critical
Publication of CN111338840B publication Critical patent/CN111338840B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明属于数据保护技术领域,公开了一种航天数据保护方法、存储介质、计算机程序、系统、终端,构建生成矩阵、校验矩阵;获取FPGA需要存储的中间变量或航天数据;构建原始数据矩阵,计算每行数据对应的原始校验数据;对原始矩阵所在列中的数据进行异或,计算每列数据对应的奇偶校验位;构建交织矩阵,将得到的原始校验数据及奇偶校验位进行交织;将得到交织矩阵按行进行拼接;将带有校验位的数据存入到相应位宽的寄存器或者存储空间中;构建解交织矩阵;构建最终校验矩阵;对每行数据分别计算校正子;将最终校验矩阵进行异或;截取矩阵,按顺序进行拼接;产生检错标志。本发明提高了校验码的纠检错能力和通用性。

Description

航天数据保护方法、存储介质、计算机程序、系统、终端
技术领域
本发明属于数据保护技术领域,尤其涉及一种航天数据保护方法、存储介质、计算机程序、系统、终端。
背景技术
目前,现场可编程逻辑门阵列(FPGA)是一种具有可编程能力的门阵列,在FPGA中部署的程序可以多次重复擦除与烧写,在航天系统中应用广泛。但是在航天环境中,存在多种辐射,且辐射的强度比地面环境大很多,这些辐射会造成FPGA内部的存储单元发生单粒子翻转SEU、多单元翻转MCU等现象,从而使FPGA中内部数据被破坏、程序逻辑状态发生异常变化等,进而影响功能。
为了解决SEU、MCU等问题,通常采用冗余备份的方式对关键数据进行保护,常见的有双模冗余DMR、三模冗余TMR,但是这种保护方式会造成程序的存储需要、电路布局布线难度、FPGA产品规模等成倍增加。航天环境中负责设备的体积、重量都有严格的限制,因此只通过冗余备份的方式解决粒子翻转带来的问题不切实际。
随着错误检测与纠正EDAC技术的不断发展,使用纠错码发现数据中因粒子翻转出现错误的比特位并进行纠正成为一种有效解决粒子翻转问题的方法。同时,随着当前器件的密度不断提高,传统的具有纠一检二能力的纠错码已经不能满足现有的需求。
西安电子科技大学邱智亮等人在其申请的专利文献“高可靠航天数据及中间变量的保护方法”中公开了一种航天数据及中间变量的保护方法,其采用(40,32)扩展汉明码对FPGA中32位SRAM存储器中的数据以及FPGA上程序运行过程中的中间变量进行保护,但是这种方式只能保护固定32位宽的数据,且其只能解决SEU问题。
哈尔滨工业大学肖立伊等人在其申请的专利文献“一种保护32位存储器数据的低冗余正交拉丁码扩展方法”中公开了一种保护32位存储器数据的正交拉丁码扩展方案,其通过在数据位为25位的原始正交拉丁码矩阵H的基础上任意添加7个列向量,从而扩展为数据位为32位码,但是这种方式只能适用于固定位宽的存储器,并不能很好的支持其他常用位宽的保护,同时其保护能力仅为双错误纠正DEC。
通过上述分析,现有技术存在的问题及缺陷为:现有航天数据保护方法当FPGA内部的存储单元发生多单元翻转MCU时,特别是三个相邻比特出错的情况下,无法正确纠正数据;现有的航天数据保护方法只能针对固定位宽的数据进行保护,如果要保护不同位宽的数据,需要引入多种保护方法,进而影响FPGA整体资源的消耗。
解决以上问题及缺陷的难度为:1.FPGA运行对时延的要求很高,因此在提高校验码纠错能力的同时,将校验码的时延降到最低,不影响FPGA的正常工作;2.FPGA中的资源比较紧缺,要以较少的资源实现一种通用的数据保护方法。
解决以上问题及缺陷的意义为:1、提高在FPGA上运行程序的可靠性,从而降低因宇宙辐射等带来的不必要的经济损失;2、提供一种通用的数据保护方案,在不同场景下无需引入不同的数据保护方法,从而缩短产品研发的时间。
发明内容
针对现有技术存在的问题,本发明提供了一种航天数据保护方法、存储介质、计算机程序、系统、终端。
本发明是这样实现的,一种航天数据保护方法,所述航天数据保护方法包括:
第一步,构建生成矩阵、校验矩阵;
第二步,获取FPGA需要存储的原始数据以及在FPGA上运行程序过程中需要存储的中间变量;
第三步,将原始数据进行分割,构建原始数据矩阵,生成矩阵,计算每行数据对应的原始校验数据;对所在列中的数据进行异或,计算每列数据对应的奇偶校验位;
第四步,将得到的原始校验数据及奇偶检验数据进行交织,得到交织矩阵;将交织矩阵按行进行拼接,得到需要存储的带有校验位的数据;将带有校验位的数据存入到相应位宽的寄存器或者存储器中;
第五步,从相应的寄存器或者存储空间中读出数据,构建解交织矩阵;根据解交织矩阵,构建最终校验矩阵;根据校验矩阵,对每行数据分别计算校正子;判断校正子的数值;
第六步,将最终校验矩阵进行异或,异或后的结果替换;截取矩阵,按顺序进行拼接;产生检错标志,表明当前数据或者中间变量发生不可纠正的多位错误。
进一步,所述第一步包括:
(1)构建生成矩阵G,规模为4×8,表达式G=[I4 BT],其中I4是4阶单位矩阵,表达式为:
Figure BDA0002403571120000031
B是一个4行4列的矩阵,其每一列中应该有奇数个1,每行中1的个数尽可能相等且最大相差为1,且没有完全相同的两列;
(2)构建规模为4×8的校验矩阵H=[B I4],其中I4是4阶单位矩阵。
进一步,所述第二步包括:获取到的原始数据D,原始数据是FPGA中需要存储的航天数据,或者FPGA上程序运行中,进行存储的中间变量。
进一步,所述第三步包括:
(1)获取的原始数据矩阵D'是将原始数据D按照每行4比特进行分割得到的,其规模为k*4;
(2)根据原始数据矩阵D'及生成矩阵G,得到原始校验矩阵C,矩阵中每行的计算方式为:Cm=Rm×G,(m=1,2,...,k);
(3)根据原始数据矩阵D',对D'中的每一列所有的数据进行异或,得到奇偶校验矩阵O。
进一步,所述第四步包括:
(1)获取交织矩阵I_C,根据原始校验矩阵C和奇偶校验矩阵O,进行交织得到交织矩阵I_C;
(2)获取带有校验位的数据D_C,将交织矩阵I_C中的每行进行拼接;
(3)将带有校验位的数据D_C存储到相应位宽的寄存器或者存储空间中;
从寄存器或者存储器中读出数据D_C'。
进一步,所述第五步包括:
(1)获取解交织矩阵I_C’,首先将数据D_C’按照4行进行分割,构建规模为(4,m)的解交织矩阵I_C’;
(2)获取最终校验矩阵C',根据解交织矩阵I_C’,对I_C’进行解交织,得到最终校验矩阵C’;
(3)获取校正子矩阵J,最终校验矩阵的前k行,根据校验矩阵H,计算每行数据分别计算校正子:Jm=C'm×HT,(m=1,2,3,...,k);
(4)根据示例矩阵B构建校验矩阵H;
(5)对最终校验数据C'进行纠错;
1)对校正子矩阵J的每行分别进行判断:如果Jm的数值为0,则表示该行最终校验数据正确,执行得到恢复数据;如果Jm的数值与校验矩阵H第i列数值相等,其中1≤i≤8,则说明该行最终校验数据中有1比特错误,执行步骤(b);如果Jm的数值与校验矩阵H中第i列和第j列异或后的数值相等,其中,1≤i≤8,1≤j≤8且i≠j,执行步骤(c),其他情况执行生检错标志,该标志指示当前数据已超出纠正范围,不可继续使用;
2)判断i的值是否小于5,若是,则将C'm的第i列的数值进行翻转以纠正错误,执行得到恢复数据;
3)将最终校验矩阵C'的第k+1的前4比特分别与C'm进行异或,异或后的结果替换现有的C'm,执行得到恢复数据。
所述第六步包括:得到恢复数据,首先截取更新后的最后校验矩阵C'前k行的第1至第4列,然后按顺序依次拼接,得到位宽为n比特,其中,n=4*k(k=2,3,4,...)的恢复数据,此时得到的恢复数据必然与原始数据相同,用于FPGA程序执行。
本发明的另一目的在于提供一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行权利要求任意一项所述包括下列步骤:
第一步,构建生成矩阵、校验矩阵;
第二步,获取FPGA需要存储的原始数据以及在FPGA上运行程序过程中需要存储的中间变量;
第三步,将原始数据按照每行4比特进行分割,构建原始数据矩阵,生成矩阵,计算每行数据对应的原始校验数据;对所在列中的数据进行异或,计算每列数据对应的奇偶校验位;
第四步,将得到的原始校验数据及奇偶检验数据进行交织,得到交织矩阵;将交织矩阵按行进行拼接,得到需要存储的带有校验位的数据;将带有校验位的数据存入到相应位宽的寄存器或者存储器中;
第五步,从相应的寄存器或者存储空间中读出数据,构建解交织矩阵;根据解交织矩阵,构建最终校验矩阵;根据校验矩阵,对每行数据分别计算校正子;判断校正子的数值;判断校正子的数值是否小于5;
第六步,将最终校验矩阵进行异或,异或后的结果替换;截取矩阵,按顺序进行拼接;产生检错标志,表明当前数据或者中间变量发生不可纠正的多位错误。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述的航天数据保护方法。
本发明的另一目的在于提供一种实施所述的航天数据保护方法的航天数据保护系统,所述航天数据保护系统包括:
矩阵生成模块,用于构建生成矩阵,校验矩阵
原始数据获取模块,用于获取FPGA需要存储的原始数据以及在FPGA上运行程序过程中需要存储的中间变量;
校验数据处理模块,用于将原始数据按照每行4比特进行分割,构建原始数据矩阵,生成矩阵,计算每行数据对应的原始校验数据;对所在列中的数据进行异或,计算每列数据对应的奇偶校验位;
数据交织模块,用于将得到的原始校验数据及奇偶校验位进行交织,得到交织矩阵;
数据拼接模块,用于将交织矩阵各行进行拼接,得到需要存储的带有校验位的数据;将带有校验位的数据存入到相应位宽的寄存器或者存储空间中;
数据解交织模块,用于从相应的寄存器或者存储空间中读出数据,构建最终校验矩阵;
校正子数值处理模块,根据校验矩阵,对每行数据分别计算校正子;判断校正子的数值;判断校正子的数值是否小于5;
检错标志产生模块,用于将最终校验矩阵进行异或,异或后的结果替换;截取矩阵,按顺序进行拼接;产生检错标志,表明当前数据或者中间变量发生不可纠正的多位错误。
本发明的另一目的在于提供一种终端,所述终端搭载所述的航天数据保护系统。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明支持双错误纠正的通用高可靠航天数据保护方法,可用于航天环境中FPGA片上寄存器、片上存储器及外接存储器。保证航天器通信系统稳定运行及通信网络中传输数据的正确性。
本发明提高了校验码的纠检错能力,当数据内发生1比特随机错误、2比特随机错误、2比特连续错误以及3比特连续时,可以进行纠错;提高了校验码的通用性,本发明提出的代码,可以支持数据位宽为nbit,其中n=4*k(k=2,3,4,…),可以对n比特的原始数据进行保护。
附图说明
图1是本发明实施例提供的航天数据保护方法流程图。
图2是本发明实施例提供的航天数据保护系统的结构示意图;
图中:1、矩阵生成模块;2、原始数据获取模块;3、校验数据处理模块;4、数据交织模块;5、数据拼接模块;6、数据解交织模块;7、校正子数值处理模块;7、纠错标志产生模块。
图3是本发明实施例提供的航天数据保护方法实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种航天数据保护方法、存储介质、计算机程序、系统、终端,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供的航天数据保护方法包括以下步骤:
S101:构建生成矩阵、校验矩阵;
S102:获取FPGA需要存储的原始数据以及在FPGA上运行程序过程中需要存储的中间变量;
S103:将原始数据按照每行4比特进行分割,构建原始数据矩阵,将原始矩阵每行分别与生成矩阵相乘,计算每行数据对应的原始校验数据;对原始数据矩阵每列数据分别进行异或,计算每列数据对应的奇偶校验位;
S104:将得到的原始校验数据及奇偶检验数据进行交织,得到交织矩阵;将交织矩阵按行进行拼接,得到需要存储的带有校验位的数据;将带有校验位的数据存入到相应位宽的寄存器或者存储器中;
S105:从相应的寄存器或者存储空间中读出数据,构建解交织矩阵;根据解交织矩阵,构建最终校验矩阵;根据校验矩阵,对每行数据分别计算校正子;判断校正子的数值;判断校正子的数值是否小于5;
S106:将最终校验矩阵进行异或,异或后的结果替换;截取矩阵,按顺序进行拼接;产生检错标志,表明当前数据或者中间变量发生不可纠正的多位错误。
本发明提供的航天数据保护方法九条包括以下步骤:
(1)构建规模为4×8的生成矩阵G=[I4 BT],其中I4是4阶单位矩阵,B是一个4行4列的矩阵,其构造规则包括规则1、规则2和规则3。
其中,规则1为生成矩阵中,每一列中应该有奇数个“1”;规则2为生成矩阵每行中“1”的个数尽可能相等且最大相差为1;规则3为生成矩阵中没有完全相同的两列。
(2)构建规模为4×8的校验矩阵H=[B I4]。
(3)获取FPGA需要存储的原始数据以及在FPGA上运行程序过程中需要存储的中间变量,作为原始数据D,其数据位宽为n比特,其中,n=4*k(k=2,3,4,...)。
(4)将原始数据D按照每行4比特进行分割,构建规模为k*4的原始数据矩阵D'。
(5)针对矩阵D'中的每一行Rm,(m=1,2,...,k),根据生成矩阵G,计算每行数据对应的原始校验数据:Cm=Rm×G。
(6)针对矩阵D'中的每一列,对所在列中的数据进行异或,计算每列数据对应的奇偶校验矩阵Oc,(c=1,2,3,4)。
(7)得到需要存储的校验位D_C。
(7a)构建交织矩阵I_C,得到原始校验矩阵C的行数k,首先构建规模为(4,m),m=2*k+1的交织矩阵I_C,矩阵I_C的初始值为全0;然后判断k的值,如果是偶数,则执行步骤(7b),如果是奇数,则执行步骤(7e);
(7b)将奇偶校验矩阵O依次写入交织矩阵I_C的第(m+1)/2列;
(7c)将原始校验矩阵C中的奇数行1~4列,按顺序依次写入交织矩阵I_C的1~(m+1)/2-1列中的奇数列;原始校验矩阵C中的偶数行1~4列,按顺序依次写入交织矩阵I_C的(m+1)/2+1~m列中的奇数列;
(7d)将原始校验矩阵C中的偶数行5~8列,按顺序依次写入交织矩阵I_C的1~(m+1)/2-1列中的偶数列;将原始校验矩阵C中的奇数行5~8列,按顺序依次写入交织矩阵I_C的(m+1)/2+1~m列中的偶数列,执行步骤(7j);
(7e)将原始校验矩阵C的前k-1行,复制到矩阵T中;
(7f)将奇偶校验矩阵O依次写入交织矩阵I_C的第(m+1)/2+1列
(7g)将矩阵T中的奇数行1~4列,按顺序依次写入交织矩阵I_C的2~(m+1)/2-1列中的奇数列;将矩阵T中的偶数行1~4列,按顺序依次写入交织矩阵I_C的(m+1)/2+2~m列中的奇数列;
(7h)将矩阵T中的偶数行5~8列,按顺序依次写入交织矩阵I_C的2~(m+1)/2-1列中的偶数列;将矩阵T中的奇数行5~8列,按顺序依次写入交织矩阵I_C的(m+1)/2+2~m列中的偶数列;
(7i)将原始校验矩阵C的第k行1~4列,按顺序依次写入交织矩阵I_C的第1列;将原始校验矩阵C的第k行5~8列,按顺序依次写入交织矩阵I_C的第(m+1)/2列,执行步骤(7j)。
(7j)将交织矩阵I_C的每行进行拼接,得到需要存储的校验位D_C。
(8)将带有校验位的数据D_C存入到相应位宽的寄存器或者存储空间中。
(9)从相应的寄存器或者存储空间中读出数据D_C'。
(10)得到最终校验矩阵C'。
(10a)首先按照4行对D_C’进行分割,获得D_C’的长度为p,构建规模为(4,m)(m=p/4)的解交织矩阵I_C’,其次,构建规模为(k+1,4)(k=(p-4)/8)的最终校验矩阵C’,然后判断(p-4)/8,如果其为偶数,执行步骤(10b),如果其为奇数,执行步骤(10e);
(10b)将解交织矩阵I_C’的1~(m+1)/2-1列中的奇数列,依次写入最终校验矩阵C’前k行中的奇数行的1~4列;将解交织矩阵I_C’的(m+1)/2+1~m列中的奇数列,依次写入最终校验矩阵C’前k行中的偶数行的1~4列;
(10c)将解交织矩阵I_C’的1~(m+1)/2-1列中的偶数列,依次写入最终校验矩阵C’前k行中的偶数行的5~8列;将解交织矩阵I_C’的(m+1)/2+1~m列中的偶数列,依次写入最终校验矩阵C’前k行中的奇数行的5~8列;
(10d)将解交织矩阵I_C’的第(m+1)/2列,依次写入到矩阵最终校验矩阵C’第k+1行的1~4列,并在第k+1行的5~8列填充0,然后执行步骤(10j);
(10e)将解交织矩阵I_C’的第1列,依次写入最终校验矩阵C’第k行的1~4列;将解交织矩阵I_C’的第(m+1)/2列,依次写入最终校验矩阵C’第k行中的5~8列;
(10f)将解交织矩阵I_C’的2~(m+1)/2-1列中的奇数列,依次写入最终校验矩阵C’前k-1行中的奇数行的1~4列;将解交织矩阵I_C’的(m+1)/2+2~m列中的奇数列,依次写入最终校验矩阵C’前k-1行中的偶数行的1~4列;
(10g)将解交织矩阵I_C’的2~(m+1)/2-1列中的偶数列,依次写入最终校验矩阵C’前k-1行中的偶数行的5~8列;将解交织矩阵I_C’的(m+1)/2+2~m列中的偶数列,依次写入最终校验矩阵C’前k-1行中的奇数行的5~8列;
(10i)将解交织矩阵I_C’的第(m+1)/2+1列,依次写入到矩阵最终校验矩阵C’第k+1行的1~4列,并在第k+1行的5~8列填充0,然后执行步骤(10j);
(10j)输出最终校验矩阵C’。
(11)针对最终校验矩阵C'的前k行,根据校验矩阵H,对每行数据分别计算校正子:Jm=C'm×HT,(m=1,2,3,...,k)。
(12)判断校正子Jm的数值,如果Jm的数值为0,则表示该行最终校验数据正确,执行(15),如果Jm的数值与校验矩阵H第i列数值相等,其中1≤i≤8,则说明该行最终校验数据中有1比特错误,执行步骤(13),如果Jm的数值与校验矩阵H中第i列和第j列异或后的数值相等,其中,1≤i≤8,1≤j≤8且i≠j,执行步骤(14),其他情况下,执行步骤(16)。
(13)判断i的值是否小于5,若是,则将C'm的第i列的数值进行翻转以纠正错误,并执行(15)。
(14)将最终校验矩阵C'的第k+1的前4比特分别与C'm进行异或,异或后的结果替换现有的C'm,然后执行(15)。
(15)首先截取矩阵C'前k行的第1至第4列,然后按顺序进行拼接,形成位宽为n比特,其中,n=4*k(k=2,3,4,...)的恢复数据,用于FPGA程序执行。
(16)产生检错标志,表明当前数据或者中间变量发生不可纠正的多位错误。
如图2所示,本发明提供的航天数据保护系统包括:
矩阵生成模块1,用于构建生成矩阵、校验矩阵;
原始数据获取模块2,用于获取FPGA需要存储的原始数据以及在FPGA上运行程序过程中需要存储的中间变量;
校验数据处理模块3,用于将原始数据按照每行4比特进行分割,构建原始数据矩阵,生成矩阵,计算每行数据对应的原始校验数据;对所在列中的数据进行异或,计算每列数据对应的奇偶校验位;
数据交织模块4,用于将得到的原始校验数据及奇偶校验位进行交织,得到交织矩阵;
数据拼接模块5,用于将交织矩阵各行进行拼接,得到需要存储的带有校验位的数据;将带有校验位的数据存入到相应位宽的寄存器或者存储空间中;
数据解交织模块6,用于从相应的寄存器或者存储空间中读出数据,构建最终校验矩阵;
校正子数值处理模块7,根据校验矩阵,对每行数据分别计算校正子;判断校正子的数值;判断校正子的数值是否小于5;
检错标志产生模块8,用于将最终校验矩阵进行异或,异或后的结果替换;截取矩阵,按顺序进行拼接;产生检错标志,表明当前数据或者中间变量发生不可纠正的多位错误。
下面结合附图对本发明的技术方案作进一步的描述。
如图3所示,本发明提供的航天数据保护方法包括以下步骤:
步骤一,构建生成矩阵G。
构建的生成矩阵G,其规模为4×8,表达式G=[I4 BT],其中I4是4阶单位矩阵,表达式为:
Figure BDA0002403571120000121
B是一个4行4列的矩阵,其每一列中应该有奇数个“1”,每行中“1”的个数尽可能相等且最大相差为1,且没有完全相同的两列。
符合上述规则的B有很多,其中一个表达式的举例如下:
Figure BDA0002403571120000122
步骤二,构建校验矩阵H。
构建规模为4×8的校验矩阵H=[B I4],其中I4是4阶单位矩阵。
步骤三,获取原始数据D。
获取到的原始数据D,这些原始数据是FPGA中需要存储的航天数据,或者FPGA上程序运行中,需要进行存储的中间变量。
以下给出一个算例对本步骤进一步说明:
假设某中间变量X需要进行存储,其位宽为16比特,则该变量的数值为原始数据D,具体为:1011001101010110。
步骤四,获取原始数据矩阵D'。
获取的原始数据矩阵D'是将原始数据D按照每行4比特进行分割得到的,其规模为k*4。
对于上述算例中X的原始数据D来说,其对应的原始数据矩阵D’规模为4*4,具体内容为:
Figure BDA0002403571120000131
步骤五,获取原始校验矩阵C。
根据原始数据矩阵D'及生成矩阵G,得到原始校验矩阵C,矩阵中每行的计算方式为:Cm=Rm×G,(m=1,2,...,k)。
对于上述算列中X的原始数据矩阵D'来说,其对应的原始校验矩阵C为:
Figure BDA0002403571120000132
步骤六,获取奇偶校验矩阵O。
根据原始数据矩阵D',对D'中的每一列所有的数据进行异或,得到奇偶校验矩阵O。
对于上述算列中X的原始数据矩阵D'来说,其对应的奇偶校验矩阵O为:
O=[1011]。
步骤七,获取带有校验位的数据D_C。
(7a)构建交织矩阵I_C,得到原始校验矩阵C的行数k,首先构建规模为(4,m),m=2*k+1的交织矩阵I_C,矩阵I_C的初始值为全0;然后判断k的值,如果是偶数,则执行步骤(7b),如果是奇数,则执行步骤(7e);
对于上述算列中X的原始校验矩阵C来说,构建的初始交织矩阵I_C为:
Figure BDA0002403571120000141
(7b)将奇偶校验矩阵O依次写入交织矩阵I_C的第(m+1)/2列;
(7c)将原始校验矩阵C中的奇数行1~4列,按顺序依次写入交织矩阵I_C的1~(m+1)/2-1列中的奇数列;原始校验矩阵C中的偶数行1~4列,按顺序依次写入交织矩阵I_C的(m+1)/2+1~m列中的奇数列;
(7d)将原始校验矩阵C中的偶数行5~8列,按顺序依次写入交织矩阵I_C的1~(m+1)/2-1列中的偶数列;将原始校验矩阵C中的奇数行5~8列,按顺序依次写入交织矩阵I_C的(m+1)/2+1~m列中的偶数列,执行步骤(7j);
(7e)将原始校验矩阵C的前k-1行,复制到矩阵T中;
(7f)将奇偶校验矩阵O依次写入交织矩阵I_C的第(m+1)/2+1列
(7g)将矩阵T中的奇数行1~4列,按顺序依次写入交织矩阵I_C的2~(m+1)/2-1列中的奇数列;将矩阵T中的偶数行1~4列,按顺序依次写入交织矩阵I_C的(m+1)/2+2~m列中的奇数列;
(7h)将矩阵T中的偶数行5~8列,按顺序依次写入交织矩阵I_C的2~(m+1)/2-1列中的偶数列;将矩阵T中的奇数行5~8列,按顺序依次写入交织矩阵I_C的(m+1)/2+2~m列中的偶数列;
(7i)将原始校验矩阵T的第k行1~4列,按顺序依次写入交织矩阵I_C的第1列;将原始校验矩阵T的第k行5~8列,按顺序依次写入交织矩阵I_C的第(m+1)/2列,执行步骤(7j)。
(7j)将交织矩阵I_C的每行进行拼接,得到需要存储的校验位D_C。
对于上述算例中X的原始校验矩阵C和奇偶校验矩阵O来说,其对应的交织矩阵I_C为:
Figure BDA0002403571120000151
带有校验位的数据D_C为:
110010010011100001100111111101010100。
步骤八,将带有校验位的数据D_C存储到相应位宽的寄存器或者存储空间中。
步骤九,从寄存器或者存储器中读出数据D_C'。
由于带有校验位的数据D_C在存储器或者寄存器中存储了一段时间,而这段时间有可能因为粒子辐射发生单粒子翻转SEU或者多单元翻转MCU,因此读取到的数据D_C'可能与原来存储的数据D_C不同。
上述算例中X对应的带有校验位的数据D_C在寄存器或者存储器中存储了一段时间后被读出,假设此时读出的数据D_C'为:
110010010011100101000111111101010100。
步骤十,获取最终校验矩阵C'。
(10a)首先按照4行对D_C’进行分割,获得D_C’的长度为p,构建规模为(4,m)(m=p/4)的解交织矩阵I_C’,其次,构建规模为(k+1,4)(k=(p-4)/8)的最终校验矩阵C’,然后判断(p-4)/8,如果其为偶数,执行步骤(10b),如果其为奇数,执行步骤(10e);
(10b)将解交织矩阵I_C’的1~(m+1)/2-1列中的奇数列,依次写入最终校验矩阵C’前k行中的奇数行的1~4列;将解交织矩阵I_C’的(m+1)/2+1~m列中的奇数列,依次写入最终校验矩阵C’前k行中的偶数行的1~4列;
(10c)将解交织矩阵I_C’的1~(m+1)/2-1列中的偶数列,依次写入最终校验矩阵C’前k行中的偶数行的5~8列;将解交织矩阵I_C’的(m+1)/2+1~m列中的偶数列,依次写入最终校验矩阵C’前k行中的奇数行的5~8列;
(10d)将解交织矩阵I_C’的第(m+1)/2列,依次写入到矩阵最终校验矩阵C’第k+1行的1~4列,并在第k+1行的5~8列填充0,然后执行步骤(10j);
(10e)将解交织矩阵I_C’的第1列,依次写入最终校验矩阵C’第k行的1~4列;将解交织矩阵I_C’的第(m+1)/2列,依次写入最终校验矩阵C’第k行中的5~8列;
(10f)将解交织矩阵I_C’的2~(m+1)/2-1列中的奇数列,依次写入最终校验矩阵C’前k-1行中的奇数行的1~4列;将解交织矩阵I_C’的(m+1)/2+2~m列中的奇数列,依次写入最终校验矩阵C’前k-1行中的偶数行的1~4列;
(10g)将解交织矩阵I_C’的2~(m+1)/2-1列中的偶数列,依次写入最终校验矩阵C’前k-1行中的偶数行的5~8列;将解交织矩阵I_C’的(m+1)/2+2~m列中的偶数列,依次写入最终校验矩阵C’前k-1行中的奇数行的5~8列;
(10i)将解交织矩阵I_C’的第(m+1)/2+1列,依次写入到矩阵最终校验矩阵C’第k+1行的1~4列,并在第k+1行的5~8列填充0,然后执行步骤(10j);
(10j)输出最终校验矩阵C’。
对于上述算例读取出的最终校验数据D_C'来说,其解交织矩阵I_C’为:
Figure BDA0002403571120000161
其最终校验矩阵C'为:
Figure BDA0002403571120000162
步骤十一,获取校正子矩阵J。
针对最终校验矩阵的前k行,根据校验矩阵H,计算每行数据分别计算校正子:Jm=C'm×HT,(m=1,2,3,...,k)。
上述算例中,最终校验数据为,根据步骤1中的示例矩阵B构建校验矩阵H,最终计算出的校正子矩阵J为:
Figure BDA0002403571120000171
步骤十二,对最终校验数据C'进行纠错。
(a)对校正子矩阵J的每行分别进行判断:如果Jm的数值为0,则表示该行最终校验数据正确,执行步骤十三;如果Jm的数值与校验矩阵H第i列数值相等,其中1≤i≤8,则说明该行最终校验数据中有1比特错误,执行步骤(b);如果Jm的数值与校验矩阵H中第i列和第j列异或后的数值相等,其中,1≤i≤8,1≤j≤8且i≠j,执行步骤(c),其他情况执行步骤十四。
(b)判断i的值是否小于5,若是,则将C'm的第i列的数值进行翻转以纠正错误,执行步骤十三。
(c)将最终校验矩阵C'的第k+1的前4比特分别与C'm进行异或,异或后的结果替换现有的C'm,然后执行步骤十三。
上述算例校正子矩阵J中,J1和J2分别与校验矩阵H中的第3列和第2列相同,说明最终校验矩阵C'中,C1对应的第3比特位出错,C2对应的第2比特位出错,因此需要对出错的两个比特位进行翻转,更新后的最终校验矩阵C'为:
Figure BDA0002403571120000172
步骤十三,得到恢复数据
首先截取更新后的最后校验矩阵C'前k行的第1至第4列,然后按顺序依次拼接,得到位宽为n比特,其中,n=4*k(k=2,3,4,...)的恢复数据,此时得到的恢复数据必然与原始数据相同,可用于FPGA程序执行。
根据上述算例中更新后的最后校验矩阵C',可得到恢复数据为:
1011001101010110。
将恢复出的数据和原始数据D进行对比可发现,两者完全相同,说明对数据的错误纠正成功。
步骤十四,产生检错标志,该标志指示当前数据已超出纠正范围,不可继续使用。
下面结合实验对本发明的技术效果作详细的描述。
本实验采用移位寄存器的方法,注入单比特翻转、双比特翻转、三比特翻转等错误,实验结果如表1所示。
表1实验结果
错误类型 正确解码次数 总注入错误次数 正确解码率
1bit随机错误 1000000 1000000 100%
2bit随机错误 1000000 1000000 100%
3bit相邻错误 1000000 1000000 100%
3bit随机错误 509316 1000000 50.93%
选取FPGA/ASIC中最常用的数据位宽8、12、16、20、32和64bit,并用SynopsysDesign Compiler将编码器和解码器分别映射到smic 180nm的器件库中,结果总结在表II中,其中,电路面积以μm2为单位,功率以μw为单位,延时以ns为单位。
表2结果总结
Figure BDA0002403571120000181
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种航天数据保护方法,其特征在于,所述航天数据保护方法包括:
第一步,构建生成矩阵、校验矩阵;
第二步,获取FPGA需要存储的数据或者在FPGA上运行程序过程中需要存储的中间变量,作为原始数据;
第三步,将原始数据进行分割,构建原始数据矩阵,对原始矩阵每行分别与生成矩阵相乘,计算每行数据对应的原始校验数据;对原始数据所在列中的数据进行异或,计算每列数据对应的奇偶校验位;具体包括:
(1)获取的原始数据矩阵D'是将原始数据D按照每行4比特进行分割得到的,其规模为k*4;
(2)根据原始数据矩阵D'及生成矩阵G,得到原始校验矩阵C,矩阵中每行的计算方式为:Cm=Rm×G,m=1,2,...,k;
(3)根据原始数据矩阵D',对D'中的每一列所有的数据进行异或,得到奇偶校验矩阵O;
第四步,将得到的原始校验数据及奇偶检验数据进行交织,得到交织矩阵;将交织矩阵按行进行拼接,得到需要存储的带有校验位的数据;将带有校验位的数据存入到相应位宽的寄存器或者存储器中;
第五步,从相应的寄存器或者存储空间中读出数据,构建解交织矩阵;根据解交织矩阵,构建最终校验矩阵;根据校验矩阵,对每行数据分别计算校正子;判断校正子的数值;具体包括:
(1)获取最终校验矩阵C’,获得从相应的寄存器或者存储空间中读出数据D_C’的长度为p,首先按照4行对D_C’进行分割,构建规模为(4,m)的解交织矩阵I_C’,m=p/4;其次,构建规模为(k+1,8)的最终校验矩阵C’,k=(p-4)/8;然后判断(p-4)/8,如果其为偶数,执行步骤(a),如果其为奇数,执行步骤(d):
(a)将解交织矩阵I_C’的1~(m+1)/2-1列中的奇数列,依次写入最终校验矩阵C’前k行中的奇数行的1~4列;将解交织矩阵I_C’的(m+1)/2+1~m列中的奇数列,依次写入最终校验矩阵C’前k行中的偶数行的1~4列;
(b)将解交织矩阵I_C’的1~(m+1)/2-1列中的偶数列,依次写入最终校验矩阵C’前k行中的偶数行的5~8列;将解交织矩阵I_C’的(m+1)/2+1~m列中的偶数列,依次写入最终校验矩阵C’前k行中的奇数行的5~8列;
(c)将解交织矩阵I_C’的第(m+1)/2列,依次写入到矩阵最终校验矩阵C’第k+1行的1~4列,并在第k+1行的5~8列填充0,然后执行步骤(2);
(d)将解交织矩阵I_C’的第1列,依次写入最终校验矩阵C’第k行的1~4列;将解交织矩阵I_C’的第(m+1)/2列,依次写入最终校验矩阵C’第k行中的5~8列;
(e)将解交织矩阵I_C’的2~(m+1)/2-1列中的奇数列,依次写入最终校验矩阵C’前k-1行中的奇数行的1~4列;将解交织矩阵I_C’的(m+1)/2+2~m列中的奇数列,依次写入最终校验矩阵C’前k-1行中的偶数行的1~4列;
(f)将解交织矩阵I_C’的2~(m+1)/2-1列中的偶数列,依次写入最终校验矩阵C’前k-1行中的偶数行的5~8列;将解交织矩阵I_C’的(m+1)/2+2~m列中的偶数列,依次写入最终校验矩阵C’前k-1行中的奇数行的5~8列;
(g)将解交织矩阵I_C’的第(m+1)/2+1列,依次写入到矩阵最终校验矩阵C’第k+1行的1~4列,并在第k+1行的5~8列填充0,然后执行步骤(2);
(2)获取校正子矩阵J,最终校验矩阵的前k行,根据校验矩阵H,计算每行数据分别计算校正子:Jm=C'm×HT,m=1,2,3,...,k;C'm表示校验矩阵C'前k行的列;H表示校验矩阵;
(3)根据示例矩阵B构建校验矩阵H;B是一个4行4列的矩阵,其每一列中有奇数个1,每行中1的个数相等且最大相差为1,且没有完全相同的两列;
(4)对最终校验矩阵C'进行纠错;
1)对校正子矩阵J的每行分别进行判断:如果Jm的数值为0,则表示该行最终校验矩阵正确,执行得到恢复数据;如果Jm的数值与校验矩阵H第i列数值相等,其中1≤i≤8,则说明该行最终校验矩阵中有1比特错误,执行步骤2);如果Jm的数值与校验矩阵H中第i列和第j列异或后的数值相等,其中,1≤i≤8,1≤j≤8且i≠j,执行步骤3),其他情况执行生检错标志,该标志指示当前数据已超出纠正范围,不可继续使用;
2)判断i的值是否小于5,若是,则将C'm的第i列的数值进行翻转以纠正错误,执行得到恢复数据;
3)将最终校验矩阵C'的第k+1的前4比特分别与C'm进行异或,异或后的结果替换现有的C'm,执行得到恢复数据;
第六步,将最终校验矩阵进行异或,异或后的结果替换;截取矩阵,按顺序进行拼接;产生检错标志,表明当前数据或者中间变量发生不可纠正的多位错误。
2.如权利要求1所述的航天数据保护方法,其特征在于,所述第一步包括:
(1)构建生成矩阵G,规模为4×8,表达式G=[I4 BT],其中I4是4阶单位矩阵,表达式为:
Figure FDA0003178453460000031
B是一个4行4列的矩阵,其每一列中有奇数个1,每行中1的个数相等且最大相差为1,且没有完全相同的两列;
(2)构建规模为4×8的校验矩阵H=[B I4],其中I4是4阶单位矩阵。
3.如权利要求1所述的航天数据保护方法,其特征在于,所述第二步包括:获取到的原始数据D,原始数据是FPGA中需要存储的航天数据,或者FPGA上程序运行中,进行存储的中间变量。
4.如权利要求1所述的航天数据保护方法,其特征在于,所述第四步包括:
(4-1)构建交织矩阵I_C,得到原始校验矩阵C的行数k,首先构建规模为(4,m),m=2*k+1的交织矩阵I_C,矩阵I_C的初始值为全0;然后判断k的值,如果是偶数,则执行步骤(a),如果是奇数,则执行步骤(d);
(a)将奇偶校验矩阵O依次写入交织矩阵I_C的第(m+1)/2列;
(b)将原始校验矩阵C中的奇数行1~4列,按顺序依次写入交织矩阵I_C的1~(m+1)/2-1列中的奇数列;原始校验矩阵C中的偶数行1~4列,按顺序依次写入交织矩阵I_C的(m+1)/2+1~m列中的奇数列;
(c)将原始校验矩阵C中的偶数行5~8列,按顺序依次写入交织矩阵I_C的1~(m+1)/2-1列中的偶数列;将原始校验矩阵C中的奇数行5~8列,按顺序依次写入交织矩阵I_C的(m+1)/2+1~m列中的偶数列,执行步骤(4-2);
(d)将原始校验矩阵C的前k-1行,复制到矩阵T中;
(f)将奇偶校验矩阵O依次写入交织矩阵I_C的第(m+1)/2+1列
(g)将矩阵T中的奇数行1~4列,按顺序依次写入交织矩阵I_C的2~(m+1)/2-1列中的奇数列;将矩阵T中的偶数行1~4列,按顺序依次写入交织矩阵I_C的(m+1)/2+2~m列中的奇数列;
(h)将矩阵T中的偶数行5~8列,按顺序依次写入交织矩阵I_C的2~(m+1)/2-1列中的偶数列;将矩阵T中的奇数行5~8列,按顺序依次写入交织矩阵I_C的(m+1)/2+2~m列中的偶数列;
(i)将原始校验矩阵C的第k行1~4列,按顺序依次写入交织矩阵I_C的第1列;将原始校验矩阵C的第k行5~8列,按顺序依次写入交织矩阵I_C的第(m+1)/2列,执行步骤(4-2);
(4-2)获取带有校验位的数据D_C,将交织矩阵I_C的每行进行拼接;
(4-3)将带有校验位的数据D_C存储到相应位宽的寄存器或者存储空间中;
(4-4)从寄存器或者存储器中读出数据D_C'。
5.如权利要求1所述的航天数据保护方法,其特征在于,所述第六步包括:得到恢复数据,首先截取更新后的最后校验矩阵C'前k行的第1至第4列,然后按顺序依次拼接,得到位宽为n比特,其中,n=4*k,k=2,3,4,...的恢复数据,此时得到的恢复数据必然与原始数据相同,用于FPGA程序执行。
6.一种接收用户输入程序存储介质的电子设备,电子设备执行权利要求1~5任意一项所述包括下列步骤:
第一步,构建生成矩阵、校验矩阵;
第二步,获取FPGA需要存储的原始数据或者在FPGA上运行程序过程中需要存储的中间变量;
第三步,将原始数据按照每行4比特进行分割,构建原始数据矩阵,根据生成矩阵计算每行数据对应的原始校验数据;对所在列中的数据进行异或,计算每列数据对应的奇偶校验位;
第四步,将得到的原始校验数据及奇偶检验数据进行交织,得到交织矩阵;将交织矩阵按行进行拼接,得到需要存储的带有校验位的数据;将带有校验位的数据存入到相应位宽的寄存器或者存储器中;
第五步,从相应的寄存器或者存储空间中读出数据,构建解交织矩阵;根据解交织矩阵,构建最终校验矩阵;根据校验矩阵,对每行数据分别计算校正子;判断校正子的数值;判断校正子的数值是否小于5,若是,则将C'm的第i列的数值进行翻转以纠正错误,执行得到恢复数据;
第六步,将最终校验矩阵进行异或,异或后的结果替换;截取矩阵,按顺序进行拼接;产生检错标志,表明当前数据或者中间变量发生不可纠正的多位错误。
7.一种实施权利要求1~5任意一项所述的航天数据保护方法的航天数据保护系统,其特征在于,所述航天数据保护系统包括:
矩阵生成模块,用于构建生成矩阵、校验矩阵;
原始数据获取模块,用于获取FPGA需要存储的原始数据以及在FPGA上运行程序过程中需要存储的中间变量;
校验数据处理模块,用于将原始数据按照每行4比特进行分割,构建原始数据矩阵,生成矩阵,计算每行数据对应的原始校验数据;对所在列中的数据进行异或,计算每列数据对应的奇偶校验位;
数据交织模块,用于将得到的原始校验数据及奇偶校验位进行交织,得到交织矩阵;
数据拼接模块,用于将交织矩阵各行进行拼接,得到需要存储的带有校验位的数据;将带有校验位的数据存入到相应位宽的寄存器或者存储空间中;
数据解交织模块,用于从相应的寄存器或者存储空间中读出数据,构建最终校验矩阵;
校正子数值处理模块,根据校验矩阵,对每行数据分别计算校正子;判断校正子的数值;判断校正子的数值是否小于5,若是,则将C'm的第i列的数值进行翻转以纠正错误,执行得到恢复数据;
检错标志产生模块,用于将最终校验矩阵进行异或,异或后的结果替换;截取矩阵,按顺序进行拼接;产生检错标志,表明当前数据或者中间变量发生不可纠正的多位错误。
8.一种终端,其特征在于,所述终端搭载权利要求7所述的航天数据保护系统。
CN202010154382.9A 2020-03-07 2020-03-07 航天数据保护方法、存储介质、计算机程序、系统、终端 Active CN111338840B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010154382.9A CN111338840B (zh) 2020-03-07 2020-03-07 航天数据保护方法、存储介质、计算机程序、系统、终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010154382.9A CN111338840B (zh) 2020-03-07 2020-03-07 航天数据保护方法、存储介质、计算机程序、系统、终端

Publications (2)

Publication Number Publication Date
CN111338840A CN111338840A (zh) 2020-06-26
CN111338840B true CN111338840B (zh) 2021-09-28

Family

ID=71184286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010154382.9A Active CN111338840B (zh) 2020-03-07 2020-03-07 航天数据保护方法、存储介质、计算机程序、系统、终端

Country Status (1)

Country Link
CN (1) CN111338840B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913469B (zh) * 2020-07-20 2021-07-13 北京控制工程研究所 一种航天器控制系统在轨稳定运行能力构建方法
CN112798943B (zh) * 2021-01-16 2022-03-08 西安电子科技大学 一种基于标准输入输出验证的实时fpga错误检测方法
CN112925678B (zh) * 2021-03-11 2022-12-06 中海艾普油气测试(天津)有限公司 一种测试用分布式井下数据安全存储方法
CN113377858A (zh) * 2021-04-13 2021-09-10 北京思特奇信息技术股份有限公司 一种基于uc矩阵的过程数据分析方法、系统和存储介质
CN113657062B (zh) * 2021-08-19 2023-09-05 无锡中微亿芯有限公司 基于奇偶校验提高fpga运行可靠性的方法
CN115426028B (zh) * 2022-08-29 2023-10-20 鹏城实验室 一种数据编译码的故障容错方法、系统及高速通信系统
CN117234792B (zh) * 2023-11-09 2024-02-09 北京火山引擎科技有限公司 一种用于dpu的数据校验方法、装置、设备及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9661376B2 (en) * 2005-07-13 2017-05-23 Polycom, Inc. Video error concealment method
CN107370489B (zh) * 2016-05-13 2020-07-28 中兴通讯股份有限公司 结构化ldpc码的数据处理方法及装置
CN106328195B (zh) * 2016-08-19 2019-01-25 西安空间无线电技术研究所 一种抗单粒子翻转的sram
CN115065368A (zh) * 2017-03-24 2022-09-16 中兴通讯股份有限公司 一种准循环低密度奇偶校验编码处理方法及装置

Also Published As

Publication number Publication date
CN111338840A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
CN111338840B (zh) 航天数据保护方法、存储介质、计算机程序、系统、终端
US6604222B1 (en) Block code to efficiently correct adjacent data and/or check bit errors
US7328377B1 (en) Error correction for programmable logic integrated circuits
JPS5960654A (ja) エラ−訂正システム
US11438015B2 (en) Two-level error correcting code with sharing of check-bits
CN110970081A (zh) 存储器器件、错误校正码系统和校正错误的方法
KR100609343B1 (ko) 컴퓨터 메모리 시스템에서의 멀티-비트 에러 보호를 위한시스템 및 방법
Sharma et al. An HVD based error detection and correction of soft errors in semiconductor memories used for space applications
Kajmakovic et al. Flexible soft error mitigation strategy for memories in mixed-critical systems
Reviriego et al. Implementing triple adjacent error correction in double error correction orthogonal Latin squares codes
US11126500B2 (en) Error detection and correction with integrity checking
Venkataraman et al. Multi-directional error correction schemes for SRAM-based FPGAs
Dong et al. A universal, low-delay, SEC-DEC-TAEC code for state register protection
Garcia-Herrero et al. Combined symbol error correction and spare through-silicon vias for 3D memories
Bentoutou A real time low complexity codec for use in low Earth orbit small satellite missions
Singh et al. Single event upset detection and correction
Kustov et al. Efficiency Estimation of Single Error Correction, Double Error Detection and Double-Adjacent-Error Correction Codes
Singh et al. Ram error detection and correction using HVD implementation
Mandal et al. Clustered error resilient SRAM-based reconfigurable computing platform
US12126358B2 (en) Two-level error correcting code with sharing of check-bits
CN110096384B (zh) 高可靠航天数据及中间变量的保护方法
Bodnar et al. A single error correction double burst error detection code
Fichna et al. Fault-tolerance of spaceborne semiconductor mass memories
Erozan et al. An EG-LDPC based 2-dimensional error correcting code for mitigating MBUs of SRAM memories
Wei Design of External Memory Error Detection and Correction and Automatic Write-back

Legal Events

Date Code Title Description
PB01 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