IP Library Granted Patent US 11,645,145
Granted Patent B2
US 11,645,145 · App. 16/716,247 · Granted May 9, 2023

Methods and apparatus to facilitate speculative page fault handling in a graphics processing unit

Inventor: Andrew Evan Gruber (Arlington, MA)
Assignee: QUALCOMM Incorporated
G06F11/0793G06F9/30047G06F9/3861G06F9/5016G06F9/5022G06F9/544G06F11/0772G06F12/0871G06F12/0882G06T1/60G09G5/001
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,645,145
App. No.
16/716,247
Granted
May 9, 2023
Kind
B2
Abstract

The present disclosure relates to methods and apparatus for display processing. For example, disclosed techniques facilitate speculative page fault handling in a GPU. Aspects of the present disclosure can perform a graphics operation associated with using a set of constants within a flow control. Aspects of the present disclosure can also query a first memory to determine whether memory addresses associated with the set of constants are allocated at a constant buffer of the first memory. Further, aspects of the present disclosure can set a page fault indicator to a true value when the query indicates that at least one memory address associated with the set of constants is unallocated at the constant buffer, and set the page fault indicator to a false value otherwise.

Claims (41)

1. A method of graphics processing, comprising:

performing a graphics operation associated with using a set of constants within a flow control, the set of constants being associated with a plurality of branches associated with the flow control;

querying a first memory to determine whether memory addresses associated with the set of constants are allocated at a constant buffer of the first memory, wherein the querying of the first memory comprises determining whether accessing a respective constant of the set of constants during the performing of the graphics operation could result in a data fault;

setting a page fault indicator to a true value when the query indicates that at least one memory address associated with the set of constants is unallocated at the constant buffer, wherein the at least one memory address associated with the set of constants being unallocated at the constant buffer corresponds to a speculative page fault associated with at least one pre-fetch operation and at least one branch in the plurality of branches; and

performing, without performing any pre-fetch operations, the graphics operation when the page fault indicator is set to the true value.

2. The method of claim 1 , further comprising setting the page fault indicator to a false value when memory addresses associated with the respective set of constants is allocated at the constant buffer.

3. The method of claim 2 , further comprising:

performing respective pre-fetch operations for each constant of the set of constants when the page fault indicator is set to the false value; and

performing the graphics operation after the performing of the respective pre-fetch operations.

4. The method of claim 3 , wherein the performing of the pre-fetch operations comprises loading the respective constants to a second memory that is an on-chip memory of a graphics processor.

5. The method of claim 4 , wherein the first memory is associated with a first latency, the second memory is associated with a second latency, and the first latency is greater than the second latency.

6. The method of claim 2 , wherein the page fault indicator is set to the false value after the performing of the graphics operation and before the querying of the first memory.

7. The method of claim 1 , further comprising:

performing respective fetch operations for each constant of the set of constants during the performing of the graphics operation.

8. The method of claim 7 , wherein the performing of each of the respective fetch operations results in the respective constant being loaded from the first memory to an on-chip memory of a graphics processor.

9. The method of claim 1 , wherein the graphics operation is associated with a plurality of pixels, and wherein the querying of the first memory is performed one time prior to the performing of the graphics operation associated with the plurality of pixels.

10. The method of claim 1 , wherein the first memory is configured to be accessible to a graphics processor and a central processor.

11. An apparatus for graphics processing, comprising:

a memory; and

at least one processor coupled to the memory and configured to:

perform a graphics operation associated with using a set of constants within a flow control, the set of constants being associated with a plurality of branches associated with the flow control;

query a first memory to determine whether memory addresses associated with the set of constants are allocated at a constant buffer of the first memory, wherein the at least one processor is configured to query the first memory by determining whether accessing a respective constant of the set of constants during the performing of the graphics operation could result in a data fault;

set a page fault indicator to a true value when the query indicates that at least one memory address associated with the set of constants is unallocated at the constant buffer, wherein the at least one memory address associated with the set of constants being unallocated at the constant buffer corresponds to a speculative page fault associated with at least one branch in the plurality of branches; and

perform, without performing any pre-fetch operations, the graphics operation when the page fault indicator is set to the true value.

12. The apparatus of claim 11 , wherein the at least one processor is further configured to set the page fault indicator to a false value when memory addresses associated with the respective set of constants is allocated at the constant buffer.

13. The apparatus of claim 12 , wherein the at least one processor is further configured to:

perform respective pre-fetch operations for each constant of the set of constants when the page fault indicator is set to the false value; and

perform the graphics operation after the performing of the respective pre-fetch operations.

14. The apparatus of claim 13 , wherein the at least one processor is configured to perform the pre-fetch operations by loading the respective constants to a second memory that is an on-chip memory of a graphics processor.

15. The apparatus of claim 14 , wherein the first memory is associated with a first latency, the second memory is associated with a second latency, and the first latency is greater than the second latency.

16. The apparatus of claim 12 , wherein the at least one processor is configured to set the page fault indicator to the false value after the performing of the graphics operation and before the querying of the first memory.

17. The apparatus of claim 11 , wherein the at least one processor is further configured to:

perform respective fetch operations for each constant of the set of constants during the performing of the graphics operation.

18. The apparatus of claim 17 , wherein the at least one processor is configured to perform each of the respective fetch operations by loading the respective constant from the first memory to an on-chip memory of a graphics processor.

19. The apparatus of claim 11 , wherein the graphics operation is associated with a plurality of pixels, and wherein the at least one processor is configured to perform the querying of the first memory one time prior to the performing of the graphics operation associated with the plurality of pixels.

20. The apparatus of claim 11 , wherein the apparatus includes a wireless communication device.

21. A non-transitory computer-readable medium storing computer executable code for display processing, comprising code to:

perform a graphics operation associated with using a set of constants within a flow control, the set of constants being associated with a plurality of branches associated with the flow control;

query a first memory to determine whether memory addresses associated with the set of constants are allocated at a constant buffer of the first memory, wherein the querying of the first memory comprises determining whether accessing a respective constant of the set of constants during the performing of the graphics operation could result in a data fault;

set a page fault indicator to a true value when the query indicates that at least one memory address associated with the set of constants is unallocated at the constant buffer, wherein the at least one memory address associated with the set of constants being unallocated at the constant buffer corresponds to a speculative page fault associated with at least one branch in the plurality of branches; and

perform, without performing any pre-fetch operations, the graphics operation when the page fault indicator is set to the true value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2020
From: GRUBER, ANDREW EVAN
To: QUALCOMM INCORPORATED
Reel/Frame 052393/0860 →
Continuity (1)
Related Publication 20210182140A1 · Jun 17, 2021