Observability solutions for infield functional test of processor-based systems : a survey and quantitative test case evaluation

The usage of electronic systems in safety-critical applications requires mechanisms for the early detection of faults affecting the hardware while the system is in the field. When the system includes a processor, one approach is to make use of functional test programs that are run by the processor itself. Such programs exercise the different parts of the system, and eventually expose the difference between a fully functional system and a faulty one. Their effectiveness depends, among other factors, on the mechanism adopted to observe the behavior of the system, which in turn is deeply affected by the constraints imposed by the application environment. This paper describes different mechanisms for supporting the observation of fault effects during such in-field functional test, and it reports and discusses the results of an experimental analysis performed on some representative case studies, which allow drawing some general conclusions. The gathered results allow the quantitative evaluation of the drop in fault coverage coming from the adoption of the alternative approaches with respect to the ideal case in which all the outputs can be continuously monitored, which is the typical scenario for test generation. The reader can thus better evaluate the advantages and disadvantages provided by each approach. As a major contribution, the paper shows that in the worst case the drop can be significant, while it can be minimized (without introducing any significant extra cost in terms of test generation and duration) through the adoption of a suitable observation mechanism, e.g., using Performance Counters possibly existing in the system. Suitable techniques to implement fault simulation campaigns to assess the effectiveness of different observation mechanisms are also described.

[1]  Vazgen Melikyan,et al.  Synopsys' open educational design kit: Capabilities, deployment and future , 2009, 2009 IEEE International Conference on Microelectronic Systems Education.

[2]  Paolo Bernardi,et al.  Effective Diagnostic Pattern Generation Strategy for Transition-Delay Faults in Full-Scan SOCs , 2009, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[3]  Matteo Sonza Reorda,et al.  On the Functional Test of Branch Prediction Units , 2015, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[4]  Jian Shen,et al.  Synthesis of Native Mode Self-Test Programs , 1998, J. Electron. Test..

[5]  Dimitris Gizopoulos,et al.  Software-Based Self Test Methodology for On-Line Testing of L1 Caches in Multithreaded Multicore Architectures , 2013, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[6]  Sujit Dey,et al.  Software-based diagnosis for processors , 2002, DAC '02.

[7]  Dimitris Gizopoulos,et al.  Effective software-based self-test strategies for on-line periodic testing of embedded processors , 2004 .

[8]  Paolo Bernardi,et al.  An Efficient Method for the Test of Embedded Memory Cores during the Operational Phase , 2013, 2013 22nd Asian Test Symposium.

[9]  J. Sosnowski,et al.  Improving Software Based Self - Testing for Cache Memories , 2007, 2007 2nd International Design and Test Workshop.

[10]  Giovanni Squillero,et al.  Automatic test program generation: a case study , 2004, IEEE Design & Test of Computers.

[11]  Michail Maniatakos,et al.  On the Impact of Performance Faults in Modern Microprocessors , 2013, J. Electron. Test..

[12]  Matteo Sonza Reorda,et al.  On the functional test of the cache coherency logic in multi-core systems , 2015, 2015 IEEE 6th Latin American Symposium on Circuits & Systems (LASCAS).

[13]  Janusz Sosnowski Software-based self-testing of microprocessors , 2006, J. Syst. Archit..

[14]  Giovanni Squillero,et al.  Automatic test programs generation driven by internal performance counters , 2004, Fifth International Workshop on Microprocessor Test and Verification (MTV'04).

[15]  William Lindsay,et al.  FRITS - a microprocessor functional BIST method , 2002, Proceedings. International Test Conference.

[16]  Laurent Fournier,et al.  Functional verification methodology for microprocessors using the Genesys test-program generator , 1999, DATE '99.

[17]  Paolo Bernardi,et al.  On-line functionally untestable fault identification in embedded processor cores , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[18]  Giovanni Squillero,et al.  Observability solutions for in-field functional test of processor-based systems , 2015, 2015 Conference on Design of Circuits and Integrated Systems (DCIS).

[19]  Dimitris Gizopoulos,et al.  Software-based self-testing of embedded processors , 2005, IEEE Transactions on Computers.

[20]  M. Hatzimihail,et al.  A methodology for detecting performance faults in microprocessors via performance monitoring hardware , 2007, 2007 IEEE International Test Conference.

[21]  Matteo Sonza Reorda,et al.  On-line software-based self-test of the Address Calculation Unit in RISC processors , 2012, 2012 17th IEEE European Test Symposium (ETS).

[22]  Alberto Paolo Tonda,et al.  On the Generation of Functional Test Programs for the Cache Replacement Logic , 2009, 2009 Asian Test Symposium.

[23]  Sujit Dey,et al.  Software-based self-testing methodology for processor cores , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[24]  Dimitris Gizopoulos,et al.  A Software-Based Self-Test methodology for on-line testing of data TLBs , 2012, 2012 17th IEEE European Test Symposium (ETS).

[25]  Jacob A. Abraham,et al.  Test Generation for Microprocessors , 1980, IEEE Transactions on Computers.

[26]  Dimitris Gizopoulos,et al.  Software-Based Self-Test for Small Caches in Microprocessors , 2014, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[27]  Laurent Fournier,et al.  Functional verification methodology for microprocessors using the Genesys test-program generator. Application to the x86 microprocessors family , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[28]  Jian Shen,et al.  Native mode functional test generation for processors with applications to self test and design validation , 1998, Proceedings International Test Conference 1998 (IEEE Cat. No.98CH36270).

[29]  Bernd Becker,et al.  On the automatic generation of SBST test programs for in-field test , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[30]  Jeff Rearick,et al.  Comparing the effectiveness of cache-resident tests against cycleaccurate deterministic functional patterns , 2014, 2014 International Test Conference.

[31]  Alessandro Savino,et al.  Software-Based Self-Test of Set-Associative Cache Memories , 2011, IEEE Transactions on Computers.

[32]  Matteo Sonza Reorda,et al.  Test Program Generation for Communication Peripherals in Processor-Based SoC Devices , 2009, IEEE Design & Test of Computers.

[33]  Chrysostomos Nicopoulos,et al.  DaemonGuard: Enabling O/S-Orchestrated Fine-Grained Software-Based Selective-Testing in Multi-/Many-Core Microprocessors , 2016, IEEE Transactions on Computers.

[34]  Matteo Sonza Reorda,et al.  Microprocessor Software-Based Self-Testing , 2010, IEEE Design & Test of Computers.

[35]  Paolo Bernardi,et al.  Exploiting an I-IP for both Test and Silicon Debug of Microprocessor Cores , 2005, 2005 Sixth International Workshop on Microprocessor Test and Verification.

[36]  Mark G. Karpovsky,et al.  Transparent memory BIST , 1994, Proceedings of IEEE International Workshop on Memory Technology, Design, and Test.