SRMT Binary Function Integration for Transient Fault Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing transient fault detection methods face challenges in efficiently integrating Software-based Redundant Multi-Threading (SRMT) code with non-SRMT code, leading to overhead in recompilation and unnecessary redundant computation, particularly in real-time applications like audio and video, and fail to handle function calls between SRMT and binary functions seamlessly.

Innovation Solution

The integration of SRMT code with non-SRMT code allows for seamless interaction between SRMT and binary functions by generating code that enables SRMT functions to call binary functions in a single thread and vice versa, using an EXTERN version of SRMT functions that can be directly called by binary functions, dynamically adjusting reliability and performance based on runtime information and user policies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If SRMT code is integrated with non-SRMT code, then reliability is improved through transient fault detection, but device complexity increases due to multiple code versions and threading mechanisms

Engineering Contradiction:
Improvetransient fault detectionVSAvoidcode integration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments code into SRMT and non-SRMT portions, allowing each to be compiled and executed independently. The SRMT compiler generates redundant multi-threaded code for fault detection, while non-SRMT code executes normally, reducing integration complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The SRMT compiler is designed to work with both SRMT and non-SRMT code within the same application. It provides universal functionality by handling mixed code execution, allowing seamless interaction between different code types through a unified compilation and execution framework.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If SRMT functions are integrated with binary functions, then adaptability is improved by allowing free interaction, but ease of manufacture deteriorates due to recompilation requirements

Engineering Contradiction:
Improvefunction interaction flexibilityVSAvoidrecompilation overhead
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The SRMT compiler performs preliminary compilation of SRMT functions before runtime, generating both SRMT and binary versions in advance. This allows binary functions to call SRMT functions directly without recompilation, as the binary version is pre-generated and ready for execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates binary copies of SRMT functions that can be called by binary code without requiring recompilation. These pre-generated binary versions enable seamless interaction while avoiding the need to recompile third-party library code or existing binary functions.

Inventive Principle:
Principle #26Copying

3Reliability

If redundant multi-threading is implemented for fault detection, then reliability is improved, but productivity decreases due to overhead in real-time applications

Engineering Contradiction:
Improvefault detection capabilityVSAvoidreal-time performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system applies SRMT redundant multi-threading selectively only to functions that require fault detection, rather than to the entire application. Non-SRMT functions execute without threading overhead, maintaining real-time performance while still providing fault detection where needed.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

Different parts of the application receive different treatment: SRMT functions are compiled with redundant multi-threading for fault detection, while non-SRMT functions execute normally without overhead. This local differentiation allows reliability improvement in critical sections while maintaining productivity in time-sensitive sections.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS7937621B2Transient fault detection by integrating an SRMT code and a non SRMT code in a single application
Publication Date: 2011.05.03 INTEL CORP
  • US7937621B2 patent drawing
  • US7937621B2 patent drawing
  • US7937621B2 patent drawing

AI summary

Disclosed is a method for running a first code generated by a Software-based Redundant Multi-Threading (SRMT) compiler along with a second code generated by a normal compiler at runtime, the first code including a first function and a second function, the second code including a third function. The method comprises running the first function in a leading thread and a tailing thread (104); running the third function in a single thread (106), the leading thread calls the third function and running the second function in the leading thread and the tailing thread (108), the third function calls the second function. The present disclosure provides a mechanism for handling function calls wherein SRMT functions and binary functions can call each other irrespective of whether the callee function is a SRMT function or a binary function and thereby dynamically adjusts reliability and performance tradeoff based on run-time information and user selectable policies.