胚胎电路自检测研究综述
2018-10-13孟亚峰
王 博, 孟亚峰
(陆军工程大学石家庄校区,石家庄 050003)
0 引言
随着工艺技术的进步,电子系统得到广泛的应用,其可靠性问题也受到越来越多的关注。由于电路集成度的提高,芯片的阈值电压减小、噪声容限下降、运行频率增加,超大规模集成电路(VLSI)对电磁环境越来越敏感[1]。在航空航天、深海探测等无人极端环境中,电路工作环境复杂多变,电子系统难以进行人工维护,装备一旦发生故障,不能自主修复,会造成灾难性的后果,这对电子系统设计提出了挑战。
生物体具有强大的适应性和自愈能力,其自修复机制为电路设计提供了新的思路。胚胎电路是一种模仿多细胞生物生长和发育机理的数字集成电路,具有自组织、自诊断和自修复的性能[2]。该电路由结构相同的电路模块单元(胚胎电子细胞)相互连接构成胚胎阵列,当一个或多个细胞发生故障时,电路对胚胎电子细胞进行检测,控制冗余细胞替代故障细胞完成相应功能,实现故障自修复。
经过国内外学者的不懈研究,初步建立了胚胎电路的理论框架,取得了一些成果。国外研究起步较早,也较为成熟,主要研究机构有瑞士联邦工学院、英国约克大学等。瑞士联邦工学院设计了BioWatch[3]和BioWall[4],英国约克大学研究了仿生人工组织UNITRO-NICS[5]并设计了SABRE[6]结构,欧洲多国联合研制了POEtic[7-9]芯片。胚胎电路思想被引进国内以来,多个研究团队对其在实际工程中的应用进行了多方面的研究,进行了模2增量计数器[10]和一位全加器[11]的FPGA验证,基于多路选择器对胚胎电路进行了实现[12]。
总之,胚胎电路能够实现电子系统的自诊断和自修复,具有较高的可靠性,拥有良好的发展前景。但是,现有的关于胚胎电路的研究多关注其自修复能力,研究内容集中于细胞结构、阵列结构、自修复策略和功能分化,有关胚胎电路自检测的方法存在故障覆盖率低、硬件资源消耗大、检测实时性差、设计复杂、难以实现基因配置等问题,研究成果较为有限,有待进一步探索。
1 胚胎电路自检测技术分类及研究现状
1.1 胚胎电路基本构成
胚胎电路由胚胎电子细胞组成二维阵列[13],每个电子细胞由地址产生模块、基因存储模块、功能模块、自检模块、输入输出模块构成。
胚胎电子细胞根据地址产生模块计算其在胚胎电路阵列中的坐标。地址产生模块将坐标输入基因存储模块,调用对应坐标基因。基因存储模块存储胚胎电路中所有细胞的基因,根据从地址产生模块输入的坐标,表达坐标所对应的基因,并将其分别送到功能模块、自检模块和输入输出模块。功能模块根据得到的基因执行特定的逻辑功能。输入输出模块根据从基因存储模块输入的基因控制细胞与周围细胞的连接。自检模块根据得到的基因对胚胎电子细胞进行故障检测,发现故障时发出细胞故障信号并移除故障细胞[14-16]。
胚胎电路阵列结构如图1所示,胚胎电子细胞结构如图2所示。
图1 胚胎电路阵列结构Fig.1 The structure of embryonic array
图2 胚胎电子细胞结构Fig.2 The structure of embryonic cell
1.2 胚胎电路自检测技术研究现状
数字集成电路中常见的故障类型有4种:固定型故障、暂态故障、桥接故障和时滞故障。其中,固定型故障在实际电路中出现最多,占故障总数的90%以上。暂态故障,特别是其中的瞬态故障对于胚胎电路的可靠性影响较大[17]。因此,胚胎电路的故障检测主要针对这两种故障类型。
胚胎电路故障自检测即当胚胎电路不能正常工作时,检测模块及时发现故障,并将故障信号传递给其他细胞和本细胞其他模块的过程。故障自检测是胚胎电路实现其自修复功能的前提,故障检测的准确与否将直接决定电路能否实现自修复,从而影响着胚胎电路的可靠性。目前,胚胎电路自检测主要是将已有的数字电路在线实时自检测技术应用于胚胎电路。按照采用的故障检测技术,可以将胚胎电路自检测分为双模冗余自检测、在线内建自测试(BIST)自检测和编码检错自检测3种。
1) 双模冗余自检测。
双模冗余自检测是目前胚胎电路采用最多的故障检测技术,大多被用来对细胞局部如基因存储模块、功能模块等进行检测。首先为工作模块增加一个完全相同的冗余模块,然后对两个相同模块的输出进行比较。如果二者相同,则系统工作正常;反之,说明系统故障。双模冗余技术具有检测实时性好、故障覆盖率高、灵活性好等优点,但由于其增加了电路元件的备份,导致系统的硬件消耗大大增加,降低了检测功能对于硬件的利用效率[18]。
英国约克大学的BRADLEY和TYRRELL等研究人员受到生物免疫系统的启发,将免疫机制引入胚胎电子系统,对细胞检测机制进行了深入研究,提出了胚胎电子-免疫的基本结构[19]。这种结构由胚胎细胞和免疫细胞构成网络,实际上是采用双模冗余互检技术,通过设计免疫细胞并对其进行训练,使得免疫细胞存有胚胎细胞正确的配置基因,然后采用细胞间实时互检,将周围胚胎细胞的基因与免疫细胞的存储进行比较,完成对胚胎细胞基因存储模块的检测。
国内王友仁教授的团队对互连资源的自检测和可配置逻辑块的自检测进行了研究。对于互连资源,采用对细胞输入端信号和输入来源细胞输出端进行比较的自诊断方法。对于可配置逻辑块,提出利用计数器进行控制,通过改进双模冗余结构,让测试查找表(LUT)与被测LUT执行相同的逻辑功能,用异或门比较二者的输出结果,判断是否发生故障,从而实现逻辑块内部在线循环自检测[20-21]。
蔡金燕教授带领团队对总线结构的胚胎电子细胞间互检进行了研究。结合双模冗余和LUT设计了总线结构胚胎电路的检测细胞[22]。通过将周围胚胎细胞的输入送给检测细胞,把检测细胞LUT输出的结果与胚胎细胞功能模块的实际输出进行比较,完成对周围多个胚胎细胞功能模块的实时检测。
2) BIST自检测。
BIST是在芯片中加入自测试电路,通过对其进行控制,向被测电路施加测试向量,实现对电路的故障检测[23-24]。BIST这种检测技术故障覆盖率较高,比双模冗余检测的硬件消耗小,但由于它主要是对处于空闲状态或间歇状态下的电路进行检测,难以针对连续工作的电路,因而检测实时性较差,无法检测胚胎电路的暂态故障。
CANHAM和TYRRELL通过结合分子级BIST的新型有限状态机,利用否定选择算法模仿人体免疫系统自我/非我识别机制,实现对胚胎电路的检测。建立细胞-分子两级结构,在细胞级集总设置控制模块,采用贪婪算法确定测试集,用BIST技术生成测试向量,将故障或不正常信号视为“非我”,诊断和定位胚胎电路中的故障,提高系统的容错能力[25-26]。
3) 编码检错自检测。
编码检错技术利用检错码,通过对电路的输出进行编码并建立码字空间来比较电路编码输出的结果和校验信息是否一致。若二者结果不一致,则系统存在故障;否则,系统无故障。目前编码检错技术主要有针对存储结构的编码检错和针对功能电路的全自检编码两种,前者主要采用Hamming码[27-28],后者大多采用Berger码。这种方式检测实时性较好,既可以检测固定型故障,也可以检测暂态故障,硬件消耗也较小,但电路设计相对复杂。
文献[29]针对已有检测方法无法检测胚胎电路基因的问题,将Hamming码检错技术与胚胎电路结合,进行配置信息存储的检测。采用码距为3的Hamming码,每4位基因添加3位校验信息,将基因与校验信息分别存储并进行比较,从而使其具有对1位信息错误的检测能力,实现了对胚胎电路中细胞基因存储模块软故障的检测。
文献[30]针对由单粒子翻转(SEU)和单粒子瞬态脉冲(SET)造成的故障,采用编码检测与时间冗余相结合的检错思路,设计了具有仿生自修复能力的基本逻辑单元。利用Berger码编码检测方法检测LUT故障,完成对电路组合逻辑部分的检测;通过时间冗余机制检测D触发器,完成对电路时序逻辑部分的检测[30]。
2 面临的问题及未来的研究方向
2.1 面临的问题
目前,胚胎电路的故障自检测技术研究取得了一定的成果,但仍不成熟,面临着一系列问题,限制了胚胎电路的发展。
1) 检测模块故障覆盖率低。目前的胚胎电路自检测技术大多针对胚胎电子细胞的局部,如逻辑功能模块、连接资源和基因存储模块的故障进行检测,没有覆盖整个细胞,检测电路自身的故障也难以诊断,不能较好地实现故障检测全覆盖。
2) 检测模块导致电路硬件资源消耗增大。由于电路总体硬件资源的限制和保障修复资源的需要,应尽可能降低检测模块消耗的硬件资源。目前胚胎电路自检测技术仍然以双模冗余为主,这种冗余容错的方式通过备份元件比较输出来实现故障检测,资源消耗较大。
3) 检测模块增加了电路设计的复杂性。编码检错技术码字空间的建立和BIST测试集的确定需要很大的工作量,增加检测细胞和利用空闲细胞检测会使电路的布局布线变复杂,无论是细胞内自检还是细胞间互检都给胚胎电路的设计增加了难度。
4) 检测模块难以自动配置。目前的检测技术大多需要依据电路的逻辑功能确定真值表,从而进行设计,电路的功能不同,检测设计也不相同。这使得检测模块对电路具体功能的依赖性过强,失去了通用性,难以方便地通过基因进行配置。
2.2 未来的研究方向
已有的胚胎电路故障检测技术相对于实际工程应用的要求还有不小差距,应当对胚胎电路自检测技术进一步深入研究。未来的研究方向主要有以下几方面。
1) 探索基于仿生机制的新型胚胎电路自检测技术。可以借鉴生物体细胞凋亡的机制,通过基因控制胚胎电路检测的时机,利用故障预测分析电路的可靠性,在细胞寿命即将结束时由基因控制检测器施加检测向量进行检测,最大限度地减少检测对电路工作的不良影响。
2) 降低检测模块的硬件资源消耗。由于胚胎电路的硬件资源有限,为充分利用硬件资源,可以适当增加观察点,提高电路的可观性,合并和压缩故障集,这样就能够减少电路需要的测试向量,降低硬件消耗,提升检测模块对硬件资源的利用率。
3) 提高检测模块对不同结构胚胎电路的通用性。采用细胞内自检的方式进行检测模块设计,从而摆脱阵列结构变化对检测模块的影响。通过综合运用多种针对细胞局部的检测方式,提高检测模块对不同细胞结构胚胎电路的适应性。
4) 提高胚胎电路自检测技术的故障覆盖率。胚胎电路自修复的特性要求其故障定位精确到具体细胞。为提高对胚胎电路检测的故障覆盖率,应当以胚胎电子细胞作为检测的基本对象,通过对细胞所有的输出采用改进的全自检编码检错,实现对整个细胞检测的全覆盖。
5) 检测电路的模块化设计。通过对电路进行分块能够有效降低检测模块的复杂程度。采用超图分解等电路分块算法,尽可能减小分解后细胞各子电路之间的联系,对分块后的各部分电路逐一进行检测,降低检测的复杂性。
6) 具有基因配置功能的自检模块设计。将检测环节设计纳入整个胚胎电路设计,基于细胞结构设计胚胎电路检测模块,设计细胞输出测试的选通模块,通过基因配置选通模块功能筛去没有实际意义的输出,实现检测模块自动配置,避免检测电路对于具体功能逻辑电路的依赖。
3 总结
胚胎电路自检测是保证胚胎电路自修复能力的前提,实时在线自检测有助于及时准确地发现故障,提高胚胎电路的可靠性。目前,胚胎电路自检测技术仍然是胚胎电路自修复技术研究的一个难点,也是制约胚胎电子系统发展的瓶颈之一,研究故障覆盖率高、受电子细胞结构影响小、通用性强、检测实时性好、硬件资源消耗少、设计结构简单的胚胎电路自检测模块十分必要。如何借鉴生物学的机制机理,将成熟的故障检测方法与自修复技术结合,在已有的经典电路故障诊断方法的基础上改进出高效的胚胎电路自检测技术,是胚胎电子技术研究亟需解决的一个重要问题。