Processor Fault Detection Using Redundant Code Domains
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for detecting and correcting errors in computational systems, particularly soft errors caused by physical phenomena like cosmic rays and alpha particles, are complex and resource-intensive, often requiring extensive hardware and software redundancy, which increases costs and complexity, and may not provide adequate coverage for processor electronics.
Innovation Solution
The system divides a program into computation segments, generates redundant code sections, and executes them in different computational domains to detect and correct errors by comparing results, allowing for efficient error detection and recovery without modifying existing architectures or source code, using temporal or spatial replication techniques.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If error detecting and correcting codes are applied to memory, caches and interconnection fabric, then detection and correction of soft errors is improved, but device complexity increases
Solution Approach 1:
The program is divided into computation segments, and each segment is compiled to generate two separate code sections. This segmentation allows error detection to be performed on individual computational units rather than requiring system-wide redundancy, reducing overall device complexity while maintaining reliability for the most error-prone components.
Solution Approach 2:
The invention creates redundant copies of code sections that are executed in different computational domains. Instead of adding complex hardware redundancy to the entire system, simple software copies are generated and executed, providing error detection capability with minimal increase in device complexity.
2Reliability
If multiple processors run in lock step with self-checking hardware, then soft error detection is improved, but device complexity and cost increase significantly
Solution Approach 1:
The invention replaces complex mechanical hardware redundancy (multiple physical processors running in lock step) with a software-based approach. Code sections are compiled to execute in different computational domains of a single processor, achieving the same error detection goal without the hardware complexity and cost of multiple physical processors.
Solution Approach 2:
A single processor is made to perform multiple functions by executing different code sections in different computational domains. The same physical processor handles both primary computation and redundant verification, eliminating the need for separate dedicated verification hardware and reducing overall system complexity.
3Reliability
If software techniques execute programs multiple times and compare results, then soft error detection is improved, but productivity decreases due to increased computing time
Solution Approach 1:
The invention implements periodic error checking by executing redundant code sections at specific intervals during program execution. The compiler generates code that periodically verifies computational results by comparing outcomes from different computational domains, providing error detection without requiring complete re-execution of the entire program multiple times.
Solution Approach 2:
The compiler performs preliminary analysis and generates redundant code sections in advance, so that error detection is integrated into the normal execution flow. This preliminary preparation allows verification to occur naturally during execution rather than requiring separate post-execution verification passes, maintaining productivity while improving reliability.
4Reliability
If extensive checking and correction logic is incorporated into processor designs, then error detection capability is improved, but ease of manufacture deteriorates
Solution Approach 1:
The invention replaces complex physical checking and correction logic that would be difficult to manufacture with a software-based verification approach. By using compiler-generated code sections that execute in different computational domains, the system achieves error detection without adding difficult-to-manufacture hardware structures to the processor.
Data Source
AI summary
A method for detecting computational errors in a digital processor executing a program. Initially, the program is divided into computation segments, and source code for at least one of the segments is compiled to generate two redundant code sections. Comparison code is generated for comparing results produced by execution of the two code sections. Each of the code sections is then executed in a different computational domain to generate respective results. The results of the computation are executed to alter further flow of the program only if the respective results are identical.


