Session
Technical Session IV: Advanced Technologies Section I
Abstract
Performing error detection and correction (EDAC) for single-bit errors in software instead of hardware has both advantages and cost. The largest advantage is the ability to use off-the-shelf computing hardware, with high capability and low cost but no hardware-based EDAC. The largest cost is in speed and complexity, where the software takes many instructions (coding effort) and many cycles (time) to perform the EDAC function that can be performed single-cycle in hardware. By using the object-oriented software concept of overloaded operators, the complexity can be almost entirely removed, and the speed potentially improved, making software EDAC a much more useful option. In any language that supports overloaded operators, a set of types can be created which represent EDAC-protected versions of basic variable types. These types would include the basic bits of the original variable type, plus error checking bits, wrapped into a single object. Any arithmetic operation which uses these protected types would then use a special version of the operation (addition, dereferencing, assignment, and so forth) that takes error-protection bits into account.
Presentation Slides
The Use of Overloaded Software Operators for Error Detection and Correction
Performing error detection and correction (EDAC) for single-bit errors in software instead of hardware has both advantages and cost. The largest advantage is the ability to use off-the-shelf computing hardware, with high capability and low cost but no hardware-based EDAC. The largest cost is in speed and complexity, where the software takes many instructions (coding effort) and many cycles (time) to perform the EDAC function that can be performed single-cycle in hardware. By using the object-oriented software concept of overloaded operators, the complexity can be almost entirely removed, and the speed potentially improved, making software EDAC a much more useful option. In any language that supports overloaded operators, a set of types can be created which represent EDAC-protected versions of basic variable types. These types would include the basic bits of the original variable type, plus error checking bits, wrapped into a single object. Any arithmetic operation which uses these protected types would then use a special version of the operation (addition, dereferencing, assignment, and so forth) that takes error-protection bits into account.