Cache-aware reliability evaluation through LLVM-based analysis and fault injection

Reliability evaluation is a high costly process that is mainly carried out through fault injection or by means of analytical techniques. While the analytical techniques are fast but inaccurate, the fault injection is more accurate but extremely time consuming. This paper presents an hybrid approach combining analytical and fault injection techniques in order to evaluate the reliability of a computing system, by considering errors that affect both the data and the instruction cache. Compared to existing techniques, instead of targeting the hardware model of the cache (e.g., VHDL description), we only consider the running application (i.e., the software layer). The proposed approach is based on the Low-Level Virtual Machine (LLVM) framework coupled with a cache emulator. As input, the tool requires the application source code, the cache size and policy, and the target microprocessor instruction set. The main advantage of the proposed approach is the achieved speed up quantified in magnitude orders compared to existing fault injection techniques. For the validation, we compare the simulation results to those obtained with an FPGA-based fault injector. The similarity of the results proves the accuracy of the approach.

[1]  Jacob A. Abraham,et al.  FERRARI: A Flexible Software-Based Fault and Error Injection System , 1995, IEEE Trans. Computers.

[2]  Ney Laert Vilar Calazans,et al.  An accurate Single Event Effect digital design flow for reliable system level design , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[3]  Arijit Biswas,et al.  Computing architectural vulnerability factors for address-based structures , 2005, 32nd International Symposium on Computer Architecture (ISCA'05).

[4]  Régis Leveugle,et al.  Statistical fault injection: Quantified error and confidence , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[5]  Karthik Pattabiraman,et al.  LLFI : An Intermediate Code Level Fault Injector For Soft Computing Applications , 2013 .

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

[7]  Michael Nicolaidis,et al.  Soft Errors in Modern Electronic Systems , 2010 .

[8]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[9]  Liang Chen,et al.  CLASS: Combined logic and architectural soft error sensitivity analysis , 2013, 2013 18th Asia and South Pacific Design Automation Conference (ASP-DAC).

[10]  Todd M. Austin,et al.  A Systematic Methodology to Compute the Architectural Vulnerability Factors for a High-Performance Microprocessor , 2003, MICRO.

[11]  Alberto Bosio,et al.  Software testing and software fault injection , 2015, 2015 10th International Conference on Design & Technology of Integrated Systems in Nanoscale Era (DTIS).

[12]  Ganesh Gopalakrishnan,et al.  Towards Formal Approaches to System Resilience , 2013, 2013 IEEE 19th Pacific Rim International Symposium on Dependable Computing.

[13]  Mehdi Baradaran Tahoori,et al.  System-level reliability evaluation through cache-aware software-based fault injection , 2016, 2016 IEEE 19th International Symposium on Design and Diagnostics of Electronic Circuits & Systems (DDECS).

[14]  Giorgio Di Natale,et al.  Cache- and register-aware system reliability evaluation based on data lifetime analysis , 2016, 2016 IEEE 34th VLSI Test Symposium (VTS).

[15]  Henrique Madeira,et al.  Xception: A Technique for the Experimental Evaluation of Dependability in Modern Computers , 1998, IEEE Trans. Software Eng..

[16]  Giorgio Di Natale,et al.  A survey on simulation-based fault injection tools for complex systems , 2014, 2014 9th IEEE International Conference on Design & Technology of Integrated Systems in Nanoscale Era (DTIS).

[17]  Seyed Ghassem Miremadi,et al.  A fast, flexible, and easy-to-develop FPGA-based fault injection technique , 2014, Microelectron. Reliab..