Patent No. US9519943 (titled "Priority-based command execution") on Jun 29, 2011. The application was issued on Dec 13, 2016.
’943 is related to the field of heterogeneous computing and command scheduling between different processing units. Specifically, it addresses the latency challenges encountered when a central processing unit (CPU) offloads non-graphical tasks, such as physics simulations or artificial intelligence calculations, to a graphics processing unit (GPU). In traditional systems, these time-sensitive computational tasks often get stuck behind large batches of rendering commands, leading to performance bottlenecks because the CPU cannot receive the necessary results in time for the next frame.
The underlying idea behind ’943 is the implementation of a multi-tiered, priority-aware pipeline that spans from the software abstraction layer in the CPU down to the hardware execution level in the GPU. By categorizing commands into distinct priority levels—such as high-priority computational tasks versus mid-priority rendering tasks—the system can bypass the standard first-in, first-out bottlenecks. The core insight is to maintain this priority separation throughout the entire transfer process, ensuring that urgent data does not lose its precedence while moving from the application driver to the execution cores.
The claims of ’943 focus on a method and architecture that utilizes a plurality of virtual devices within the CPU to abstract the GPU. Each virtual device is assigned a specific priority level and maintains its own queue. The independent claims describe a hardware-software handshake where commands are routed through these priority-specific virtual devices and then mapped to a corresponding set of hardware buffers on the GPU. A specialized command processor then manages these buffers, specifically ensuring that high-priority commands are retrieved and dispatched to the processing core before those in lower-priority queues.
In practice, the invention works by using a multithreaded command processor and a run-list controller to monitor the status of multiple ring buffers simultaneously. When a high-priority command arrives in its dedicated buffer, the command processor can trigger a preemption mechanism. This allows the GPU to finish its current atomic operation and immediately pivot to the urgent task, rather than waiting for an entire rendering command buffer to complete. The system tracks the state of these multiple streams using dedicated sets of head and tail pointer registers for each priority level.
This approach differs from prior solutions by moving away from a single, monolithic command stream that treats all GPU tasks as asynchronous background work. By integrating priority-based scheduling directly into the hardware ring buffers and the CPU's virtual device drivers, the invention enables the GPU to function as a low-latency co-processor for real-time logic. This allows for a more efficient distribution of labor, where the CPU is relieved of heavy mathematical burdens without the penalty of missing frame-timing windows.
In the early 2010s when ’943 was filed, heterogeneous computing environments were typically implemented using a primary central processing unit (CPU) that offloaded specific tasks, such as graphics rendering, to a secondary processing device like a graphics processing unit (GPU). At a time when systems commonly relied on a single command stream or ring buffer for the secondary processor, all offloaded tasks were generally executed in the order they were received regardless of their functional urgency. Because these secondary processors were designed for high-throughput parallel tasks rather than low-latency interrupts, hardware and software constraints made it non-trivial to prioritize time-sensitive computational tasks, such as physics or artificial intelligence logic, over standard rendering commands without incurring significant latency penalties on the CPU side.
The disclosed invention represents a meaningful technical advancement through an architectural shift in how commands are managed and dispatched to a secondary processing device. By implementing a multi-queued structure where commands are segregated by priority levels—such as high-priority computational tasks versus lower-priority rendering or background tasks—the system enables a more granular control over execution order. The integration of a command processor capable of monitoring multiple ring buffers allows the system to overcome the technical constraint of sequential execution. This architecture achieves a reduction in latency for critical tasks by enabling the command processor to retrieve and dispatch high-priority commands before lower-priority ones, and further allows for the preemption of active command buffers to ensure that time-sensitive results are returned to the primary processor without waiting for the completion of less urgent, high-volume rendering operations.
The patent contains 24 total claims, with claims 1, 11, and 19 serving as the independent claims. These independent claims focus on a method, processing device, and system for managing graphics processing unit (GPU) commands through the creation of virtual devices within a central processing unit (CPU) and the use of prioritized queues to ensure high-priority commands are retrieved and executed by the GPU before lower-priority tasks. The dependent claims serve to further define the technical implementation by specifying the use of ring buffers, head and tail pointers, round-robin scheduling, preemption mechanisms, and the specific roles of user mode and kernel mode drivers in command generation and transport.
Definitions of key terms used in the patent claims.
US Latest litigation cases involving this patent.

The dossier documents provide a comprehensive record of the patent's prosecution history - including filings, correspondence, and decisions made by patent offices - and are crucial for understanding the patent's legal journey and any challenges it may have faced during examination.
Get instant alerts for new documents