Increasing Register File Immunity to Transient Errors
Citations Over TimeTop 10% of 2005 papers
Abstract
Transient errors are a major reason for system downtime in many systems. In prior research, the register file has largely been neglected, but since it is accessed very frequently, the probability of transient errors is high. These errors can quickly spread to different parts of the system, and cause an application crash or silent data corruption. The paper addresses the reliability of register files in superscalar processors. We propose to duplicate actively used physical registers in unused physical registers. If the protection mechanism (parity or ECC) used for the primary copy indicates an error, the duplicate can provide the data, as long as it is not corrupted. We implement two strategies based on register duplication. In the "conservative strategy", we limit ourselves with the given register usage behavior, and duplicate register contents only on otherwise unused registers. Consequently, there is no impact on the original performance when there is no error, except for the protection mechanism used for the primary copy. Experiments with two different versions of this strategy show that, with the more powerful conservative scheme, 78% of the accesses are to the physical registers with duplicates. The "aggressive strategy" sacrifices some performance to increase the number of register accesses with duplicates. It does so by marking the registers not used for a long time as "dead" and using them for duplicating actively used registers. Experiments with this strategy indicate that it takes the fraction of reliable register accesses to 84%, and degrades the overall performance by only 0.21% on average.
Related Papers
- GPGPU Register File Management by Hardware Co-operated Register Reallocation(2014)
- → PALF: compiler supports for irregular register files in clustered VLIW DSP processors(2007)15 cited
- Register Allocation for VLIW DSP Processors with Irregular Register Files(2006)
- → Compiler-Based Register Name Adjustment for Low-Power Embedded Processors(2003)12 cited
- → An Efficient Register Renaming Technique with Delayed Allocation and Register Packing(2020)