{'fraction_non_alphanumeric': 0.019765739385065886, 'fraction_numerical': 0.004392386530014641, 'mean_word_length': 5.478672985781991, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Masking Soft Errors with Static Bitwise Analysis

Due to continuous improvements in the VLSI technologies, the dependability of computing, caused by soft errors, has become increasingly a design challenge. Current protection techniques usually incur significant economic costs, performance degradation or resource consumption. This paper introduces a lightweight software approach for mitigating soft errors. By exploiting the facts that many data values have narrow width or constant bits, indicating that a large fraction of binary bits are unused or constant, we can predict these data values before program execution. First of all, invariants concerning bit-level data widths and values are identified by performing two bitwise data-flow analyses. Based on the bitwise analysis results, the masking operations are inserted to clear the possible errors in the known-value bits for reducing the window of vulnerability. Then the program reliability is improved with minimum penalty. To improve the effectiveness, the covered mask analysis can remove the non-vital masking operations without affecting the dependability. We have implemented our approach in the LLVM compiler. The fault injection experimental results for the MiBench benchmarks indicate that our approach improves the reliability of programs by 8.03% while incurring only 1.61% performance overhead.