利用冗余核的MPSoC故障检测方法

时间:2022-09-06 09:27:10

利用冗余核的MPSoC故障检测方法

摘要:在处理器可靠性研究中,为在容错机制部署与容错开销之间达到较好的平衡,提出一个利用冗余核进行检测代码计算任务的多处理器片上系统(MPSoC)故障检测方法。该方法利用多核系统天然的冗余特性,将用于进行故障检测的冗余代码中的大部分计算任务转移到冗余核中进行,检测软件控制流的正确性和数据的一致性,实现MPSoC的故障检测。所提方法无需添加额外硬件,通过指令级的冗余进行故障检测,可满足系统可靠性需求,同时又能减少面积开销,在性能方面和花销上做到有效的权衡。在一个MPSoC上对所提方法进行验证实验,通过故障注入,运行多个基准程序进行有效性验证,并将所提方法与几种具有代表性的软件检测硬件故障方法故障检测能力、面积、内存以及性能花销等方面进行比较,实验结果证明所提方法有效且能够在性能和花销之间取得较好的权衡。

关键词:多处理器片上系统;可靠性;故障检测;冗余核;检测代码

中图分类号: TP302.8文献标志码:A英文标题

0引言

除一些关键的安全领域之外,目前很多计算系统设计都是在底层硬件无错的假设下进行的。但随着技术的进步,越来越多的CMOS器件被集成到一个芯片上构成片上系统(System on Chip, SoC)。由于处理工艺、设计过程、温度以及老化等一些物理原因,产生电子漂移或信号附加噪声,导致系统可能输出错误的运行结果,使得硬件故障的影响更多地在系统层面显现出来[1-4]。

文献[1]指出,65nm及其以下的半导体器件生产将会导致工艺变异,其中晶体管的沟道长度,晶体管沟道和阈值电压之间的绝缘厚度等会发生显著的变化。文献[2]指出,由于更低的电压和更小的开关电容,意味着每更新一代COMS技术,每个位的电荷量将会降低,意味着存储设备更敏感, 触发器软错误将增加。Shivakumare等在文献[3]中,对组合逻辑软错误率(Soft Error Rate, SER)进行建模量化,预测从1992年到2011年每个芯片上未保护的内存元件的SER将会增长9个数量级。每一代新的技术,每个逻辑状态的错误率将以8%的速度增长。对于16nm级的芯片而言,错误率几乎为180nm级的100倍[4]。

如上所述,随着芯片制造技术的进步,单个芯片的集成度日益增加,硬件发生故障的可能性大幅度增加,底层硬件可靠的假设已经不再存在;与此同时,作为被广泛应用于特定系统或高性能计算当中的多处理器片上系统(MultiProcessor SystemonChip, MPSoC)而言,其可靠性的需求将日益增加。因此,对MPSoC采取有效的容错机制,是研究和设计嵌入式多核系统必要的考量内容。其中,故障的检测是容错机制的重要环节,因而成为值得关注的问题。

本文提出一种面向多处理器片上系统的故障检测方法——利用冗余核完成检测代码中的计算的方法(Calculation task of detecting Code on Redundancy Core, CCRC)。该方法采用指令冗余的方法实现对控制流和数据一致性的检测,将故障检测算法中,较为繁重的计算任务,转移到冗余核中进行,而降低对被检测核的计算性能的影响。

第1期 唐柳等:利用冗余核的MPSoC故障检测方法计算机应用 第34卷1相关工作

根据在系统层面中的分布,片上系统(SoC)故障检测方法可分为基于硬件的方法和基于软件的方法两类。基于硬件的方法主要基于设计可靠系统架构的思路,例如,设计定制电路或者是增加一些新的IP核以达到加强系统可靠性的目的[5-8];这种方法对计算性能的影响较小但是需要增加额外的硬件,面积开销增大,且缺少灵活性难以移植。基于软件的方法通过在微处理器中的可执行代码中增加检测代码[9-11,14-20]以检测软件控制流及数据一致性。其中比较有代表性的是ECCA(Enhanced ControlFlow Checking using Assertion)[20]方法,在程序中插入断言,并用软件对断言进行判断。CFCSS(Control Flow Checking by Software Signatures)[10]是一种广泛使用的基于签名的检测方法,可以对大部分控制流错误进行有效检测,该方法通过编译向源代码中插入大量检测指令。基于软件的方法对设计的干扰小,可用于大多数系统,不需要修改底层硬件,易于使用,但代码长度增加,计算性能降低。除此之外,将硬件和软件的方法混合的思路也值得关注[12-13]。其中文献[12]将基于软件的固化方法和附加硬件电路结合,将故障检测功能在软件中进行,大量的计算任务转移到外部硬件(IIP核)中执行。这种混合检测技术适用于单核SoC系统,能有效减少增加的检测代码对计算性能的影响,但需要特别设计专用的IIP核,灵活性和通用性受到严格限制。

本文提出面向MPSoC的CCRC故障检测方法,利用MPSoC天然多核冗余特性,将指令冗余与多核系统中冗余核相结合,在被检测核的应用程序中加入冗余代码用于故障检测,其中冗余代码中较为繁重的计算任务部分,被转移到冗余核上进行,从而降低对被检测核计算性能的影响。冗余核是MPSoC硬件体系结构的一部分,不产生设计另外的特定硬件模块辅助检测的问题。该检测方法灵活性和通用性增加,同时与纯软件方法相比,对性能和代码花销的影响也显著降低。

2CCRC故障检测方法

CCRC方法结合了控制流正确性检测和数据一致性检测。

2.1控制流检测

本文采用的控制流检测技术基于CCFSS方法[11]的基础之上,其基本思路是:将程序划分为各个基本程序块,然后给每个程序块分配一个标签。在应用程序中按照一定的转换规则加入一些检测代码,这些附加的检测代码对每个程序块的入口/出口标签进行比较计算,判断程序的执行流程是否按预定流程执行。

4结语

本文提出了一个利用冗余核的MPSoC故障检测方法,将基于软件的方法与MPSoC多核冗余特性结合实现故障检测,并将该技术在Xilinx Virtex6 FPGA上进行评估。评估结果表明,该方法的主要优点有:1)适用于MPSoC设计流程,不需要对系统硬件结构进行任何修改;2)冗余核与处理器上的执行代码之间是完全独立的,不受不同应用程序代码的影响,灵活性强,易于使用,对不同的系统应用不需要额外的设计专用IP核;3)该方法能有效地检测出MPSoC上的硬件错误,提高检测能力;4)冗余核的面积花销占整个系统所提供的FPGA资源的比例较小,对性能的影响、内存的开销比其他纯软件方法低,因此有其独特的优势。

本文方法的验证实验是在四个核的总线型MPSoC上实现的,多核系统的处理器核数量上升后,多核与冗余核之间的通信占用的资源会增大,因此,当系统中核的数量上升后,CCRC方法对性能的影响会加大,需要在后续进一步地研究其扩展性问题。同时,本实验只采用嵌入式自动化与电子测试基准中三个应用程序进行验证,未来考虑采用大量测试程序进一步验证该方法的有效性。

参考文献:

[1]CHIANG C, KAWA J. Design for manufacturability and yield for nanoscale CMOS [M]. Berlin: SpringerVerlag, 2007.

[2]SEIFERT N. Extending Moores law into the next decade — the SER challenge[C]// IOLTS 2006: Proceedings of the 12th IEEE International OnLine Testing Symposium. Piscataway, NJ: IEEE Press, 2006: 7.

[3]SHIVAKUMAR P, KISTLER M, KECKLER S W, et al. Modeling the effect of technology trends on the soft error rate of combinational logic[C]// Proceedings of the 2002 International Conference on Dependable Systems and Networks. Piscataway, NJ: IEEE Press, 2002: 389-398.

[4]SAGGESE G P, WANG N J, KALBARCZYK Z T, et al. An experimental study of soft errors in microprocessors [J]. IEEE Micro, 2005, 25(6): 30-39.

[5]HEBERT N, ALMEIDA G M, BENOIT P, et al. A costeffective solution to increase system reliability and maintain global performance under unreliable silicon in MPSoC[C]// Proceedings of the 2010 IEEE International Conference on Reconfigurable Computing and FPGAs. Piscataway, NJ: IEEE Press, 2010: 346-351.

[6]CHO H, LEEM L, MITRA S. ERSA: error resilient system architecture for probabilistic applications [J]. IEEE Transactions on ComputerAided Design of Integrated Circuits and Systems, 2012, 31(4): 546-558.

[7]PHAM H M, DEVAUX L, PILLEMENT S. Re2DA: reliable and reconfigurable dynamic architecture [C]// Proceedings of the 2011 IEEE 6th International Workshop on Reconfigurable Communicationcentric SystemsonChip. Piscataway, NJ: IEEE Press, 2011: 1-6.

[8]OBERMAISSER R, HOFTBERGER O. Fault containment in a reconfigurable multiprocessor systemonachip[C]// Proceedings of the 2011 IEEE International Symposium on Industrial Electronics. Piscataway, NJ: IEEE Press, 2011: 1561-1568.

[9]REIS G A, CHANG J, VACHHARAJANI N, et al. SWIFT: software implemented fault tolerance[C]// CGO 2005: Proceedings of the 2005 International Symposium on Code Generation and Optimization. Washington, DC: IEEE Computer Society, 2005: 243-254.

[10]OH N, SHIRVANI P P, McCLUSKEY E J. Controlflow checking by software signatures [J]. IEEE Transactions on Reliability, 2002, 51(1): 111-122.

[11]GOLOUBEVA O, REBAUDENGO M, REORDA M S, et al. Softerror detection using control flow assertions[C]// DFT 2003: Proceedings of the 18th IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems. Washington, DC: IEEE Computer Society, 2003: 581-588.

[12]BERNARDI P, BOLZANI L M V, REBAUDENGO M, et al. A new hybrid fault detection technique for systemsonachip [J]. IEEE Transactions on Computers, 2006, 55(2): 185-198.

[13]GONG R, CHEN W, LIU F, et al. Control flow checking and recovering by compiler signatures and hardware checking [J]. Journal of Computer Research and Development, 2009,46(2): 345-351.(龚锐, 陈微, 刘芳, 等. 一种软硬件结合的控制流检测与恢复方法[J]. 计算机研究与发展, 2009, 46(2): 345-351.)

[14]WENSLEY J H, GREEN M W, LEVITT K N, et al. The design, analysis, and verification of the SIFT fault tolerant system[C]// Proceedings of the 2nd International Conference on Software Engineering. Washington, DC: IEEE Computer Society, 1976: 458-469.

[15]OH N, MITRA S, McCLUSKEY E J. ED4I: Error detection by diverse data and duplicated instructions [J]. IEEE Transactions on Computers, 2002, 51(2): 180-199.

[16]NICOLESCU B, VELAZCO R, SONZAREORDA M, et al. A software fault tolerance method for safetycritical systems: effectiveness and drawbacks[C]// Proceedings of the 15th Symposium on Integrated Circuits and Systems Design. Piscataway, NJ: IEEE Press, 2002: 101-106.

[17]OHLSSON J, RIMEN M. Implicit signature checking[C]// FTCS25: Proceedings of the TwentyFifth International Symposium on FaultTolerant Computing. Washington, DC: IEEE Computer Society, 1995: 218-227.

[18]YAU S S, CHEN F. An approach to concurrent control flow checking [J]. IEEE Transactions on Software Engineering, 1980,6(2):126-137.

[19]CHEYNET P, NICOLESCU B, VELAZCO R, et al. Experimentally evaluating an automatic approach for generating safetycritical software with respect to transient errors[J]. IEEE Transactions on Nuclear Science, 2000,47(6):2231-2236.

[20]ALKHALIFA Z, NAIR V S S, KRISHNAMURTHY N, et al. Design and evaluation of systemlevel checks for online control flow error detection[J]. IEEE Transactions on Parallel and Distributed Systems, 1999,10(6):627-641.

上一篇:基于TRAP—4的连续数据保护系统 下一篇:ARIRANG—256的Biclique攻击