Duplicate Thread Scheduling Without Lockstep Idle Time
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional lockstepping of critical threads in processing systems introduces latency due to the need to artificially hold execution units idle, reducing overall processing throughput when there are no idle units available.
Innovation Solution
A safety thread scheduler that buffers requests for critical threads and schedules duplicate check threads on available execution units within a safety time-window, allowing interruption of non-critical threads if necessary, thus avoiding idle time penalties.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If lockstepping execution of critical threads is implemented to ensure safety checks, then reliability is improved, but productivity deteriorates due to idle time penalties
Solution Approach 1:
The patent applies dynamics by making the scheduling approach flexible rather than fixed. The system dynamically selects between lockstep scheduling and asynchronous scheduling with interrupts based on real-time execution unit availability. This dynamic adaptation resolves the contradiction by allowing the system to maintain reliability through safety checks while avoiding productivity loss by choosing the more efficient scheduling mode when possible.
Solution Approach 2:
The patent changes the scheduling parameter from strict lockstep (synchronized timing) to asynchronous with interrupt (decoupled timing with forced execution). By modifying the timing parameter and introducing interrupt mechanisms, the system achieves safety checks without requiring both execution units to be idle simultaneously, thereby resolving the contradiction between reliability and productivity.
2Reliability
If execution units are held idle to enable lockstepping of critical threads, then reliability is improved, but loss of time increases
Solution Approach 1:
The patent applies preliminary action by proactively interrupting non-critical threads when a critical thread needs execution and an execution unit is unavailable. Instead of passively holding execution units idle until they become free, the system actively secures an execution unit by preempting other work, thereby eliminating idle time while maintaining the ability to perform safety checks.
Solution Approach 2:
The patent applies skipping by rushing through the safety check process using interrupt mechanisms. When a critical thread requires execution, the system can interrupt and skip over non-critical threads to immediately allocate an execution unit, thereby eliminating the time loss that would otherwise occur while waiting for an execution unit to become naturally available.
3Measurement precision
If strict lockstepping is enforced for critical thread scheduling, then measurement precision of safety checks is improved, but device complexity increases
Solution Approach 1:
The patent introduces an intermediary mechanism (the interrupt system and scheduler) that mediates between the requirement for precise safety checks and the available execution units. Rather than requiring direct lockstepping coordination between execution units, the intermediary scheduler manages timing and allocation, simplifying the overall system while maintaining measurement precision through controlled interrupt-based scheduling.
Data Source
AI summary
A safety thread scheduler configured to schedule a check thread for a critical thread being run on one of a plurality of execution units, the check thread being a duplicate of the critical thread, wherein the safety thread scheduler is configured to schedule the check thread to begin being run on a second one of the plurality of execution units before the end of a safety time-window for scheduling the check thread. The safety thread scheduler is further configured to allow the check thread, when the check thread is running on the second one of the plurality of execution units, to be interrupted by a further thread and to re-schedule the check thread to be resumed by expiry of a re-scheduling time limit.


