一种基于关键变量的冗余纠错码防护方法

文档序号:9648850阅读:452来源:国知局
一种基于关键变量的冗余纠错码防护方法
【技术领域】
[0001] 本发明属于通信编码技术领域,具体设及一种基于关键变量的冗余纠错码防护方 法,用于在程序中对关键变量进行检错和纠错,保证传输变量的正确性。
【背景技术】
[0002]DSP系统在太空运行的过程中,易发生单粒子效应,在DSP工程代码中,有些代码 模块执行频率低,发生单粒子效应的概率相对较小,我们将运些模块称为非敏感区域;有些 代码模块执行频率高,发生单粒子效应的概率相对较大,我们称运些模块为敏感区域。容 易理解,执行频率越高,意味着数据读写次数较多,对程序执行过程影响较大,所W在对DSP 系统进行软防护的过程中,敏感区域的防护至关重要。
[0003] 关键变量主要是指程序的大循环控制变量、有限状态机控制变量、重要的全局指 针、重要的全局标志等。
[0004] 关键变量对信号处理流程起至关重要的控制作用,其正确性关系到DSP程序运行 的总体进程,可能导致信号处理结果的大范围错误。运些关键变量,诸如循环变量、全局标 志等,生存周期一般较长,而且读写的频率也比较高,其发生单粒子效应的概率相对较大。

【发明内容】

[0005] 本发明针对DSP工程代码中的关键变量进行冗余纠错码防护,其主要目的是保证 关键变量在生存周期内的正确性,提高系统的可靠性。
[0006] 为达上述目的,本发明提供了一种基于关键变量的冗余纠错码防护方法,其执行 主要包括奇偶校验+反向码的编码、奇偶校验+反向码的解码和奇偶校验+反向码的解码 的码字刷新=个步骤:
[0007] (1)所述的奇偶校验+反向码的编码,其操作方法是,
[000引对于关键变量I,如果关键变量I的数据长度为二进制的m位,将其记为(amSmiL曰1),对变量I进行奇偶校验,运里可W采用奇校验或者偶校验方式,在进行后续的校验中, 保持一致即可满足,得到校验后的变量(amSm山aA),其中Cl为校验位;
[0009]对关键变量I按位取反,得到变量/,将其记为化mbm山bi),对变量j进行奇偶校 验,运里可W采用奇校验或者偶校验方式,在进行后续的校验中,保持一致即可满足,得到 奇偶校验后的变量化mbm山biCz),其中Cz为校验位;
[0010] 将添加奇偶校验后的变量7插入到添加奇校验后的变量I之后,构成传输变量,记 作(?? 山曰lCibmbmiLbiCz);
[0011] (2)所述的奇偶校验+反向码的解码,主要包含W下几个步骤:
[001引步骤1,检错,对于长度为L的传输变量,将其高L/2位和低L/2位分别取出;将高L/2位和低L/2位按位作同或运算,得到检错参量S,若检错参量S等于0或者1,则表明传 输变量没有出现错误,通过编码取出变量;如果检错参量S不等于0且不等于1,则表明传 输结果出错,执行步骤2;
[0013] 步骤2,纠错,逐位检测S,S中除最末位外不为0的位则对应为出错的位;
[0014] 步骤3,对高L/2位进行奇偶校验,如果校验出错,则说明高L/2位出错,通过步骤 2中确定的出错位数纠正该位的错误,获取关键变量;如果高L/2位校验结果正确,则校验 低L/2位,纠正错误位,获取关键变量;
[0015](3)所述的奇偶校验+反向码的解码的码字刷新,定时执行上述(1) (2),直至变量 不再有效。
[0016] 上述一种基于关键变量的冗余纠错码防护方法,所述的步骤(1)奇偶校验+反向 码的编码中,对关键变量I的奇偶校验可W是奇校验,也可W是偶校验。
[0017] 上述一种基于关键变量的冗余纠错码防护方法,所述的步骤(1)奇偶校验+反向 码的编码中,对变量I的奇偶校验可W是奇校验,也可W是偶校验。
[0018] 上述一种基于关键变量的冗余纠错码防护方法,所述的步骤(1)奇偶校验+反向 码的编码中,也可W将进行奇偶校验之后的变量I插入到变量7之后,构成传输变量。
[0019] 本发明的优点是:通过冗余编码,可W纠正变量在生存周期内因为单粒子效应而 产生的错误,保证了变量的可靠性。编码是基于重复码和奇偶校验码,编码及解码过程简 单,运算量小,不会占用系统过多的资源;在变量生存周期内,对传输变量进行刷新,缩短变 量的生存周期,对生存周期较长、粒子福射严重的环境下,可W很好的保证关键变量的可靠 性。
[0020] 下面结合附图和实施例对本发明做详细说明。
【附图说明】
[0021] 图1是编码函数伪代码设计示意图。
[0022] 图2是解码函数伪代码设计示意图。
[0023] 图3是码字刷新函数伪代码设计示意图。
[0024] 图4a是不插入任何防护的循环流程图。
[0025] 图4b是插入了冗余纠错码及码字刷新的循环流程图。
【具体实施方式】
[0026] 本实施例针对DSP工程代码中关键变量进行冗余纠错码设计,即对关键变量进行 编码,在关键变量的整个生存周期内,如果有数据位出现错误,可W对其进行纠正,保证了 关键变量的正确性。
[0027] 关键变量主要是指程序的大循环控制变量、有限状态机控制变量、重要的全局指 针、重要的全局标志等,它的生存周期一般都比较长,操作也比较频繁,对运些变量进行编 码解码的要求就相对较高。主要有W下几点:
[0028](1)编解码尽可能简单;由于关键变量操作频率高,如果编解码过程过于复杂,系 统需要耗费太多的资源进行编解码的额外计算,将严重干扰程序的执行流程;
[0029] (2)插入次数尽可能少;DSPW其流水线操作实现程序的并行,好的编程结构有利 于DSP的流水线操作,如果在程序中过多插入其他代码,将可能破坏流水线操作,系统性能 降低;
[0030] 重复码是一种简单的信道编码方法,其实质是将每个要发送的字符重复发送。
[0031] 我们知道,两次重复码具有检错功能,可W检测到哪一位出现错误,但是不具备纠 错功能,其主要原因在于两次重复码间的编码距离为0,在码字出现错误时,不能区分是哪 一次码字出错,从而无法纠错。
[0032] =次W上的重复码具有检错纠错能力,其实际是一种多模冗余的编码机制。
[0033] 奇偶校验码是一种检错码,分为奇校验和偶检验,它是一种检错码,不具备纠错能 力。
[0034] 虽然重复码和奇偶校验码都不具备纠错能力,但是它们突出的优点就是编解码过 程都非常简单,易于操作。
[0035] 最常用的纠错码是汉明码,其相关的技术研究已经很成熟,它具有检错纠错能力, 但是其主要的问题就是编解码过程较为复杂,设及矩阵的相关运算,对于处理器而言,资源 开销比较大。
[0036] 针对运种情况,本发明提出了一种奇偶校验+反向码的编码方式(一种基于关键 变量的冗余纠错码防护方法),其实质是奇偶校验码与重复码的组合。
[0037] 奇偶校验+反向码的编码是一种简单、快速的编码方式,可根据变量的类型及纠 正错误位数,确定冗余编码位的长度;纠正位数越高,编码冗余越长,编码效率越低。
[0038] 奇偶校验+反向码的防护应用主要包括奇偶校验+反向码的编码、奇偶校验+反 向码的解码和奇偶校验+反向码的码字刷新=个过程:
[0039] (1)奇偶校验+反向码的编码
[0040] 对于关键变量I,如果关键变量I的数据长度为m位(二进制),我们将其记为 如曰。iL曰1),对变量I进行奇校验(或者偶检验),得到奇校验后(或者偶检验)变量(曰。曰。山 aA),其中Cl为校验位。对变量m取反,得到变量j,我们将其记为化A山bi),对变量万进 行奇校验(或者偶检验),得到奇校验(或者偶检验)后变量化A山biCz),其中Cz为校验 位。将奇校验(或者偶检验)后的变量I插入到奇校验(或者偶检验)后的变量I之后, 或者将奇校验(或者偶检验)后的变量I插入到奇校验(或者偶检验)后的变量I之后,构 成传输变量,记作(SmSmlLBiCibmbmiL6侣)。运样,传输变量实际是由原变量的奇校验(或 者偶检验)和原变量的反码的奇校验(或者偶检验)构成。其执行主要包括=部分:
[0041] <1〉对关键变量进行取按位反运算,得到反码;
[0042] <2〉对关键变量及其反码进行奇校验(或者偶校验);
[0043] <3〉合并得到传输变量;
[0044] 反码计算及奇校验(或者偶校验)对于处理器而言,都是非常容易实现的,所W对 于奇偶校验+反向码,其编码非常简单。
[0045] 似奇偶校验+反向码的解码
[0046] 由于传输变量是对关键变量进行了编码,其值已经不同于原变量,所W在每次使 用之前,需要对传输变量进行解码,还原出关键变量。还原关键变量主要包含W下几步:
[0047] <1〉检错
[0048] 对于长度为L的传输变量,将其高L/2位和低L/2位分别取出;将高L/2位和低 L/2位按位作同或运算,得到检错参量S。如果检错参量S等于O或者1,S等于O即高L/2 位和低L/2数据位和校验位全部相反,此时则表明传输变量没有出现错误,而校验位有可 能出错,但此时并不影响数据;如果S等于1即高L/2位和低L/2数据位相反,而校验位相 同,此时则表明传输
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1