Firmware Out-of-Order Command Scheduling for Low-Latency Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional schedulers process tasks in the order received, leading to inefficient use of computing resources, delays in executing time-critical commands, and increased latency in real-time or high-traffic systems, especially when software-based schedulers introduce significant overhead.

Innovation Solution

A firmware-based out-of-order scheduler that uses labels to temporarily store commands in a long-term storage and a fast scheduler, allowing commands to be executed based on their designated execution start times rather than the order of receipt, thereby increasing throughput and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If commands are processed in the order received by conventional schedulers, then the scheduling process is simple, but execution latency increases and throughput decreases

Engineering Contradiction:
Improvecommand throughputVSAvoidscheduler complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The scheduler is segmented into multiple independent components: a command reception module that assigns sequential IDs, a sorting module that reorders commands by execution time, and an execution module that processes sorted commands. This segmentation allows the system to achieve out-of-order execution capability while maintaining manageable complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Commands are pre-sorted by their designated execution start times before being sent to the processor. The sorting operation is performed in advance, allowing the execution module to simply process commands in the predetermined optimal order rather than making complex real-time scheduling decisions.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If software-based schedulers are used to manage tasks, then scheduling flexibility is achieved, but system overhead increases significantly

Engineering Contradiction:
Improvescheduling flexibilityVSAvoidsystem overhead
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent replaces complex software-based scheduling mechanisms with a streamlined firmware implementation. By using hardware-assisted sorting and dedicated sorting circuits, the system achieves scheduling flexibility with significantly reduced processing overhead and energy consumption compared to pure software approaches.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Loss of time

If time-critical commands are executed after non-critical commands in the receipt order, then processing simplicity is maintained, but execution delays occur

Engineering Contradiction:
Improvecommand execution delayVSAvoidreal-time processing efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The scheduler dynamically reorders commands based on their execution time requirements. Commands with earlier designated execution times are prioritized and placed at the front of the execution queue, allowing the system to adapt to varying time-critical requirements while maintaining high real-time processing efficiency.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12503741B2Firmware-based out-of-order command scheduler
Publication Date: 2025.12.23 BAE SYSTEMS INFORMATION ANDELECTRONIC SYSTEMS INTEGRATION INC
  • US12503741B2 patent drawing
  • US12503741B2 patent drawing
  • US12503741B2 patent drawing

AI summary

A method of scheduling commands for execution in a computing device includes receiving command data, where the command data includes a command to be executed on a processor and an execution start time for executing the command; storing the command data in a data storage; reading, responsive to determining that the execution start time is within an execution window, the command data from the data storage; and causing the command data to be output to a processor for execution. The method can include assigning a label to the command data, where the label corresponds to an address in the data storage, and where the command data is stored at, and read from, the address in the data storage. The method can include storing, responsive to determining that the execution start time is not within the execution window, the label, and the execution start time in a fast scheduler memory.