细胞自检是自修复的基础[6]。目前,胚胎电路故障检测方面的研究相对较少,胚胎电子细胞的检测方法主要有细胞间检测和细胞内检测2种。细胞间检测以双模冗余检测方法为主[7],该方法故障覆盖率较高,但硬件资源消耗大,布局布线较为复杂,对于胚胎电路阵列结构有一定要求。细胞内检测主要包括针对细胞功能模块的双模冗余检测[8-9]、针对细胞存储模块的故障检测[10-11]、针对细胞间连线的冗余检测和细胞间双模冗余检测[12],这些检测方法仅针对细胞局部进行检测,检测能力受细胞结构影响,故障覆盖率有限,而且检测单元无法有效自检。
编码自检方法不需外加激励,可实现包括检测单元在内的整个系统的故障检测,具有较好的检测性能。本文将剩余码/berger码联合编码自检设计思路应用于胚胎电子细胞故障检测,基于基本逻辑和算术运算中操作数和结果数之间的剩余码和berger码关系,建立了胚胎电子细胞输入输出信号之间的数学模型,通过剩余码检测单个故障,berger码检测多位单向故障,对胚胎电子细胞的输入进行处理得到校验信息。通过设置检测基因,实现对胚胎电子细胞的输出进行处理得到校验位,比较二者从而完成对胚胎电子细胞的编码自检。
1 联合编码自检方法 根据统计可知,电路中的故障一般以单个故障为主,其中固定型故障在故障总数中占90%以上[13]。而在航空航天领域引起影响数字电路的故障约有71%源于空间辐射,翻转型故障大约占全部辐射导致的故障的90%[14]。因此,固定型故障和翻转型故障是最为重要的2种故障类型。胚胎电子细胞由输入输出模块、功能模块、基因存储模块、地址产生模块和自检模块组成。由于胚胎电子细胞内部各模块的连接,一个模块内的单个故障可能会通过模块之间的连接传播扩散。胚胎电子细胞结构如图 1所示。
![]() |
图 1 胚胎电子细胞结构 Fig. 1 Structure of embryonic electronic cell |
图选项 |
胚胎电子细胞的输出端按照其所在位置不同,可分为地址产生模块输出端和输入输出模块输出端2部分。细胞内无法在细胞输出表现的故障不会影响整个胚胎电路所实现的目标电路的正常工作,因此,针对这2个模块输出进行检测。胚胎电子细胞地址产生模块一般不会发生翻转型故障,适合使用剩余码自检方法。输入输出模块可能出现多位单向故障,适合使用berger码自检方法。通过将剩余码自检方法和berger码自检方法二者联合使用,对胚胎电子细胞的输入进行处理得到校验信息,对胚胎电子细胞的输出进行处理得到校验位,比较二者从而完成对胚胎电子细胞的编码自检。
剩余码和berger码是较为常见的编码检测方法[15]。剩余码通过对信息位进行取模运算得到校验位,berger码通过统计码字中“0”或“1”的数目得到校验位,编码得到的校验位与校验信息进行对比就可以实现故障编码检测。剩余码和berger码都具有经过运算不改变校验特性的优点,剩余码检测电路规模较小且无需访问进位链,但检测能力较为有限,只能检测单个故障;berger码可以检测单个故障和多位单向故障,但检测电路规模较大且使用时需要访问进位链,电路设计相对复杂。
1.1 剩余码自检方法 剩余码[16]的加法运算规则为:若干代码之和的模等于每个代码的模之和的模,即
![]() | (1) |
式中:ai为码字;m为模。
剩余码的乘法运算规则为:若干代码之积的模等于每个代码的模之积的模,即
![]() | (2) |
当剩余码自检方法的模为奇数时,可以实现对代码中单个错误检测[17]。为了便于检测电路的设计,采用最低成本剩余码自检方法,即模m为2d-1,再将对应的反码保存在基因存储模块,自检时与细胞实际地址输出取余的结果通过双尾校验器(Two-Rail Checker, TRC)进行比较。
地址产生模块由2个进1加法器组成,只会发生固定型故障,适于剩余码自检方法。以16×16阵列中的(0, 14)细胞为例,对地址产生模块输出的剩余码自检进行说明。假设细胞输出坐标为(1, 15),模为3,则对代码分组检测时每组中码元的位数d=2,输出坐标的二进制形式为00011111。将输出坐标的二进制形式从低到高每d位分为一组进行相加,不足位添0补齐,然后取模。当存在进位时,将进位消去并在最低位加1,即
00+01+11+11=01+11+11=01+11=01
基因存储模块中存储01的反码10,在TRC电路检测时对二者进行比较。
1.2 berger码自检方法 对于基本逻辑和算术运算中的n位二进制操作数:
![]() |
其运算结果S=(sn, sn-1, …, s1)的berger码校验信息B(S)与操作数的berger码校验信息B(X)和B(Y)满足特定关系[18],基本逻辑和算术运算中操作数与结果数之间berger码的关系如表 1所示。
表 1 基本逻辑和算术运算中操作数与结果数之间berger码的关系 Table 1 Berger code relationships between operands and results of basic logic and arithmetic operations
运算类别 | berger码关系式 |
与 | B(S)=B(X)+B(Y)-B(X|Y) |
或 | B(S)=B(X)+B(Y)-B(X & Y) |
异或 | B(S)=B(X)+B(Y)-2B(X & Y) |
加 | B(S)=B(X)+B(Y)-B(C)-B(cout) |
减 | B(S)=B(X)-B(Y)-B(C)-B(cout)+n+1 |
乘 | B(S)=B(X)×B(Y)-B(C) |
表选项
表 1中:C=(cn, cn-1, …, c1)为运算过程中进位组成的序列,cout为输出的进位即C的最高位cn。对于胚胎电子细胞,其输出就相当于结果数,输入相当于一个操作数,只要利用配置信息构建另一个操作数,构建输入输出关系的等价电路就可以实现berger码自检。
输入输出模块的输出端与其他方向的3个输入及功能输出相连,如果把与同一输入相连的输出分入一组,则一共可以分为w组,每组有4个输出,w其实就是输入输出模块的宽度。当输出端连接其他方向输入时,输出端起转接输出作用,当输出端连接功能输出时,输出端起功能输出作用。由于转接输出和功能输出的连接关系不同,其等价运算也不相同,因此对二者分别讨论分析。
先对转接输出进行分析。对于一个输入端,其可能通过转接连接的输出端为0~3个。因此,可以把一组的转接输出进行等价运算转换,将其视为4个输入分别与一个4位连接序列相乘再求和的结果,具体转换流程如下。
由表 1中乘法的berger码关系式可知
![]() | (3) |
对于一个输入i,X=000i,连接序列Y=y4y3y2y1(yn=0, 1),易知B(X)=i,B(C)=0,则有
![]() | (4) |
式中:Si为输入i和连接序列Y对应的结果数,每组4个输入对应的结果数之和就是该组对应的输出。如果胚胎电子细胞中W1in、N1in、E1in和S1in输入的值为0101,W1in与输出N1out和E1out相连,N1in与输出S1out相连,E1in与输出W1out相连,S1in没有连接输出端,则W1out、N1out、E1out和S1out输出的值为0001。把转接等价为算术运算,则W1in与连接序列0110相乘,N1in与连接序列0001相乘,E1in与连接序列1000相乘,S1in与连接序列0000相乘,之后再相加的结果仍为0001。利用式(3)乘法的berger码关系式可以求出转接输出的berger码校验信息为
![]() | (5) |
功能信号与输入输出模块的0~4w个输出相连,因此,也可以参照转接输出部分的方法,将其等价为与一个4w连接序列的乘法运算,得到各组的berger码校验信息。仍然以输出W1out、N1out、E1out和S1out为例,当N1out和S1out转接的输入为0且W1out和E1out连接功能信号时,如果此时功能信号F的取值为1,则输出W1out、N1out、E1out和S1out为1010,其berger码校验信息为10。因为对于功能信号的连接序列为1010,利用功能信号进行等价运算,易知B(X)=1,B(Y)=10,B(C)=0,则由式(3)可知B(S)=10,结果数berger码校验位与输出berger码校验信息相同,说明功能信号正常。
2 自检电路设计 胚胎电子细胞的输出是其输入的函数,当胚胎电子细胞的配置信息确定后,每个输入对应唯一的一个输出(时序电路当前状态输入和上一状态的输入视为一个输入)。因此,可以基于剩余码/berger码联合编码建立胚胎电子细胞输入输出关系的数学模型,将胚胎电子细胞其他模块转化为等价运算电路,通过比较经过等价运算电路输出的校验信息与胚胎电子细胞输出的校验信息的一致性完成对于胚胎电子细胞的检测。剩余码/berger码联合编码自检电路结构如图 2所示。图中:校验信息的比较由TRC组成的级联电路完成,TRC级联电路具有全自检功能,不存在逻辑屏蔽,只靠自身输入即可自检,其输出的故障指示信息为“00”或“11”时,说明系统存在故障;故障指示信息为“01”或“10”时,系统正常工作。
![]() |
图 2 剩余码/berger码联合编码自检电路结构 Fig. 2 Structure of residue codes and berger codes combined coding self-check circuits |
图选项 |
胚胎电子细胞的输出端可以分为地址产生模块输出端和输入输出模块输出端。其中,输入输出模块输出端按照输出信号的来源划分,又可以分为输入信号转接输出端和功能信号输出端2部分。不同的输出端与输入的关系不同,因此,对3种输出端分别建立数学模型,进行等价运算电路转换。
2.1 地址产生模块输出端剩余码编码自检 地址产生模块包括行地址和列地址2部分,实际上是由2个进1加法器组成的。当胚胎电子细胞内出现单个故障时,地址产生模块的输出端不会出现多个故障,即只有一位地址信息输出错误,因此,可以直接对地址产生模块的输出进行剩余码编码自检。地址产生模块编码自检电路如图 3所示。图中:基因存储模块中存储的校验信息的长度与模m相关,对于最低成本剩余码自检方法,由于模为2d-1,校验信息长度为d,地址产生模块编码输出“00”或“11”时会导致后续TRC级联电路输出的故障指示信息变为“00”或“11”,从而指示胚胎电子细胞中存在故障。
![]() |
图 3 地址产生模块编码自检电路结构 Fig. 3 Structure of address generator module coding self-check circuit |
图选项 |
剩余码自检方法采用最低成本剩余码自检方法,在对码字取余的过程中,需要对码字从最低位开始分段,把每段表示的数相加,同时相加中产生的进位需要舍去,并且余数要增加1。为简化检测电路设计,便于实现自检,剩余码校验器通过多位全加器级联实现。由于检测码字不存在初始进位,全加器的初始进位需要置0。特别需要注意的是,当所有码字求和结束后,可能存在进位位。如果进位位取值为0,求和的结果可以直接输出作为校验码,但如果进位位取值为1,则必须在校验码的最低位加1。因此,需要再添加一个全加器,将上一个全加器的进位位和结果输入并对0求和,如果该进位输入为0,则求和后结果与上一个全加器的结果一致,如果该进位输入不为0,则全加器就有实现码字加1的功能,这样可以保证校验码的正确性。以剩余码模为2为例对剩余码校验器结构进行说明,校验器具体电路如图 4所示。
![]() |
图 4 剩余码校验电路 Fig. 4 Residue codes self-check circuit |
图选项 |
图 4中:输入x4~x1为胚胎电子细胞X坐标的输出,输入y4~y1为胚胎电子细胞Y坐标的输出,c2和c1为胚胎电子细胞地址产生模块剩余码检测的校验码,最后一个全加器输入端b(1)和b(0)需补齐“0”位。
仍然采用1.1节中的例子进行说明,阵列规模为16×16,细胞坐标为(0, 14),模取3,则细胞输出坐标为(1, 15),输出坐标二进制形式为00011111,d=2,基因存储模块中存储的地址产生模块校验基因为10。由全加器的运算性质可知,第1个全加器的输出为01,进位为0,第2个全加器的输出为00,进位为1,第3个全加器的输出为00,进位为1,第4个全加器的输出为01,检测器的输出与校验基因互为反码,电路工作正常。
2.2 输入输出模块输出端剩余码/berger码联合编码自检 输入输出模块输出端可以分为输入信号转接输出端和功能信号输出端2部分,由于2部分信号不同,其等价运算也不同。为方便电路设计,对2部分输出信号的编码可以一起进行,但是对二者的输入信号需要分开构建等价运算电路,进而完成编码。
先根据输出不同分别对输入进行处理,再根据代码之和的模等于每个代码模之和的模,将转接输入编码和功能信号输入编码求和取余,与输出编码进行比较,得到输入输出模块编码输出。输入输出模块剩余码/berger码联合编码自检电路结构如图 5所示。
![]() |
图 5 输入输出模块剩余码/berger码编码自检电路结构 Fig. 5 Structure of I/O router residue codes and berger codes combined coding self-check circuit |
图选项 |
功能信号来源于胚胎电子细胞的功能模块输出,输入信号经过功能模块的多路开关筛选,得到LUT的4个输入,当输入送到LUT时调用对应的LUT功能基因,LUT输出通过2选1数据选择器控制是否延时,数据选择器的输出(功能信号)连接输入输出模块输出端。LUT与输入的函数则并不固定,需要构建LUT输出与输入信号特征之间的关系。为检测单个故障,至少加入1位含有校验信息的参考基因,其中多出的参考基因为功能校验基因。功能校验基因的具体编码方法为:当每个LUT功能配置基因与对应输入的剩余码校验信息相同时,编码基因为“原始基因+0”,不同时为“原始基因+1”。选择除数为2以保证基因长度最短,LUT输入和编码后的LUT功能配置基因如表 2所示。
表 2 LUT输入和编码后LUT功能配置基因 Table 2 LUT inputs and coded LUT function configuration genes
LUT输入 | LUT功能配置基因为0的编码后基因 | LUT功能配置基因为1的编码后基因 |
0000 | 00 | 11 |
0001 | 01 | 10 |
0010 | 01 | 10 |
0011 | 00 | 11 |
0100 | 01 | 10 |
0101 | 00 | 11 |
0110 | 00 | 11 |
0111 | 01 | 10 |
1000 | 01 | 10 |
1001 | 00 | 11 |
1010 | 00 | 11 |
1011 | 01 | 10 |
1100 | 00 | 11 |
1101 | 01 | 10 |
1110 | 01 | 10 |
1111 | 00 | 11 |
表选项
假设输入输出模块宽度为2,输出端口W1out和E1out连接功能信号,LUT输入端口为S1in、S2in、E1in和W2in,功能配置基因为10001110_10100000,则功能校验基因为11100111_00110110。先将8个输入信号S1in、S2in、E1in、E2in、N1in、N2in、W1in和W2in送给功能信号输入编码电路,功能信号输入编码电路是由与门阵列和异或门组成,其中与门的个数与异或门的输入端个数相同,都等与输入输出模块输入的个数。功能信号输入编码电路如图 6所示。
![]() |
图 6 功能信号输入编码电路 Fig. 6 Functional signal input coding circuit |
图选项 |
图 6中:MNC(7)~MNC(0)为功能信号筛选基因输入端口,T为编码后值的输出端口。与门阵列负责筛选输入W2in~S1in的信号,当基因对应的输入端口是LUT输入端口时基因为1,否则基因为0,由于此时LUT输入端口为S1in、S2in、E1in和W2in,MNC输入值为10010011。筛选后的信号经过异或门处理,得到LUT输入的奇偶码信息。由表 2可知,每组输入对应一个功能校验基因,功能校验基因与T输出值经过异或运算的结果应当与功能信号相同。接下来通过功能信号余数校验基因构建功能信号输出等价运算。因为功能信号从W1out和E1out两个端口输出,连接序列为0000_1010,功能信号余数校验基因为01,其与上一步异或运算结果的积就是功能输出序列取模的结果。
3 检测性能分析 3.1 故障检测率 采用剩余码/berger码联合编码自检方法的胚胎电子细胞具有自检测能力,检测故障所需的激励包含在输入码字空间中,不需要任何外加激励。
当胚胎电子细胞中发生单个故障(包括单固定型故障和单翻转型故障)时,如果输出不是胚胎电子细胞输入对应的正常输出,该故障就是故障集中的一个故障。定义故障检测率为
![]() | (6) |
式中:nFS为故障集中故障的总数;nDF为可通过编码自检电路检测到的故障个数;fDR为故障检测率。
胚胎电子细胞故障集是胚胎电子细胞各模块故障集的全集。其中,功能模块故障集的子集有多路选择开关故障子集、LUT故障子集、DFF故障子集、2选1 MUX故障子集。每个多路选择开关的故障子集有4w个固定型输入故障、log2(4w)个固定型配置故障和log2(4w)个翻转型配置故障;LUT故障子集有4个固定型输入故障、16个固定型配置故障和16个翻转型配置故障;DFF故障子集有1个固定型输入故障;2选1 MUX故障子集有2个固定型输入故障、1个翻转型配置故障和1个固定型配置故障;功能模块故障集还包括功能模块1个固定型输出故障。
地址产生模块故障集的子集为进1加法器。假设胚胎电子细胞所在的二维阵列规模为c列r行,进1加法器故障子集的固定型输入故障个数为


输入输出模块故障集的子集为MUX故障子集,每个MUX故障子集有4个固定型输入故障、2个固定型配置故障和2个翻转型配置故障,输入输出模块故障集还包括输入输出模块4w个固定型输出故障。
实际上,由于配置的选择作用,对于功能模块来说,其能够影响细胞输出的前端电路故障约占其故障总数的25%,因此功能模块双模冗余检测故障检测率如式(7)所示,基因存储模块编码检测故障检测率如式(8)所示。
![]() | (7) |
![]() | (8) |
随着胚胎电路阵列规模的增加,这2种细胞局部检测的故障检测率都会下降,功能模块双模冗余检测故障检测率不超过66%,基因存储模块编码检测故障检测率不超过53%,但联合编码故障检测率可以达到100%。
对于胚胎电子细胞检测模块故障集中的单个故障,如果胚胎电子细胞输入码字空间中至少存在一个输入码字能够使状态信息输出故障信号,则检测模块对于这个故障就是可自检的。故障自检率为
![]() | (9) |
式中:nSFS为检测模块故障集中故障的总数;nSDF为检测模块可自检的故障个数;fSDR为故障可自检率。联合编码故障自检率可以达到100%。
3.2 硬件资源消耗 以MOS管为指标对采用联合编码自检的胚胎电子细胞进行硬件资源消耗评估,数字电路中常见逻辑单元消耗的硬件资源[19]如表 3所示。
表 3 基本逻辑单元的硬件资源消耗 Table 3 Hardware consumption of basic logic units
基本逻辑单元 | MOS管个数 |
NAND | 4 |
AND | 4 |
NOR | 4 |
OR | 6 |
NXOR | 9 |
XOR | 9 |
DFF | 24 |
表选项
对于地址产生模块编码检测电路来说,硬件资源消耗包括2部分:①基因存储模块中存储校验基因的硬件资源消耗;②对地址输出的处理电路的硬件消耗。为方便计算,假设编码方法采用的除数为2d-1,则校验基因长度和地址输出处理电路的编码输出个数均为d。需要d位全加器的个数nd-fa为
![]() | (10) |
另外,还需要d个异或门和d-1个与门,消耗MOS管个数为
![]() | (11) |
输入输出模块检测电路硬件资源消耗分为输入编码电路和输出编码电路2部分,其中,输入编码电路又分为转接输入信号编码电路和功能信号输入编码电路2部分。
对于转接输入信号编码电路,其每个输入对应2位校验基因,因此,输入信号转接校验基因长度为8w位。为简化校验电路,先针对各组输入分别设计校验运算电路,每组校验运算电路使用与门8个,异或门2个,1位半加器2个,1位全加器2个和2位全加器1个。对各组3位全加器输出的berger校验信息进行剩余码编码需要d位全加器的个数n′d-fa为
![]() | (12) |
同理,还需要d个异或门和d-1个与门,消耗MOS管的个数为
![]() | (13) |
功能信号输入编码检测电路需要增加功能校验基因16位,时序校验基因1位,功能信号余数校验基因d位,输入筛选基因为4w位,筛选部分需要与门4w个,功能校验检测部分需要异或门的个数为4w,余数校验部分需要1个DFF,1个2选1数据选择器,d个与门,MOS管消耗个数共计
![]() | (14) |
输入输出模块输出编码电路每组输出需要1位半加器2个和1位全加器1个,进行剩余码编码需要d位全加器的个数为
![]() | (15) |
另外,还需要d个非门,共计消耗MOS管个数n″′MOS为
![]() | (16) |
TRC级联检测部分需要TRC电路个数为2d-1,MOS管个数为72d-36。
选择不同输入输出模块宽度和剩余码模的胚胎电子细胞与经典胚胎电子细胞的硬件资源消耗比如表 4所示。
表 4 不同输入输出模块宽度和剩余码模的胚胎电子细胞与经典胚胎电子细胞硬件资源消耗比 Table 4 Hardware consumption ratio of embryonic electronic cell with different I/O router widths and residue code modules to classical embryonic electronic cell
输入输出模块宽度 | 胚胎电子细胞与经典胚胎电子细胞硬件资源消耗比/% | ||
剩余码模为1 | 剩余码模为3 | 剩余码模为7 | |
2 | 193 | 197 | 201 |
3 | 197 | 201 | 204 |
4 | 201 | 204 | 207 |
表选项
由表 4可以看出,随着输入输出模块宽度和剩余码模的增大,胚胎电子细胞检测模块的硬件资源消耗也会增大,但增长幅度并不大。因此,联合编码自检方法对于胚胎电子细胞,特别是输入输出模块宽度较小的胚胎电子细胞来说较为适用。
4 仿真实验 仿真实验选择s27电路作为目标电路。s27电路是北卡罗来纳州微电子中心(Microelectronics Center of North Carolina,MCNC)发布的标准测试电路中的时序逻辑电路,其有4个输入,1个输出。将s27电路映射到3×4胚胎电子阵列,工作细胞有6个,空闲细胞有6个,输入输出模块宽度为2。s27电路映射结果如图 7所示。图中:I0、I1、I2和I3为目标电路s27的4个输入端,O为s27电路的输出端,C细胞为空闲细胞,N细胞为工作细胞,D细胞为具有输出延时信号功能的细胞。为降低硬件资源消耗剩余码的模选择3,则各细胞基因如表 5所示。
![]() |
图 7 s27电路基于胚胎阵列的映射结果 Fig. 7 s27 circuit mapping results based on embryonic array |
图选项 |
表 5 s27电路各胚胎电子细胞的基因 Table 5 Gene of embryonic electronic cells of s27 circuit
细胞坐标 | 基因 |
(0, 0) | 1_8515_610F_82_7_020C_3C0_0899 |
(0, 1) | 0_5542_9466_99_4_004E_13B_FDF0 |
(0, 2) | 2_5555_6996_0A_0_0000_649_0000 |
(1, 0) | 1_5555_6996_00_0_0000_000_0000 |
(1, 1) | 0_1608_E1EE_4D_B_082F_616_8878 |
(1, 2) | 2_5150_966B_8B_4_C0B3_EC1_FFFD |
(2, 0) | 1_5555_6996_0A_0_0000_649_0000 |
(2, 1) | 0_5555_6996_00_0_0000_000_0000 |
(2, 2) | 2_6454_F08E_84_4_1430_E89_9918 |
(3, 0) | 1_5450_E996_00_7_30F0_4BF_8000 |
(3, 1) | 2_5555_6996_00_0_0000_000_0000 |
(3, 2) | 3_5555_6996_00_0_0000_000_0000 |
表选项
对电路进行故障注入实验,分别在每个细胞的不同位置注入故障,记录各个模块的故障检测情况和自检模块的故障自检情况,计算不同模块的故障检测率fDR和自检模块的自检率fSDR。仿真结果如表 6所示。
表 6 s27电路各胚胎电子细胞的故障检测率 Table 6 Fault detection rate for embryonic electronic cells of s27 circuit
坐标 | fDR/% | fSDR/% | |||||
LUT | DFF | 输入输出模块 | 地址产生模块 | 基因存储模块 | 自检模块 | ||
(0, 0) | 100 | 100 | 100 | 100 | 100 | 100 | |
(0, 1) | 100 | 100 | 100 | 100 | 100 | 100 | |
(0, 2) | 100 | 100 | 100 | 100 | 100 | ||
(1, 0) | 100 | 100 | 100 | 100 | 100 | ||
(1, 1) | 100 | 100 | 100 | 100 | 100 | ||
(1, 2) | 100 | 100 | 100 | 100 | 100 | 100 | |
(2, 0) | 100 | 100 | 100 | 100 | 100 | ||
(2, 1) | 100 | 100 | 100 | 100 | 100 | ||
(2, 2) | 100 | 100 | 100 | 100 | 100 | ||
(3, 0) | 100 | 100 | 100 | 100 | 100 | ||
(3, 1) | 100 | 100 | 100 | 100 | 100 | ||
(3, 2) | 100 | 100 | 100 | 100 | 100 |
表选项
总体上看,剩余码/berger码联合编码自检方法的故障检测率非常高,可以达到100%,但这只是针对胚胎电子细胞输出端可观测的故障,对于某些在输出端不可观的故障,检测电路将输出正常信号,此时,虽然胚胎电子细胞内部可能存在故障,但是并不影响胚胎电子细胞的正常功能,这种情况认为胚胎电子细胞是无故障的。另外,联合编码自检方法中胚胎电子细胞自检模块的自检率比较高,基本可以达到100%。
联合编码自检方法检测模块的硬件资源消耗约等于经典胚胎电子细胞的硬件资源消耗。由于采用的输入输出模块的宽度为2,剩余码模为3,此时胚胎电子细胞的硬件资源消耗相当于没有采用检测方法的经典细胞的197%。对于采用hamming码基因存储模块编码检测方法的细胞,每条基因45位,需要增加6位校验位,其硬件消耗约为经典细胞的113%。功能模块双模冗余需要增加16位LUT功能配置校验基因,其硬件资源消耗约为经典细胞的136%。
分别将3种检测方法应用于实验电路中的不同细胞,计算3种方法对每个细胞的故障检测率,再取平均值作为检测方法对于整个胚胎电路的故障检测率。3种检测方法的检测性能对比如表 7所示。
表 7 不同检测方法的检测性能 Table 7 Detection performance of different check methods
检测方法 | 平均故障检测率/% | 硬件资源消耗比/% |
基因存储模块编码检测 | 51 | 113 |
功能模块双模冗余 | 65 | 136 |
联合编码自检方法 | 100 | 197 |
表选项
通过表 7可以看到,联合编码自检方法硬件资源消耗虽然较大,但故障检测率可以达到100%,这主要是由于出现在胚胎电子细胞输入输出模块转接部分和地址产生模块的故障被检测出来,提升了联合编码自检方法的检测率。联合编码自检方法可以稳定检测出影响胚胎电子细胞输出的故障,检测性能较好。
5 结论 本文设计实现了基于剩余码/berger码联合编码的胚胎电子细胞自检方法,并对自检方法的故障检测率和硬件资源消耗进行了分析,方法优点总结如下:
1) 联合编码自检方法对电路输入的规模没有限制,可以实现不同规模的胚胎电子细胞编码设计,设计流程与具体的电子细胞结构及阵列结构无关,可适用于多种修复策略,避免了细胞间故障检测带来的布局布线问题,通用性强。
2) 联合编码利用信息冗余,在硬件资源消耗没有明显增长的情况下,使用尽可能少的电路元件,避免了细胞检测的延时大幅增加。
3) 联合编码自检方法的故障检测率很高,在本文实验中,对于影响胚胎电子细胞输出的固定型故障和翻转型故障检测率可以达到100%。
总的来说,基于剩余码/berger码联合编码的胚胎电子细胞自检方法,虽然在电路硬件资源消耗方面有所增加,但是设计方法简单,可在线检测故障,既能检测细胞自身故障,又能进行检测电路的自检,提高了检测的故障覆盖率。
参考文献
[1] | 王涛, 蔡金燕, 孟亚峰, 等. 胚胎电子细胞阵列中空闲细胞的配置[J]. 航空学报, 2017, 38(4): 320266. WANG T, CAI J Y, MENG Y F, et al. Configuration of idle cells in embryonic electronic cell array[J]. Acta Aeronautica et Astronautica Sinica, 2017, 38(4): 320266. (in Chinese) |
[2] | ANGE D, SIPPER M, MARCHAL P. Embryonic electronics[J]. BioSystems, 1999, 51(3): 145-152. DOI:10.1016/S0303-2647(99)00052-0 |
[3] | 张砦, 王友仁. 应用设计过程的胚胎硬件细胞单元粒度优化方法[J]. 航空学报, 2016, 37(11): 3502-3511. ZHANG Z, WANG Y R. Cell granularity optimization method of embryonics hardware in application design process[J]. Acta Aeronautica et Astronautica Sinica, 2016, 37(11): 3502-3511. (in Chinese) |
[4] | 李岳, 王南天, 钱彦岭. 原核细胞仿生自修复电路设计[J]. 国防科技大学学报, 2012, 34(3): 154-157. LI Y, WANG N T, QIAN Y L. Self-healing circuit design inspired by prokaryotic cell[J]. Journal of National University of Defense Technology, 2012, 34(3): 154-157. DOI:10.3969/j.issn.1001-2486.2012.03.030 (in Chinese) |
[5] | 徐佳庆, 窦勇, 吕启, 等. 电子组织: 一种具有自适应能力的可重构仿生硬件结构[J]. 计算机研究与发展, 2012, 49(9): 2005-2017. XU J Q, DOU Y, LV Q, et al. eTissue: An adaptive reconfigurable bio-inspired hardware architecture[J]. Journal of Computer Research and Development, 2012, 49(9): 2005-2017. (in Chinese) |
[6] | BRADLEY D, ORTEGA-SANCHEZ C, TYRRELL A M.Embryonics+immunotronics: A bio-inspired approach to fault tolerance[C]//Proceedings of 2nd NASA/DoD Workshop on Evolvable Hardware.Piscataway: IEEE Press, 2000: 215-223. |
[7] | 李丹阳, 蔡金燕, 孟亚峰, 等. 基于双模冗余的胚胎电子细胞阵列在线故障检测[J]. 北京航空航天大学学报, 2017, 43(6): 1112-1122. LI D Y, CAI J Y, MENG Y F, et al. Online fault detection based on dual modular redundancy for embryonics array[J]. Journal of Beijing University of Aeronautics and Astronautics, 2017, 43(6): 1112-1122. (in Chinese) |
[8] | MANGE D, SANCHEZ E, STAUFFER A, et al. Embryonics: A new methodology for designing field-programmable gate arrays with self-repair and self-replicating[J]. IEEE Transactions on Very Large Scale Integration(VLSI) Systems, 1998, 6(3): 387-399. DOI:10.1109/92.711310 |
[9] | BRADLEY D, TYRRELL A M.The architecture for a hardware immune system[C]//Proceedings of 3rd NASA/DoD Workshop on Evolvable Hardware.Piscataway: IEEE Press, 2001: 193-200. |
[10] | PRODAN L, UDRESCU M, VLADUTIU M, et al.Self-repairing embryonic memory arrays[C]//Proceedings of 6th NASA/DoD Conference on Evolvable Hardware.Piscataway: IEEE Press, 2004: 130-137. |
[11] | YANG S S, WANG Y R.A new self-repairing digital circuit based on embryonic cellular array[C]//Proceedings of 2006 8th International Conference on Solid State and Integrated Circuit Technology.Piscataway: IEEE Press, 2006: 1997-1999. |
[12] | 郝国锋, 王友仁, 张砦, 等. 可重构硬件芯片级故障定位与自主修复方法[J]. 电子学报, 2012, 40(2): 384-388. HAO G F, WANG Y R, ZHANG Z, et al. In-chip fault localization and self-repairing method for reconfigurable hardware[J]. Acta Electronica Sinica, 2012, 40(2): 384-388. (in Chinese) |
[13] | FUJIAWARA H. Logic testing and design for testability[M]. Cambridge: MIT Press, 1985: 1-10. |
[14] | WANG L T, WU C W, WEN X Q. VLSI test principles and architectures: Design for testability[M]. Amsterdam: Elsevier, 2006: 37-104. |
[15] | 王继业. 数字电路在线故障检测方法研究[D]. 哈尔滨: 哈尔滨工业大学, 2012: 2-17. WANG J Y.Research on on-line detecting methods of faults reside in digital circuits[D].Harbin: Harbin Institute of Technology, 2012: 2-17(in Chinese). |
[16] | ABRAMOVICI M, BREUER M A, FREDMAN A D. 数字系统测试和可测性设计[M]. 北京: 清华大学出版社, 2004: 4-175. ABRAMOVICI M, BREUER M A, FRIEDMAN A D. Digital systems testing and testable design[M]. Beijing: Tsinghua University Press, 2004: 4-175. (in Chinese) |
[17] | 李丹阳, 蔡金燕, 孟亚峰, 等. 基因循环存储模块的SEU自检[J]. 半导体技术, 2016, 41(4): 312-318. LI D Y, CAI J Y, MENG Y F, et al. SEU self-checking of gene cyclic memory module[J]. Semiconductor Technology, 2016, 41(4): 312-318. (in Chinese) |
[18] | 邢克飞, 杨俊, 王跃科. FPGA运算单元单粒子错误的Berger/余数联合结果校验法[J]. 宇航学报, 2011, 32(9): 2045-2050. XING K F, YANG J, WANG Y K. A Berger and remainder combined result checking approach for errors in FPGA's operation units induced by single event effect[J]. Journal of Astronautics, 2011, 32(9): 2045-2050. DOI:10.3873/j.issn.1000-1328.2011.09.025 (in Chinese) |
[19] | HILDER J A, WALKER J A, TYRRELL A M.Optimising variability tolerant standard cell libraries[C]//Proceedings of 2009 IEEE Congress on Evolutionary Computation.Piscataway: IEEE Press, 2009: 2273-2280. |