The use of commercial of the shelf (COTS) processors is increasingly attractive for the space domain, especially with emerging high demand applications in Earth observation and communications. An order of magnitude improvement in on-board processing capability with less size, mass, and power is possible, however, COTS parts still lag in terms of reliability in the space environment. Costly protection techniques to ensure resilience to single event effects (SEEs) is required. Whilst current software reliability techniques are only capable of detecting errors, and performing partial recovery, our research offers a step change for both error detection and recovery without degradation in fault coverage. This targets modern multicore processors. We have previously shown how to create additional passes in the compiler's intermediate representation layer to automatically add differing protection codes at compile-time using the LLVM compiler framework. LLVM is supported by multiple processing architectures, and multiple high level languages — meaning it can be ported to not just space applications, but aerospace, defence, medical, and automotive. In this paper a new LLVM fault injection tool is presented to validate and measure software protection methods — either statically at compile time or dynamically at runtime for multiple errors such as silent data corruption (SDC), control/flow errors, and crashes. We use our tool to inject faults into unprotected and protected codes and make quantitative comparisons of the errors and associated statistical confidence. Our protection method shows high coverage, up to 100% for some benchmarks, and does not assume that the memory system is protected via typical TMR hardware approaches. This means that we protect all memory instructions that use read and write. Another reason for the high coverage is the inclusion of multiple data and instruction types (i32, i32∗, i1, i8, i8∗, i64, float & double, float & double pointers). This research has been implemented in two processing architectures; Intel core i5-3470 with 3.2 GHz frequency and a Raspberry Pi 3. On the 1st processing platform the overhead was less than 15% and on the 2nd platform the overhead was less than 17%.


    Access

    Check access

    Check availability in my library

    Order at Subito €


    Export, share and cite



    Title :

    Modelling processor reliability using LLVM compiler fault injection


    Contributors:


    Publication date :

    2018-03-01


    Size :

    416206 byte




    Type of media :

    Conference paper


    Type of material :

    Electronic Resource


    Language :

    English



    Fault-Tree Compiler

    Butler, Ricky W. / Boerschlein, David P. | NTRS | 1993


    Fault-Tree Compiler Program

    Butler, Ricky W. / Martensen, Anna L. | NTRS | 1992



    Fault Injection for Semi-Parametric Reliability Models

    White, A. L. / IEEE | British Library Conference Proceedings | 2005