Unreliable yet useful - reliability annotations for data in cyber-physical systems

Today, cyber-physical systems face yet another challenge in addition to the traditional constraints in energy, computing power, or memory. Shrinking semi- conductor structure sizes and supply voltages imply that the number of errors that manifest themselves in a system will rise significantly. Most cyber-physical systems have to survive errors, but many systems do not have sufficient resources to correct all errors that show up. Thus, it is important to spend the available resources on handling errors with the most critical impact. We propose an "unreliability" annotation for data types in C programs that indi- cates if an error showing up in a specific variable or data structure will possibly cause a severe problem like a program crash or might only show rather negligible effects, e.g., a discolored pixel in video decoding. This classification of data is supported by static analysis methods that verify if the value contained in a variable marked as un- reliable does not end up as part of a critical operation, e.g., an array index or loop termination condition. This classification enables several approaches to flexible error handling. For example, a cyber-physical system designer might choose to selectively safeguard variables marked as reliable or to employ memories with different reliability properties to store the respective values.

[1]  Mark S. K. Lau,et al.  A general mathematical model of probabilistic ripple-carry adders , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[2]  Shane Markstrum,et al.  Semantic type qualifiers , 2005, PLDI '05.

[3]  Arindam Basu,et al.  Low Power Probabilistic Floating Point Multiplier Design , 2011, 2011 IEEE Computer Society Annual Symposium on VLSI.

[4]  Patrice Chalin,et al.  Towards Support for Non-null Types and Non-null-by-default in Java , 2006 .

[5]  David Walker,et al.  Fault-tolerant typed assembly language , 2007, PLDI '07.

[6]  Michael Engel,et al.  Improving transient memory fault resilience of an H.264 decoder , 2010, 2010 8th IEEE Workshop on Embedded Systems for Real-Time Multimedia.

[7]  Michael Engel,et al.  Using Application Knowledge to Improve Embedded Systems Dependability ∗ , 2010 .

[8]  Wouter Joosen,et al.  Extended Protection against Stack Smashing Attacks without Performance Loss , 2006, 2006 22nd Annual Computer Security Applications Conference (ACSAC'06).

[9]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[10]  Dan Grossman,et al.  EnerJ: approximate data types for safe and general low-power computation , 2011, PLDI '11.

[11]  David I. August,et al.  SWIFT: software implemented fault tolerance , 2005, International Symposium on Code Generation and Optimization.

[12]  Koushik Chakraborty,et al.  Mixed-mode multicore reliability , 2009, ASPLOS.