GPU FIFO Queue Pointer Synchronization for Safe Dynamic Memory Use

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processing systems face inefficiencies in managing memory resources for graphics processing operations, particularly in scenarios where the amount of memory required is not known upfront, leading to potential waste of system resources and suboptimal performance.

Innovation Solution

Implementing a flexible, dynamic mechanism for managing first-in first-out (FIFO) queues in graphics processing units (GPUs) using growable or non-growable memory resources, with multiple pointers to manage memory allocation and deallocation, preventing reading from unwritten locations and handling errors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a large amount of memory is allocated upfront for graphics processing operations, then the GPU can perform operations without memory constraints, but system resources are wasted when the actual memory needed is less

Engineering Contradiction:
Improvegraphics processing performanceVSAvoidsystem resource waste
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements dynamic memory allocation for FIFO queues in the GPU, allowing the queue size to grow or shrink based on actual processing needs rather than being fixed upfront. The memory manager dynamically allocates additional pages to FIFO queues as data is enqueued and deallocates pages when data is dequeued, ensuring memory resources are efficiently utilized without waste while maintaining sufficient capacity for graphics processing operations

Inventive Principle:
Principle #15Dynamics

2Reliability

If multiple pointers are used to manage FIFO queue memory allocation, then memory management precision and safety are improved, but the complexity of the memory management system increases

Engineering Contradiction:
Improvedata access safetyVSAvoidmemory management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the FIFO queue memory management into distinct pointer responsibilities: a read pointer for dequeue operations, a write pointer for enqueue operations, and allocation pointers for memory page management. This segmentation allows each pointer to manage specific aspects of memory access independently, improving reliability through clear separation of concerns while the overall structure remains systematic and manageable

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a memory manager as an intermediary component that coordinates multiple pointers and manages FIFO queue memory allocation. This intermediary handles the complexity of synchronizing read/write pointers, allocating memory pages, and ensuring data access safety, thereby isolating the complexity from the core enqueue/dequeue operations while maintaining high reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of energy

If memory is dynamically allocated to FIFO queues based on actual usage, then system resource efficiency is improved, but the risk of reading from unwritten locations increases

Engineering Contradiction:
Improvememory resource efficiencyVSAvoiddata access correctness
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

The patent implements preliminary actions through pointer validation and synchronization mechanisms before memory access operations. The write pointer is advanced only after data is successfully written to the FIFO queue, and the read pointer is validated against the write pointer position before dequeue operations. This preliminary validation ensures that memory is safely allocated and accessed based on actual usage without risking reads from unwritten locations

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3814885B1Techniques for safely and efficiently enqueueing and dequeueing data on a graphics processor
Publication Date: 2026.02.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3814885B1 patent drawingFigure 1
  • EP3814885B1 patent drawingFigure 2
  • EP3814885B1 patent drawingFigure 3

AI summary

Methods and devices for managing first-in first-out (FIFO) queues in graphics processing are described. A write operation can be executed by multiple write threads on a graphics processing unit (GPU) to write data to memory locations in the multiple pages of memory. Similarly, and/or simultaneously, a read operation can be executed by multiple read threads to read data from the memory locations. The write and read operations include updating a pointer or multiple pointers indicating the point at which all preceding data has been fully written, or fully read. The read and write operations can also include maintaining and advancing one or more allocation pointers, and performing comparisons with the read and write done pointers, and/or various methods of synchronization, to handle overflow and underflow scenarios, to ensure read operations only read valid data, and write operations do not attempt to write to locations which are already in use.