Hardware Virtualization for Redundant Fault-Managed Task Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Managing random faults in hardware systems, particularly in autonomous or semi-autonomous machines, is challenging due to variations in application characteristics and the complexity introduced by implementing redundancy, which can compromise functional safety and integrity levels.
Innovation Solution
A system that utilizes hardware virtualization to selectively implement spatial and temporal redundancy in task execution based on criteria such as performance and integrity levels, allowing for greater diagnostic coverage and hardware utilization by partitioning hardware into redundant and non-redundant modes using mode switches.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If redundancy is implemented to detect random faults, then fault detection capability is improved, but device complexity increases
Solution Approach 1:
A hardware virtualization layer is introduced as an intermediary between the application layer and the physical hardware. This virtualization layer manages redundancy automatically by virtualizing hardware resources and presenting a simplified interface to applications, eliminating the need for applications to directly manage complex redundancy configurations while maintaining fault detection capabilities
Solution Approach 2:
Instead of exposing low-level redundancy functionality directly to applications, the system creates virtual copies or abstractions of hardware resources through virtualization. This allows multiple application instances to access redundant hardware resources through a unified virtual interface, simplifying software design while preserving fault detection
2Reliability
If redundancy is exposed to application layer, then fault management capability is improved, but functional safety is compromised
Solution Approach 1:
The hardware virtualization layer serves as a protected intermediary that isolates applications from direct access to redundancy mechanisms. This intermediary layer ensures that applications interact with hardware through standardized virtual interfaces, preventing unsafe direct manipulation of redundancy systems while maintaining comprehensive fault management capabilities
Solution Approach 2:
The system replaces direct mechanical/exposure-based redundancy management with a virtualized software-based approach. By substituting direct hardware exposure with virtual resource abstraction, the system maintains fault management functionality while eliminating the safety risks associated with direct application access to redundancy mechanisms
3Measurement precision
If hardware is partitioned into redundant modes, then diagnostic coverage is improved, but hardware utilization efficiency decreases
Solution Approach 1:
The hardware virtualization system dynamically adjusts the partitioning of hardware resources based on operational requirements. The virtualization layer can switch between different hardware configurations and allocation strategies, enabling the system to optimize between diagnostic coverage and hardware utilization efficiency depending on the current operational context
Solution Approach 2:
The system changes hardware configuration parameters through virtualization, allowing flexible adjustment of resource allocation, partitioning strategies, and mode configurations. This enables optimization of the trade-off between diagnostic coverage and hardware utilization by modifying virtual hardware parameters without physical reconfiguration
Data Source
AI summary
In various examples, systems and methods are disclosed relating to hardware virtualization for fault management. Systems and methods are disclosed that determine a task flow to execute the tasks on a first partition and a second partition. A processor may include one or more circuits. The one or more circuits may determine that a first task of a plurality of tasks satisfies a criterion for execution in a redundant mode, determine a task flow, for execution of the plurality of tasks, in which a switch is assigned prior to execution of the first task, the switch to cause the one or more circuits to be partitioned into a first partition and a second partition and execute the plurality of tasks according to the task flow by executing a first instance of the first task on the first partition and a second instance of the first task on the second partition.


