In the presence of ionizing particles and other high-energy atomic sources, many electronic and computer systems fail. Single event upsets (SEUs) can be mitigated through hardware and/or software methods. Previous research at BYU has introduced COAST, a compiler-based tool that can automatically add software protection schemes to improve fault coverage of programs. This thesis will expand on the work already done with the COAST project by proving its effectiveness across multiple platforms and benchmarks. The ability to automatically add fault protection to arbitrary user programs will be very valuable for many application designers. The results presented herein show that mean work to failure (MWTF) of an application can increase from 1.2x – 36x when protected by COAST. In addition to the results based on bare metal applications, in this thesis we will show that it is both possible and profitable to protect a real-time operating system with COAST. We present experimental results which show that our protection scheme gives a 2x – 100x improvement in MWTF. We also present a fault injection framework that allows for rapid and reliable testing of multiple protection schemes across different benchmarks. The code setup used in this paper is publicly available. We make it public in the hope that it will be useful for others doing similar research to have a concrete starting point.
College and Department
Ira A. Fulton College of Engineering and Technology
BYU ScholarsArchive Citation
James, Benjamin, "Compiler-Assisted Software Fault Tolerance for Bare Metal and RTOS Applications on Embedded Platforms" (2021). Theses and Dissertations. 8958.
LLVM, COAST, TMR, DWC, software reliability, microcontroller, ARM, radiation testing, fault injection, fault tolerance, Xilinx, RISC-V