System and method for deadlock-free pipelining
First Claim
1. A processor group of a graphics processing unit, said processor group comprising:
- a register file for storing data related to a plurality of threads concurrently operable within said processor group;
a texture unit for processing texture operations of said plurality of threads wherein each texture operation comprises a texture request operation and a corresponding texture read-back operation;
a buffer separate from said register file and within said texture unit for receiving results of said texture operations from said texture unit and storing said results, wherein said corresponding texture read-back operation reads from said buffer; and
a circuit for preventing deadlock within said texture unit and comprising a circuit for determining a number of texture request operations for said texture unit of a thread,wherein said number of texture request operations comprises a number of multiple texture request operations that are present within said thread before a texture read-back operation is present within said thread.
0 Assignments
0 Petitions
Accused Products
Abstract
A system and method for facilitating increased graphics processing without deadlock. Embodiments of the present invention provide storage for execution unit pipeline results (e.g., texture pipeline results). The storage allows increased processing of multiple threads as a texture unit may be used to store information while corresponding locations of the register file are available for reallocation to other threads. Embodiments further provide for preventing deadlock by limiting the number of requests and ensuring that a set of requests is not issued unless there are resources available to complete each request of the set of requests. Embodiments of the present invention thus provide for deadlock free increased performance.
-
Citations
18 Claims
-
1. A processor group of a graphics processing unit, said processor group comprising:
-
a register file for storing data related to a plurality of threads concurrently operable within said processor group; a texture unit for processing texture operations of said plurality of threads wherein each texture operation comprises a texture request operation and a corresponding texture read-back operation; a buffer separate from said register file and within said texture unit for receiving results of said texture operations from said texture unit and storing said results, wherein said corresponding texture read-back operation reads from said buffer; and a circuit for preventing deadlock within said texture unit and comprising a circuit for determining a number of texture request operations for said texture unit of a thread, wherein said number of texture request operations comprises a number of multiple texture request operations that are present within said thread before a texture read-back operation is present within said thread. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A processor group of a graphics processing unit, said processor group comprising:
-
a register file for storing data related to a plurality of threads concurrently operable within said processor group; a texture unit for processing texture operations of said plurality of threads wherein each texture operation comprises a texture request operation and a corresponding texture read-back operation; and a buffer separate from said register file and within said texture unit for receiving results of said texture operations from said texture unit and storing said results, wherein said corresponding texture read-back operation reads from said buffer; and a circuit for preventing deadlock within said texture unit, said circuit for preventing deadlock comprising; a circuit for determining a number of texture request operations for said texture unit of a thread; and a circuit for issuing said number of texture request operations to said texture unit provided there is sufficient vacant memory resources of said buffer and said texture unit to accommodate all of said number of texture request operations, otherwise not issuing any of said number of texture request operations to said texture unit, wherein said number of texture request operations comprises a number of multiple texture request operations that are present within said thread before a texture read-back operation is present within said thread. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A circuit comprising:
-
a processor; a register file; a texture unit; and a buffer separate from said register file and within said texture unit, wherein said processor is configured to;
store data in said register file, wherein said data is related to a plurality of threads concurrently operable within said processor;
process texture operations of said plurality of threads using said texture unit, wherein each texture operation comprises a texture request operation and a corresponding texture read-back operation;
store results of said texture operations in said buffer, wherein said corresponding texture read-back operation reads from said buffer; and
prevent deadlock within said texture unit by allowing only a predetermined number of threads, or less, to concurrently operate with said texture unit wherein said predetermined number of threads is based on a number of texture request operations within each thread and based further on a size of said buffer and said texture unit, andwherein said predetermined number of threads is computed by dividing said size of said buffer and said size of said texture unit by said number of texture request operations within each thread. - View Dependent Claims (15, 16, 17, 18)
-
Specification