Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of operating a computer system running a graphics application context having threads, comprising the steps of: sending forward progress information to a processor after a client causes a page fault exception because a thread requires a page missing from a frame buffer, wherein the forward progress information specifies whether, immediately prior to the page fault exception, the client made forward progress on behalf of the context; adding the missing page to a page list stored in a frame buffer; tagging the missing page as a required page, wherein each tagged page within the page list is required for the client to make forward progress on behalf of the context; if the forward progress information specifies that, immediately prior to the page fault exception, the client made forward progress on behalf of the context, clearing all tags other than a tag associated with the missing page; and if the forward progress information specifies that, immediately prior to the page fault exception, the client did not make forward progress on behalf of the context, maintaining the tagged pages within the page list in the frame buffer until the client makes forward progress on behalf of the context.
2. The method of claim 1 , wherein forward progress information comprises a forward progress bit.
3. The method of claim 1 , wherein the page list is dynamically sized.
4. The method of claim 1 , wherein page swapping of a page in the frame buffer that is tagged is prohibited.
5. The method of claim 4 , wherein one or more pages in the frame buffer having cleared tags are removed from the frame buffer to make room for the missing page.
6. A computer readable medium containing instructions for a processor that controls a computer system running a graphics application context having threads to perform the steps of: sending forward progress information to a processor after a client causes a page fault exception because a thread requires a page missing from a frame buffer, wherein the forward progress information specifies whether, immediately prior to the page fault exception, the client made forward progress on behalf of the context; adding the missing page to a page list stored in a frame buffer; tagging the missing page as a required page, wherein each tagged page within the page list is required for the client to make forward progress on behalf of the context; if the forward progress information specifies that, immediately prior to the page fault exception, the client made forward progress on behalf of the context, clearing all tags other than a tag associated with the missing page; and if the forward progress information specifies that, immediately prior to the page fault exception, the client did not make forward progress on behalf of the context, maintaining the tagged pages within the page list in the frame buffer until the client makes forward progress on behalf of the context.
7. The computer readable medium of claim 6 , wherein sending forward progress information is comprised of sending a forward progress bit.
8. The computer readable medium of claim 6 , wherein the page list is dynamically sized.
9. The computer readable medium of claim 6 , wherein page swapping of a page in the frame buffer that is tagged is prohibited.
10. The computer readable medium of claim 9 , wherein one or more pages in the frame buffer having cleared tags are removed from the frame buffer to make room for the missing page.
11. A computer system having a graphic sub-system with a plurality of clients, comprising: a frame buffer memory for storing a first plurality of pages of data; a non-resident memory for storing a second plurality of pages of data; a plurality of clients for running contexts, wherein each client can access pages of said first plurality of pages of data when servicing a context, and where each client can send a virtual page request; a memory management unit for receiving virtual page requests, said memory manager further for sending a page fault if the requested page is not a page of said first plurality of pages of data and is thus a missing page, wherein said page fault identifies said missing page; a plurality of memory devices, each operatively connected to an associated client and to said memory management unit; a host interface that sends contexts to said plurality of clients, wherein a context includes threads that cause pages of data to be requested, said host controller further for receiving page faults from said memory management unit and for sending missing page information; a processor for selectively swapping a page of data from said second plurality of pages of data into first plurality of pages of data and for swapping a page of data from said first plurality of pages of data into said second plurality of pages of data, said selective swapping being performed in response to said missing page information, said processor further for supply said host interface with contexts; wherein when a first client of said plurality of clients makes forward progress on a context thread said first client sets its associated memory device to report forward progress; wherein when said first client requests a page of data that is not in said frame buffer said memory management unit creates a page fault exception that includes the state of the memory device associated with said first client; wherein the page fault exception causes said host interface to send missing page information and forward progress information to said processor; wherein said processor swaps the missing page of data from said second plurality of pages of data into said first plurality of pages of data and a selected page of data from said first plurality of pages of data into said second plurality of pages of data; wherein the swapped missing page of data is added as a tagged page in a required page list; wherein each tagged page within the required page list is required for the first client to make forward progress on the context thread; wherein the tagged pages within the required page list are maintained in the frame buffer until the first client makes forward progress on the context thread; wherein the selected page of data is not a tagged page in the required page list; wherein, when forward progress is reported, all of the tags in the required page list, except for the missing page of data, are cleared; and wherein when said first client runs said context again the state of the memory device associated with the first client is reset.
12. The computer system of claim 11 wherein the frame buffer memory is a physical memory.
13. The computer system of claim 11 wherein the graphic sub-system is a graphics processing unit.
14. The computer system of claim 11 wherein the processor further determines a maximum time in which each client of said plurality of clients can run a context.
15. The computer system of claim 11 wherein said processor implements a virtual memory manager.
16. The computer system of claim 11 wherein the page fault exception causes said host controller to switch clients to allow another context thread to run.
Unknown
May 6, 2008
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.