×

FIFO queue, memory resource, and task management for graphics processing

  • US 10,713,746 B2
  • Filed: 06/06/2018
  • Issued: 07/14/2020
  • Est. Priority Date: 01/29/2018
  • Status: Active Grant
First Claim
Patent Images

1. A method for managing first-in first-out (FIFO) queues in graphics processing, comprising:

  • executing, via parallel execution of multiple write threads of a graphics processing unit (GPU), a write operation to write data to one or more write memory locations in multiple pages of memory from a memory pool allocated to a FIFO queue of the multiple FIFO queues, wherein, for a given write thread of the multiple write threads, the write operation comprises;

    based on writing the data to the one or more write memory locations by using a write allocation pointer that is common to the FIFO queue, advancing a write done pointer to a next write memory location following the one or more write memory locations to which the data is written;

    monitoring write done pointers associated with each of the multiple FIFO queues, including the write done pointer associated with the FIFO queue; and

    in response to determining, based on monitoring the write done pointers and based on read allocation pointers, that written data is present in the FIFO queue but has not been consumed by, or scheduled for consumption by, one or more read threads;

    comparing the write done pointers and the read allocation pointers to determine an amount of written data available for consumption from each of the multiple FIFO queues, based at least on;

    selecting, based on one or more of criteria related to the multiple FIFO queues, the FIFO queue or a set of FIFO queues including the FIFO queue from which to consume the written data;

    determining one or more base addresses of the written data to be processed based at least on one or more of the read allocation pointers associated with the FIFO queue or the set of FIFO queues;

    executing, via parallel execution of multiple read threads of the GPU, a read operation to read the written data from one or more read memory locations in the multiple pages of memory associated with the FIFO queue or the set of FIFO queues, wherein the one or more read memory locations are determined based at least in part on the one or more base addresses; and

    updating the one or more of the read allocation pointers, based on a range specified to one or more of the multiple read threads.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×