Thread Scheduling for Stall Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In partially out-of-order execution environments, thread stalls can cause cascading delays and crashes, leading to reduced processing efficiency and potential system failures due to resource exhaustion or faults, especially in time-sensitive applications.

Innovation Solution

A method and system for dynamically scheduling threads with strict scheduling for dependent functions and permissive out-of-order execution for independent functions, allowing alternative functions to execute in place of stalled ones, thereby preventing crashes and maintaining fault tolerance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If strict scheduling is enforced for all thread functions, then execution order is guaranteed and dependencies are satisfied, but system reliability decreases when stalls occur because subsequent threads are delayed and may crash

Engineering Contradiction:
Improvethread execution reliabilityVSAvoidscheduling complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments thread functions into two distinct categories: static scheduling functions (requiring strict order) and dynamic scheduling functions (allowing flexibility). This segmentation enables the system to maintain reliability for critical dependencies while allowing fault tolerance for independent functions, resolving the contradiction between guaranteed execution order and system reliability during stalls.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic scheduling capabilities that allow the execution schedule to adapt in real-time based on system conditions. When a stall is detected, the system can dynamically reschedule dynamic functions to maintain progress, while preserving static scheduling for functions with hard dependencies. This dynamic adjustment prevents crashes without compromising critical dependency ordering.

Inventive Principle:
Principle #15Dynamics

2Reliability

If permissive out-of-order execution is allowed for all functions, then fault tolerance improves by allowing alternative functions to execute during stalls, but execution correctness may be compromised when dependencies exist

Engineering Contradiction:
Improvefault toleranceVSAvoidexecution correctness
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

By segmenting functions into static and dynamic scheduling categories, the patent ensures that execution correctness is maintained for static functions (which have strict dependency requirements) while allowing fault tolerance for dynamic functions (which can execute in alternative orders). This segmentation prevents incorrect execution while enabling fault tolerance where appropriate.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different scheduling qualities to different functions: static scheduling quality for functions requiring strict ordering and dynamic scheduling quality for functions allowing flexibility. This local differentiation ensures execution correctness for critical paths while enabling fault tolerance for independent operations, resolving the contradiction between correctness and fault tolerance.

Inventive Principle:
Principle #3Local quality

3Productivity

If dynamic rescheduling is implemented to prevent stalls from propagating, then productivity improves by continuing thread execution, but device complexity increases due to additional scheduling logic

Engineering Contradiction:
Improvethread execution throughputVSAvoidscheduling mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the scheduling mechanism into two independent subsystems: static scheduling for guaranteed order and dynamic scheduling for fault tolerance. This segmentation allows the system to achieve high productivity through selective rescheduling while keeping the overall complexity manageable by using simple, well-defined scheduling logic for each segment rather than a single complex unified scheduler.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP3688578B1Systems and methods defining thread specifications
Publication Date: 2022.11.16 ORACLE INT CORP
  • EP3688578B1 patent drawingFigure 1
  • EP3688578B1 patent drawingFigure 2
  • EP3688578B1 patent drawingFigure 3A

AI summary

Methods and systems are disclosed for executing tasks in a partially out-of-order execution environment. Input is received indicating a task and task type for execution within an environment. Functions associated with the task and type of task may be selected. An instruction may be generated for each function indicating that the function is configured for static scheduling or dynamic scheduling. A schedule for instantiating each function may be generated, where functions configured for static scheduling are scheduled for instantiation according to a position of the function within the list and functions configured for dynamic scheduling are scheduled for instantiation at runtime based on an environment in which the function is instantiated and a position of the function of the subset of the set of functions within the list. A thread specification may then be generated using the functions and list. The thread specification may transmitted to remote devices.