Abstract
In the modern development of embedded systems, cause of the evolution of hardware technology and process, the application of embedded system is more and more popular. The demands of high reliability and availability embedded system are growing. For example, image processing or data transmission both need lots of fault-free computation. In traditional solutions, ensuring the hardware correctness is often achieved through adding error detection tools or performing hardware verification. In this paper, we propose a software methodology aims to achieve hardware data-path able to detect errors on-line and report autonomously. The kernel concept of the software methodology is duplicating and comparing instructions. We use time-redundant operations for comparing two similar instructions in order to judge if transient errors occur. In addition to the concept of RESO (ReComputation of Shifted Operands), we can detect permanent errors and increase the error coverage. Besides, the software methodology need not modify the original hardware and software and can save extra cost at early stage of hardware debugging. In practical, we select ARM microprocessor and GNU tool-chain, including compiler and simulator, as the platform of experiment and verification. Furthermore, we automate the methodology and its optimization in order to ease the checking assertion routine. Comparing to experimental results of other hardware platforms, we can find the error detecting ability is satisfying and the performance degradation is also acceptable.