Dual Command Queue Scheduling for Obstructed Compute Commands

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing command execution methods in computing apparatuses, such as GPUs and CPUs, face inefficiencies due to obstructed commands leading to idle processing elements and the need for additional hardware and computation cycles, especially when handling large numbers of controllers.

Innovation Solution

Implementing a dual command queue system where commands are stored in separate queues with identifiers, allowing out-of-order execution without additional hardware by selecting unobstructed commands for processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order execution and pre-emption processes are deployed to handle obstructed commands, then command execution efficiency is improved, but device complexity and computation requirements increase

Engineering Contradiction:
Improvecommand execution efficiencyVSAvoidhardware and computation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The command queue is divided into multiple independent queues (first command queue and second command queue), each handling specific subsets of commands. This segmentation allows the array controller to select from multiple queues without requiring complex polling or pre-emption logic, reducing device complexity while maintaining efficient command execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Commands are pre-sorted and distributed into different queues based on their execution requirements and dependencies before execution begins. This preliminary organization eliminates the need for complex real-time pre-emption processes, as the array controller simply needs to select from pre-organized queues rather than dynamically managing command sequences.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If polling operations are used to manage command execution, then command obstruction handling is improved, but loss of time and energy increase

Engineering Contradiction:
Improvecommand execution reliabilityVSAvoidtime and energy consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Commands are pre-categorized and placed into different queues based on their execution characteristics and resource requirements before the array controller needs to retrieve them. This preliminary sorting eliminates the need for continuous polling to determine command readiness, as the queue structure already organizes commands by execution priority and dependencies, significantly reducing time and energy losses.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If additional hardware is deployed to handle command queues, then command execution efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvecommand execution throughputVSAvoidhardware requirements
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The command queue is segmented into multiple simpler queues that can be implemented with basic hardware resources. Each queue handles a specific subset of commands, allowing the system to achieve high throughput by parallel processing without requiring complex hardware architectures. The segmentation approach distributes the workload across multiple simple queue structures rather than one complex centralized queue manager.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20260064460A1Scalable command queueing apparatuses and methods
Publication Date: 2026.03.05 AT-MEMORY COMPUTING LP
  • US20260064460A1 patent drawing
  • US20260064460A1 patent drawing
  • US20260064460A1 patent drawing

AI summary

A computing apparatus includes: a set of processing elements configured to execute an active command obtained from a plurality of commands; a first command queue; a second command queue; a bank controller configured to place respective subsets of the plurality of commands into the first and second command queues; and an array controller configured to: (i) select one of the first command queue and the second command queue, (ii) retrieve the active command from the selected one of the first command queue and the second command queue, and (iii) deploy the active command to each of the set of processing elements for execution.