容错系统中的自校验技术及实现方法
统工作是否正常(无法判断某些故障)。当网络发生故障时,可分成以下几种情况:①非法及错误输入被映射成
![](../img/eep/emb/emb-24834cqnowaxjxxe.jpg)
;②输入
![](../img/eep/emb/emb-24829df2kywpnnps.jpg)
被映射成为
![](../img/eep/emb/emb-24840rd4qalcw4x2.jpg)
;③
![](../img/eep/emb/emb-24829df2kywpnnps.jpg)
映入
![](../img/eep/emb/emb-24834cqnowaxjxxe.jpg)
但已不是正确的映射关系,也就是说输入输出关系发生了变化。对于一个高可靠容错系统来说,必须能够以比较高的故障覆盖率来检测出以上三类差错(最好在一拍内检出),使系统及时采取措施,隔离故障,将其影响减小到最低限度。在三类错误中,第①类和第②类与第③类相比要好检测一些,高效检测第③类错误是提高系统故障覆盖率的关键,只有设计出对以上三类错误检出率均较高的检错系统,才能保证系统有较高的可靠性。
2自校验网络的结构
自校验网络具有在无任何外加激励的情况下能自动检测其内部是否存在故障,这些故障或是永久性的或是暂时性的。设计自校验网络的主要技术有检错编码技术,基于自对偶函数的交替逻辑技术(交织逻辑技术),基于对偶函数的互补逻辑技术,还有基于多值逻辑的实现方法,下面我们主要讨论一些实用的实现方法。
![](../img/eep/emb/emb-24842ijoofvafmmc.jpg)
2.1双轨码校验器
双轨码校验器的原理图如图3所示。
输入矢量为
![](../img/eep/emb/emb-24843hbwpfxhrjrp.jpg)
,其中
![](../img/eep/emb/emb-24844eretjqd1zus.jpg)
,(i=1,2),输出矢量为
![](../img/eep/emb/emb-24845wgulviok13p.jpg)
且满足:
![](../img/eep/emb/emb-24846wwp2crs0sg0.jpg)
![](../img/eep/emb/emb-24847vud3swybuu3.jpg)
若
![](../img/eep/emb/emb-248480fncbhoedk5.jpg)
且校验器无故障。
利用双轨码校验器的上述特点,设计一对偶组合逻辑网络,使其输出向量
![](../img/eep/emb/emb-248495hmcy5jrl0j.jpg)
和
![](../img/eep/emb/emb-24850yxb1ctm5nxy.jpg)
恰好反相,将
![](../img/eep/emb/emb-248495hmcy5jrl0j.jpg)
和
![](../img/eep/emb/emb-24850yxb1ctm5nxy.jpg)
加到双轨码校验器输入端,根据
![](../img/eep/emb/emb-24845wgulviok13p.jpg)
就可以判定系统是否发生故障。
2.2可分码校验器
可分码校验器的结构如图4所示。校验器的输入矢量为
![](../img/eep/emb/emb-24851o4nsrym12oq.jpg)
),矢量
![](../img/eep/emb/emb-248495hmcy5jrl0j.jpg)
和
![](../img/eep/emb/emb-24850yxb1ctm5nxy.jpg)
分别对应可分码的信息分量和校验分量。其中,信息分量宽度为
![](../img/eep/emb/emb-24852oiyrowgq0ad.jpg)
是校验分量的宽度,且1+K=n,n=‖Y‖。校验位生成电路根据信息位
![](../img/eep/emb/emb-248495hmcy5jrl0j.jpg)
重新生成校验位W,由双轨码校验器比较W与
![](../img/eep/emb/emb-24850yxb1ctm5nxy.jpg)
的一致性,在无故障的情况下,校验器的输出
![](../img/eep/emb/emb-24845wgulviok13p.jpg)
指示输入矢量的有效性。下面的定理给出了图4完全自校验可分码校验器的构造条件。
定理:图4所示的可分码校验器是完全自校验的,若校验位生成器是一个无冗余的组合逻辑网络,且比较器是完全自校验的。
2.3互补逻辑网络
利用互补逻辑也可以构成自校验电路,如果某一逻辑网络其输入输出关系为
![](../img/eep/emb/emb-24853qtlwttqbam4.jpg)
,则可构造一互补逻辑网络,使其输入输出关系为
![](../img/eep/emb/emb-24854yy0awskoqks.jpg)
其中f和f是互补的,在无故障的情况下,其输出是互补的;若发生输出相同,则两个逻辑电路中必定有存在故障的情况。互补逻辑网络实现原理比较直观,但对较复杂的系统,有许多故障它是检测不出来的。
2.4交织逻辑网络
交织逻辑网络是基于自对偶函数的自校验逻辑网络。一个二进制变量是交替的,记作
![](../img/eep/emb/emb-24855hrs4xlfkqyh.jpg)
若x在两个连续的时间间隔内所取的值互补。
对任意一个开关函数
![](../img/eep/emb/emb-248563o4atvug2nt.jpg)
,若假设
![](../img/eep/emb/emb-24857vv1hkdiae5q.jpg)
是交替二进制变量,且它们是同步交替的,则g的输入矢量可表示为
![](../img/eep/emb/emb-24858c4wteedsnfr.jpg)
,其输出可表示为
![](../img/eep/emb/emb-24859skbx1juctde.jpg)
,要使输出变量也是交替的,必须满足
![](../img/eep/emb/emb-24860csknudb0rhx.jpg)
,显然,g必须是自对偶函数。利用交织逻辑网络的这个特点,可以检测出系统的一部分故障。
3自校验网络实现方法
对于一些比较简单的应用场合,利用数字逻辑方法进行设计,使用SSI及MSI集成电路即可方便地构成自校验网络。但实际容错系统非常复杂,涉及大量逻辑设计,若仍采用传统的数字逻辑设计方法,不仅工作量大、容易出差错,而且修改和功能仿真都不方便。使用电子设计硬件描述语言VHDL(或VerilogHDL对电路功能进行描述,用FPGA或CPLD器件实现自校验网络是比较现实的,对于大批量生产,可将VHDL描述的电路送半导体器件厂进行批量生产,VHDL硬件描述语言实现自校验网络的步骤如下:
①建立自校验网络的功能模型。对系统的输入/输出、状态转换、信号传递等进行详细的说明。
②用VHDL语言或VerilogHDL语言对电路功能进行描述。对复杂系统可采用自上而下的设计方法,将系统分解成不同层次的、功能较简单的模块,利用VHDL语言对系统功能进行分层描述,减少系统描述造成的错误。
③对不同层次的模块进行功能仿真,以检验各模块设计的正确性,最后对整个系统进行功能仿真,及早排除系统设计中的错误。
④用VHDL或VerilogHDL综合编译器对设计好的系统进行编译,经过逻辑化简及综合布线,生成可对FPGA或CPLD编程的数据文件。
⑤将数据文件通过编程器写入FPGA或CPLD,进行实际测试,若测试数据满足设计要求,则开发工作完成;否则,转①重新进行检查和设计。
采用自校验技术后,可有效地提高容错系统的可靠性,随着集成电路技术的飞速发展,可将一些自校验功能模块进行封装,作为标准单元使用,在模块级上提高容错系统的可靠性。采用高级语言和FPGA或CPLD开发容错系统具有重要的现实意义,可有效缩短开发周期,降低开发成本,提高系统可靠性,应在工程设计中加以推广应用。
- 3DES算法的FPGA高速实现(06-21)
- 基于DSP的Max-Log-MAP算法实现与优化(05-27)
- DSP中DMA操作的无阻塞请求实现(06-18)
- 二维DCT编码的DSP实现与优化(09-08)
- 基于DSP处理器上并行实现ATR算法(01-29)
- 基于DSP的H.324终端设计(05-27)