计算机研究与发展
JOURNAL OF COMPUTER RESEARCH AND DEVELOPMENT
1999年　第36卷　第10期　Vol.36　No.10　1999



FCT网络的并发错误检测结构
陈禾　毛志刚　叶以正
　　摘　要　文中提出了一种快速离散余弦变换(FCT)电路的并发错误检测(CED)结构.为了达到100%的故障覆盖率，FCT采用基于第3类离散余弦变换的B.G.Lee算法蝶型结构实现.检测采用的方法是基于算法的并发错误检测容错方法，因为基于算法的容错(ABFT)技术的硬件冗余量较少.对所提出的结构，文中证明了其100%的故障检测能力.但在实际应用中，由于有限字长效应会带来误差，因此文中分析了有限字长效应对系统的吞吐量及故障覆盖率的影响，并给出了结论.
　　关键词　快速离散余弦变换，并发错误检测，基于算法的容错技术，吞吐量, 故障覆盖率
　　中图法分类号　TP306
A CONCURRENT ERROR DETECTION SCHEME
FOR FCT NETWORKS
CHEN He, MAO Zhi-Gang, and YE Yi-Zheng
(Microelectronics Center, Harbin Institute of Technology, Harbin 150001)
　　Abstract　A concurrent error detection(CED) design is proposed for fast discrete cosine transform(FCT). To achieve the goal of 100 percent fault coverage, FCT is realized by using a butterfly architecture of the B.G.Lee fast algorithm based on DCT-III. Algorithm-based fault tolerance(ABFT) is used for error detection because ABFT is a low-cost system-level concurrent error detection and fault location scheme. The error detection capability of this scheme is analyzed. When the FCT is implemented with hardware, errors due to finite word length is unavoidable. So the influence of large truncation errors on the throughput and fault coverage is discussed and a conclusion is obtained.
　　Key words　fast discrete cosine transform, concurrent error detection, algorithm-based fault tolerance, throughput, fault coverage
1　引言
　　离散余弦变换(DCT)提出以来，发展很快，目前FCT已被广泛应用在数字信号处理中，特别是语音及图像数据压缩、滤波、通信系统等领域.VLSI技术的发展为FCT有效地实现提供了条件.但是大量处理单元集成在同一芯片上来完成高速计算，单元中的故障将会影响整个系统的工作.因此为了保证系统正常工作，在计算中考虑容错是必要的.本文提出了一种基于算法的FCT并发错误检测系统，FCT结构采用B.G.Lee算法蝶型结构［1］.采用基于算法的容错（ABFT）技术是因为ABFT技术是一种利用系统的结构特性实现容错的低耗费的系统容错技术，此技术的硬件冗余量较少.
　　在过去几年里，人们利用基于算法的容错思想提出了几种快速傅立叶变换(FFT)并发错误检测方案［2～4］.由于FCT蝶型结构不如FFT规则，误差分析理论发展不完善，因此还没有人提出过关于FCT的基于算法的容错结构.本文是在分析几种FFT的CED设计后，根据FCT结构的特点提出了FCT网络的CED设计.
2　基于B.G.Lee算法的FCT结构及故障模型
2.1　基于B.G.Lee算法的FCT结构
　　设数据序列x(n), n=0,1,…N-1, 则x(n)的DCT定义为

(1)
在这里，，x(k)是第k个DCT系数.
　　逆离散余弦变换（IDCT）定义为

(2)
　　为了有效地计算DCT，人们提出了许多快速算法，其中B.G.Lee算法为有代表性的快速算法之一.若不考虑比例因子ε(k)，则基于B.G.Lee算法的8点FCT结构框图如图1所示.


(a)系统框图

(b)蝶形单元
图1 基于B.G.Lee算法的8点FCT系统框图
　　如图1所示，对于N点FCT网络可分为v+log2N-1级(N=2v)、v级蝶型运算、log2N-1级加法运算.本文将以8点FCT为例进行有关论证，但对N点FCT同样适用.从图1中可看出，网络中有两种运算单元，一种是后加法运算单元（以+表示），一种是蝶型运算单元（以Ci表示）.蝶型运算单元结构见图1(b)，设输入为a，b，输出为c，d，则蝶型运算单元的计算为
c=a+b
d=(a-b)×Ck
其中
　　　
2.2　故障模型
　　对基于单元的VLSI技术来说，传统的门级故障模型由于处理困难、精确性差已不再适用.在这篇文章中我们采用模块级故障模型［2］，这样一个蝶型单元中有9种故障，其故障模型见图1(b).图中9种故障人为分为4个子集：{1}、{2}、{3、6、8}、{4、5、7、9}.对于后两个故障集，从蝶型运算结果看，我们不能区分任意两个故障，例如，对减法和乘法运算我们有如下关系式：p4=(p7-p9)×p5,其中pi为输入/输出数据端，对由p7，p9，p5中任一端引起的故障，通过运算最终可导致端p4有故障.因此，对每一蝶型模块我们只需考虑4个故障{1}、{2}、{3}、{4}，我们用表示FCT网络中第i级第j个输入端的故障.将个加法模块及2log2N个蝶型模块放在一起构成FCT网络，我们只需考虑每个蝶型模块及加法模块的输入、输出故障，即到，j=0,1…7.
3　FCT网络的并发错误检测系统（concurrent error detection，CED)
3.1　FCT网络的CED容错系统设计
　　在这节将讨论基于B.G.Lee算法的FCT并发错误检测结构.我们的目标是用较少冗余获得具有容错能力的FCT结构.1984年Wang将离散余弦变换分为4类［5］，对于DCT-Ⅲ，忽略比例因子，则

(3)

(4)
因而有

(5)
　　用式(5)通过将x(0)与输出校验和比较，可建立一个简单的故障检测结构，见图2.


图2 基于Lee算法的8点DCT-Ⅲ的CED系统框图
　　但经计算在此模型中有59%的故障检测不到，因为对于DCT-Ⅲ其蝶型关系式为

则在b端发生的错误，校验和检测不到，因而此故障是不可测的.为此我们选用DCT-Ⅱ算法结构，对于DCT-Ⅱ忽略比例因子，则有

(6)

(7)
由此公式可得

(8)
用式(8)我们可构造DCT-Ⅱ网络的CED系统，见图3.由图3可见，此CED系统是在原无容错系统的输出端加上译码乘法器、输出校验和加法器及TSC比较器.x(0)端加上一个延迟是为了保持时间上的一致性.


图3 基于DCT-Ⅱ的CED系统框图
3.2　CED系统故障检测能力分析
　　我们定义由发生在FCT网络中第i级的第j个输入端的一个错误引起的、在译码乘法器之前的第k个输出端得到的增益为GK()［2］，即当第i级的第j输入端为1，其它输入端为0时，在译码乘法器前第k个输出端得到的结果，例如:
　
　　让我们定义e为故障引起的错误.因校验和加法器的输出为，对e≠0,如果,则，说明故障是不可测的.因此我们必须保证任一故障将引起.对于e≠0,设，若保证所有故障可测，则.
　　在本文中，为了证明方便，我们多用三位二进制表示数据，例如i用s1s2s3表示，j用d1d2d3表示，则可表示为.
　　引理1. 
　　证明. 
　　引理2. 3<i<6时，
　　证明. 从图3中经逐级推导可得出
　　由引理1知，所以，因而
　　引理3. i≤3时，
　　证明. 从图3中可得出
　　　由于对于i≤3各级为规则蝶型结构，因此推广到一般情况，对于i≤3有

　　　其中
　　　当d3=0时，由引理1、2可知，
　　　当d3=1时，如果我们将及展开，根据引理1、2则很容易证明任意.
　　　因此对于i≤3，.
　　定理1. 如果FCT网络内有任一故障、任一译码乘法器有故障或校验和加法器的任一输出端有故障时，基于式(8)的CED设计可检测出由这些故障引起的逻辑错误.
    证明. 由引理1、2、3我们可知，对于FCT网络内部的任一故障，本系统均可检测出来.而对于发生在译码器及校验和加法器输出端的任一故障，均可由TSC比较器检测出来.因此在理论上，此CED系统可达到100%的故障覆盖率.
3.3　CED系统的硬件冗余分析
　　对于N点FCT，其实数运算量为
　　　乘法：M=N/2log2N； 加法：A=3N/2log2N-N+1.
因此与无容错系统相比，对于乘法运算冗余度为，对于加法运算冗余度为因为加法的硬件复杂度较乘法硬件复杂度小得多，因此系统的硬件冗余只考虑乘法硬件冗余度即可，即
　　本系统因译码乘法器及校验计算与FCT网络计算不在同一通路上，因此对FCT计算来说无时间上的冗余.但本系统有一级乘法及三级加法的故障延时，因此传播故障检测信号的延时为 TM+3TA，其中TM与TA分别为乘法及加法运算时间.
4　截断误差处理
　　在FCT网络实际应用中，由于有限字长效应，会带来误差，由于此误差的引入，当FCT网络无错误时，TSC比较器的两个输入也可能不相等.为了解决此问题，我们允许TSC比较器的两个输入端有一偏差η.当TSC比较器的两个输入端的差大于η时，重试(retry)策略将被采用，即重新输入一组数据，以决定此差是由网络中的功能故障引起的，还是由于有效字长效应引起的.一个小的η可能会影响网络的吞吐量，因为很多重试会执行，但一个大的η又可能使一些功能故障不可测，因此下面我们将讨论此CED系统的吞吐量及故障覆盖率.在分析前我们假设此系统是以定点制实现，采用的码制为二进制补码，数的量化字长处理为截断处理.其它工作制（例如浮点制）、码制（原码、反码）及字长处理（舍入处理）均可按同样的方法进行分析.
4.1　吞吐量
　　设F(k)为第k个FCT系数的截断误差，则根据文献［6］中结果，此噪声的方差为平均值为其中δ(k)为单位抽样序列，为量化误差的方差，q=2-b，b为字长.因此TSC比较器输入端总的量化噪声为所以有=对于F′(0)，随着b的增加平均值为.因此F′(0)，F′(1)…，F′(N-1)是一组独立的随机变量，其平均值为0，方差为.根据中心极限定理，可认为F是一个以正态分布的随机变量，其平均值为0，方差为因此的分布就是一个标准正态分布.系统的吞吐量定义如下［2］：

表1列出了不同的时系统的吞吐量.
表1　系统的吞吐量

0.00.51.01.52.02.53.03.5
吞吐量0.50.6180.7590.8820.9560.9880.99731.000

　　由表1可看出，系统的吞吐量与η的选择有关，大的η意味着高的吞吐量，但η增大，不可测故障增多，因此下面讨论故障覆盖率问题.
4.2　故障覆盖率
　　故障覆盖率定义为可测故障数与系统中发生的故障数之比.设由功能故障引发的功能错误e(i)是一个在［-1，1］内均匀分布的白噪声，则且假设e(i)在FCT网络中每一级都可能发生.设G(k)为由e(i)引发的第k个FCT系数的噪声，则其平均值为0，其方差为设在第i级的功能故障可影响Mi个输出，因此在FCT网络中，表2是不同N时的值.
表2　的值

N4816
0.1720.13450.1299

设S=F+G，其中则S表示TSC比较器输入端总的误差值，因此S的平均值是0，方差为其中因此故障覆盖率为表3列出了不同的N值、字长、η、系统的故障覆盖率.
表3　系统的故障覆盖率

　η= 
吞吐量=0.759η=2.
吞吐量=0.956η=3.
吞吐量=0.9973
bN481648164816
40.9440.9961.000.8930.9921.000.8410.991.00
80.92040.9941.000.83360.991.000.7570.9841.00
160.8860.9921.000.77180.9861.000.66720.9781.00

　　从表3中可看出：当N，b相同时，η越大，系统故障覆盖率越低.而当η相同时，对相同的N，字长b越大，故障覆盖率越大，而b相同时，N越大，故障覆盖率越低.所以若想提高系统的故障覆盖率，可从N，b，η入手，但故障覆盖率的提高会带来吞吐量的降低，因此在 N，b，η的选择上要注意折中.
　　对实时系统来说，因为N为固定值，因此比较好的解决办法是增加b.另外，我们还可看出，对实时系统来说，不可测故障的几率很低，这是因为的比值很高，所以功能故障给输出带来的误差通常要比截断带来的误差大得多.因此一般情况下，只要网络中有功能故障，CED系统就可检测出. 
5　总 结
　　在本文中，对基于B.G.Lee算法蝶型结构的FCT网络，我们提出了一种基于算法的并发错误检测容错系统.本系统有较高的故障覆盖率，且冗余度较低，有实际应用价值.
作者简介：陈禾，女，1970年3月生，博士，主要研究方向为ASIC设计、容错电路设计、DSP.
　　　　　毛志刚，男，1961年9月生，教授，主要研究方向为ASIC设计、容错电路设计、集成电路测试、计算机硬件安全.
　　　　　叶以正，女，1937年2月生，博士生导师，主要研究方向为电子设计自动化技术、集成电路设计等.
作者单位：哈尔滨工业大学微电子中心　哈尔滨　150001
参考文献
　1　　Lee B G. A new algorithm to compute the discrete cosine transform. IEEE Trans Acoust Speech Signal Process, 1984, 32(12): 1243～1245
　2　　Jou J Y, Abraham J A. Fault-tolerant FFT networks. IEEE Trans Comput, 1988, 37(5): 548～561
　3　　Wang S J, Jha N K. Algorithm-based fault tolerance for FFT networks. IEEE Trans Comput, 1994, 43(7): 849～854
　4　　Oh C G, Youn H Y. On concurrent error detection, location, and correction of FFT networks. In: Proc IEEE FTCS'93， Toulouse, France, 1993. 596～605
　5　　Wang Z. Fast algorithms for the discrete W transform and for the discrete Fourier transform. IEEE Trans Acoust Speech Signal Process, 1984, 32(4): 803～816
　6　　Yun I D, Lee S U. On the fixed-point-error analysis of several fast DCT algorithms. IEEE Trans Circuits Syst Video Technol, 1993, 3(1): 27～41 
原稿收到日期：1997-12-29;
修改稿收到日期：1998-03-23.
