一种基于输入和输出数据操作的FIR滤波器故障注入方法与流程

文档序号:11286759阅读:251来源:国知局
一种基于输入和输出数据操作的FIR滤波器故障注入方法与流程

本发明属于信号处理领域,涉及信号处理的容错设计,尤其是涉及针对fir滤波器的故障注入和容错设计的应用。



背景技术:

嵌入式系统(包括数字信号处理器dsps、可编程逻辑fpgas等)凭借其强大的计算能力和可重复编程功能,已经越来越多地被考虑用于一些高可靠性的环境中,其中星载数字信号处理平台是很重要的一个应用场景[1]。但是正是其可配置、可编程的特性,使这类期间对于空间粒子辐照效应比较敏感,而这其中最重要的效应就是单粒子翻转(seu),它是造成dsp和fpga故障的主要原因[1]。因此,设计高可靠性seu容错方法是将dsp和fpga成功应用于星上有效载荷的关键。由于数学模型不能完全描述系统故障行为[2],为了严格评价容错方法有效性,需要使用地面辐照或故障注入实验等手段来模拟故障造成的影响。由于地面辐照实验成本较高,且容易造成对器件、平台的不可逆的损坏,所以一般只在系统开发的最后阶段使用。相对而言,故障注入方法成本较低,且操作灵活,非常适合系统开发初期针对关键模块的容错性能验证。

对于一般嵌入式系统,故障注入可分为硬件故障注入、软件故障注入和模拟故障注入三类[2][5][9]

(1)“硬件故障注入”:通过物理手段直接将故障注入到目标系统的硬件中。具体来说,需要将探针连接到系统的某些管脚,以强制将系统内的某些逻辑为或者存储单元置成指定的值。由于并不是所有的seu敏感节点都可以用探针直接或间接地连接到,这种方法的使用范围很有限[9]。尤其是对基于sram的fpga(sram-fpga)来说,大部分seu敏感节点都使sram单元,无法通过探针进行连接,所以硬件故障注入方法不适于针对sram-fpga的故障注入。

(2)“软件故障注入”:通过调用系统的指令集来实现对存储器或寄存器内容的修改,以及逻辑功能的改变,从而模拟seu效果。这个修改过程需要使用系统的指令集,因此称其为软件方法。该方法的优点是开发过程相对简单,无需复杂装置,缺点是只能修改指令集操作范围内的部分。文献[10]提出的ferrari系统就属于这类。对sram-fpga系统来说,就是在原有vhdl设计当中插入修改存储器或寄存器内容的语句,以达到模拟seu的目的。对于dsp系统来说,就是在原有c代码或者汇编代码设计中插入修改存储器或寄存器内容的语句,以达到模拟seu的目的。这种方法虽然简单,但每次都要重新进行编译和综合,比较耗时。

(3)“仿真故障注入”:利用硬件描述语言为测试系统建立硬件仿真模型,然后在模型内部插入故障注入单元来实现故障的注入。这种方法的优点是可控性好,缺点是建立仿真模型比较困难。文献[11]和[12]都是这类方法的实例。对于基于fpga的系统来说,所有功能原本就是用硬件描述语言建立的,因此在fpga开发各个阶段注入故障的方法都可以归为仿真故障注入方法。而上面提到的“软件故障注入”方法只是在vhdl模型设计阶段进行故障注入,因此也可视为仿真故障注入的一种方式。

综上可知,硬件故障注入方式最为直接,但是成本和复杂度最高,且可注入故障的区域有限;软件和仿真故障注入方式的复杂度相对降低,也比较灵活,但是由于故障注入逻辑需嵌入到原有逻辑之中,因此都需要对原有信号处理逻辑进行重新设计,这对于一些复杂的处理逻辑来说实施难度较大。

fir滤波器是一种典型的卷积结构,大量应用在各类信号处理和通信系统中,包括星载平台上,因此成为容错信号处理的重要对象[13][14][15][16][17]。fir滤波处理是典型的乘加逻辑,其中对于空间辐射最敏感的区域便是移位寄存器[18],因此是进行故障注入的主要目标。故障类型主要考虑软错误,即寄存器物理器件并没有损坏,只是其中存储的数据由于seu发生了改变,这个错误的数据将随着滤波处理移位到下一个寄存器中,而星移入的数据依然是正确的。另外,考虑到空间辐射的稀疏性,一般不会有两个寄存器同时发生故障。

针对fir滤波器研究高效的故障注入方法,将有效加快针对fir滤波器的容错设计工作,推动相关方向的创新。

参考文献

[1]kastensmidtfl,carrol,reisr.fault-tolerancetechniquesforsram-basedfpgas[m].newhaven:springer2006.

[2]bensoa,prinettop.faultinjectiontechniquesandtoolsforembeddedsystemreliabilityevaluation[m],kluweracademicpublishers,2003.

[3]孙峻朝,王建莹,杨孝宗等.故障注入方法与工具的研究现状[j].宇航学报,2001,22(1):99~103.

[4]李华旺,刘海涛,杨根庆.航天单粒子事件故障注入系统研究[j].量子电子学报,2002,19(1):57~60.

[5]吴圣陶.sram型fpga单粒子反转效应的故障注入系统研究[d].西安:西安电子科技大学,2011.

[6]孙鹏.抗单粒子翻转sram-basedfpga测试系统研究与设计[d].上海:复旦大学,2010.

[7]邢克飞.星载信号处理平台单粒子效应检测与加固技术研究[d].长沙:国防科技大学,2007.

[8]李华旺.航天嵌入式现代小卫星软件容错设计及测试系统研究[d].上海:中国科学院上海冶金研究所,2001.

[9]limaf,rezguis,carrol,etal.ontheuseofvhdlsimulationandemulationtoderiveerrorrates[c].proc.ofradecs2001.

[10]kanawatiga,kanawatina,abrahamja.ferrari:aflexiblesoftware-basedfaultanderrorinjectionsystem[j].ieeetrans.oncomputers,1995,44(2):248-260.

[11]jenne,arlatj,rimenm,etal.faultinjectionintovhdlmodels:themefistotool[c],proc.24thftcs,1994,pp.66-75.

[12]delongta,johnsonbw,profetaja.afaultinjectiontechniqueforvhdlbehavioral-levelmodels[c].ieeedesign&testofcomputers,newyork,1996.

[13]p.reviriego,c.j.bleakley,andj.a.maestro,“structuraldmr:atechniqueforimplementationofsoft-error-tolerantfirfilters,”ieeetrans.circuitssyst.ii,exp.briefs,vol.58,no.8,pp.512–516,aug.2011.

[14]t.hitanaanda.k.deb,“bridgingconcurrentandnon-concurrenterrordetectioninfirfilters,”inproc.norchipconf.,2004,pp.75–78.

[15]s.pontarelli,g.c.cardarilli,m.re,anda.salsano,“totallyfaulttolerantrnsbasedfirfilters,”inproc.ieeeiolts,2008,pp.192–194.

[16]z.gao,p.reviriego,w.pan,z.xu,m.zhao,j.wang.efficientarithmeticresiduebasedseu-tolerantfirfilterdesign,ieeetransactiononcircuitandsystemii,vol.60,no.8,aug.2013.

[17]z.gao,p.reviriego,z.xu,x.su,j.wang,andj.a.maestro.efficientcodingschemesforfault-tolerantparallelfilters,ieeetransactiononcircuitandsystemii,vol.62,no.7,feb.2015.

[18]z.gao,w.yang,x.chen,m.zhao,andj.wang,“faultmissingrateanalysisofthearithmeticresiduecodesbasedfault-tolerantfirfilterdesign,”inproc.ieeeiolts,2012,pp.130–133.



技术实现要素:

本发明旨在针对fir滤波器提出一种基于输入数据和输出数据操作的故障注入方法,在不对原有处理逻辑进行重新设计的情况下,完成对fir滤波操作的故障注入。由于所设计的方法仅与fir滤波器的长度有关,而与具体的滤波系数无关,因此相对于原有逻辑相对独立,可以在不影响原有设计的情况下灵活地设计故障注入电路,从而大幅度提高故障注入的效率。技术方案如下:

一种基于输入和输出数据操作的fir滤波器故障注入方法,设fir滤波器的抽头为l,故障注入方法为:

(1)将原有fir处理逻辑进行复制,形成一个两支路的fir滤波器并行处理结构,分别称为第一fir滤波器和第二fir滤波器,并尽可能加长所产生的输入数据流;

(2)将输入数据每隔l长就修改一个输入数据,对第一滤波器进行故障注入,而第二fir滤波器的输入数据保持不变;设输入数据长度为nl,输出数据长度也为nl,将第一fir滤波器、第二fir滤波器以及最终故障注入所导致的滤波输出数据都分为n段,每段长为l,两路滤波器的输出数据以及所期望的故障注入模拟输出表示为和on(l),其中n=0,1,2,…,n-1表示数据段的位置,l=0,1,2,…,l-1表示每段中的数据的位置,对于第n段数据来说,若第l个移位寄存器发生故障,则on(l)在该段中的l个数据可由如下方法获得:

1)将第二fir滤波器的第n段数据中的前l个数据取出;

2)将第一fir滤波器的第n段数据中的前后l-l个数据取出;

3)将以上两端数据拼接,形成l个数据,表示为

本方法首先构造了一个两支路的fir滤波器结构,并向其中一路滤波器的输入数据进行了故障注入,然后通过对两路fir滤波器的输出数据进行选择和拼接,完成对fir滤波器中移位寄存器的故障注入模拟。这种方法仅对输入和输出数据进行操作,不需要对fir滤波器的实现进行修改,因此很适合用于对已有滤波逻辑进行故障注入实验。此外,基于一次输入数据修改,两路fir滤波器所得到的结果可以直接用于多种不同移位寄存器发生故障的模拟,不再需要重新进行fir滤波处理。这种方法简单易行,可大大提高相关的故障模拟与容错设计验证的执行效率。仿真验证表明,所提出的故障注入方法可以100%地准确模拟针对fir滤波器的故障注入的效果,执行效率高,且操作简单。

附图说明

图1直接型fir滤波器的结构

图2基于输入数据和输出数据操作的fir滤波器故障注入方法

图3移位寄存器d5第0比特发生翻转的效果

图4移位寄存器d5第0比特发生翻转后一个采样周期的效果

图5移位寄存器d5第0比特发生翻转后两个采样周期的效果

图6移位寄存器d5第0比特发生翻转后三个采样周期的效果

具体实施方式

本发明针对fir滤波器提供一种基于输入数据和输出数据操作的故障注入方法。该方法首先构造一个两支路的fir滤波器结构,并输入相同数据,然后对其中一个fir滤波器的输入进行周期性的修改,最终将两路fir滤波器的输出进行合并,形成故障注入后的滤波器结果。具体步骤如下:

一、构造一个两支路的fir滤波器并行处理结构

为了对fir滤波器进行故障注入,首先将原有fir处理逻辑进行复制,形成一个两支路的fir滤波器并行处理结构,分别称为fir滤波器1和fir滤波器2。

两个fir滤波支路的输入在初始时是相同的。为了遍历不同输入数据条件下的故障注入结果,可以根据实验条件,尽可能加长所产生的输入数据流。

二、对一路fir滤波器的输入进行周期性修改

在实际的fir滤波器操作过程中,移位寄存器故障所引起的错误输出与发生故障的移位寄存器位置有关。对于有l个抽头的fir滤波器来说,若在某个时刻i,第l个移位寄存器发生故障,则将导致这时刻之后的l-l个错误输出。而l-l个采样周期之后,故障移位寄存器的值已经移出fir滤波器,不会再造成错误输出。因此,对于第l个移位寄存器发生故障的模拟,关键是产生这l-l个错误输出。

fir滤波器1,将某个输入数据移入滤波器之前就将其修改(故障模拟),则其将在fir滤波处理中存在l个数据周期(l拍),总共产生l个错误输出。对于模拟第l个移位寄存器发生故障的情况,则只要截取这l个错误输出之中的后l-l个输出。而前l个周期输出的数据本应该是正确的,这部分数据可以由fir滤波器2的正常输出数据提供。

为了遍历不同输入数据条件下不同移位寄存器发生故障所导致的错误输出,可将输入数据每隔l长就修改一个输入数据。为了便于描述,可将输入数据流的第一个数据(索引为0)作为故障注入的起点,即被修改的数据位置为0、l、2l……nl、……。这样,若要进行n次故障注入,则总的输入数据长度为nl。

三、将两路fir滤波器的输出进行交叉合并

由第二步中的分析可知,fir滤波器1和fir滤波器2首先具有相同的输入数据流,其中fir滤波器1的输入数据被周期性地修改(故障注入),修改间隔为l个数据,而fir滤波器2的输入数据保持不变。这样,fir滤波器1的输出数据全是错误的,而fir滤波器2的输出数据确实正确的。对于抽头为l的fir滤波器,若输入数据长度为nl,则输出数据长度也为nl。可将fir滤波器1、fir滤波器2以及最终故障注入所导致的滤波输出数据都分为n段,每段长为l,这样两路滤波器的输出数据以及所期望的故障注入模拟输出可表示为和on(l),其中n=0,1,2,…,n-1表示数据段的位置,l=0,1,2,…,l-1表示每段中的数据的位置。对于第n段数据来说,若第l个移位寄存器发生故障,则on(l)在该段中的l个数据可由如下方法获得:

4)将fir滤波器2的第n段数据中的前l个数据取出;

5)将fir滤波器1的第n段数据中的前后l-l个数据取出;

6)将以上两端数据拼接,形成l个数据,表示为

由以上描述可知,每次故障注入所针对的故障寄存器的位置可以是不同的。在这个过程中,输入数据的修改操作是相同的,只是在截取和组合过程中体现故障寄存器的位置。

图1是典型的直接型fir滤波器的结构,其中d为移位寄存器,h0~hl-1为滤波器系数。从图中可以看出,第l个移位寄存器故障后,其存储的错误数据还将在滤波器中存留l-l个采样周期,因此造成l-l个错误的滤波输出。本发明所模拟的就是这种移位寄存器发生故障对输出数据造成的影响。

图2展示了基于输入和输出数据操作的fir滤波器故障注入方法结构与流程。总的来说,整个故障注入系统包括三部分,分别是两支路fir滤波器并行处理模块、输入数据修改模块、和输出数据选择与拼接模块。三个模块的作用描述如下:

1)两支路fir滤波器并行处理模块

将原有fir滤波器器实现逻辑复制为两个,并使这两个fir滤波器同步处理两个输入数据流。两个fir滤波器的输出数据一同送入数据选择与拼接模块,用于形成最终的故障注入结果。

2)输入数据修改模块

原有输入数据直接通入fir滤波器2,而fir滤波器1的输入则由原有输入数据修改而成。修改规则为每l个数据修改一个数,修改方式可以依据单粒子翻转seu效果进行,即将这个数二进制表示的某个比特进行翻转(由0变成1,或者由1变成0),每次翻转的比特位置可以不同。

3)输出数据选择与拼接模块

根据需要注入故障的移位寄存器的位置,选择两个fir滤波器输出数据中的不同部分,并将两者进行拼接,最终形成当前故障注入所导致的错误滤波输出结果。

这里以一个例子说明如何基于所提出的输入和输出操作方法来模拟fir滤波器故障寄存器导致的错误输出。

1.故障场景描述

设需要模拟的是一个9阶fir滤波器(l=9),共包含9个移位寄存器(d0~d8)和9个滤波系数(h0~h8)。如图3所示,滤波器系数预先设置为

[-6,-135026240026250-13-6],

输入数据流的前9个数据为

x=[2082313223316124711404036]

这些数据依次进入fir滤波器的移位寄存器,当第一个数据进入到d5时,单粒子翻转效应使其最低比特发生了翻转。由于d5存储的当前数据为208,二进制表示为11010000,因此最低比特翻转的结果为11010001,即变成了209(如图3所示)。在此之前,5个滤波输出都是正确的,分别为

[-1248-4090720564232141327]

而第六个采样时刻的输出本来应该为164693,但此时变为了164955。此后,错误数据依然要在fir滤波器中停留三个采样周期,并产生了三个错误输出152130、152036和130567,分别如图4、图5和图6所示。最终,由于d5发生单粒子翻转故障,导致的前9个滤波输出为

y=[-1248-4090720564232141327164955152130152036130567]

2.基于输入输出数据操作的故障注入模拟

本发明提出的方案仅对输入和输出数据进行操作,从而达到与上面预设故障场景同样的效果(即在第5个采样周期中d5寄存器的第0比特发生翻转),输出同样的滤波结果。

第一步,构造两个相同的fir滤波器(fir滤波器1和fir滤波器2),系数同上;

第二步,将原输入数据第一个数据的第0比特进行翻转,得到修改后的输入数据

x’=[2092313223316124711404036]

然后将输入数据x送入fir滤波器2进行处理,得到前9个输出结果为:

y2=[-1248-4090720564232141327164693152080152049130573]

将修改后的输入数据x’送入fir滤波器1进行处理,得到前9个输出结果为:

y1=[-1254-4103725564494141727164955152130152036130567]

第三步,按照要求,需模拟d5移位寄存器的故障后果,因此选择fir滤波器2的前5个滤波结果

y2[0:4]=[-1248-4090720564232141327]

和fir滤波器1的后4个滤波结果

y1[5:8]=[164955152130152036130567]

然后将两者拼接得到最终的模拟结果

y=[-1248-4090720564232141327164955152130152036130567]

这个结果与“故障场景描述”中的结果完全一致,从而验证了所出的故障模拟方法的正确性。

以上操作完成了一次故障注入,更多的故障操作应周期性地对输入数据进行修改(第10个、第19个、第28个……)。

实际上,基于以上描述可以发现,针对不同移位寄存器发生故障的情况,输入数据的修改操作是相同的,只是在输出数据操作中所选择的数据段的位置不同。因此,基于一次输入数据修改后,两路fir滤波器所得到的结果可以直接用于多种不同移位寄存器发生故障的模拟,不再需要重新进行fir滤波处理。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1