US2024001230A1PendingUtilityA1

Memory management in gaming rendering

Assignee: GOOGLE LLCPriority: Apr 10, 2018Filed: Sep 7, 2023Published: Jan 4, 2024
Est. expiryApr 10, 2038(~11.7 yrs left)· nominal 20-yr term from priority
A63F 13/355G06F 12/123G06T 1/20G06T 1/60G06T 15/005A63F 2300/538G06F 2212/154G06F 2212/455G06F 12/0811G06F 12/08G06F 2212/205G06F 12/023G06F 2212/1024G06F 2212/1048G06F 2212/1028G06F 12/0888G06F 9/5066Y02D10/00A63F 13/48A63F 13/52A63F 2300/203A63F 2300/5593H04L 67/131A63F 13/352
73
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Some implementations of this application are directed to a server system including one or more CPUs, a plurality of GPUs, main dynamic memory storing programs and data for use by the CPUs and/or GPUs during program execution, a static memory pool stored in a non-volatile memory, and a memory controller configured to manage the static memory pool. Each of the GPUs includes a local cache and is configured to access the static memory pool via the memory controller. The server system executes a plurality of gaming sessions for a gaming title in parallel on the one or more CPUs. Each of the plurality of gaming sessions is associated with a static data item stored in the static memory pool, and requires a graphics operation executable by a respective GPU using the static data item.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 - 20 . (canceled) 
     
     
         21 . A method, comprising:
 loading, by one or more central processing units (CPUs) of a server system, an executable program to a main dynamic memory of the server system;   executing in parallel, by the one or more CPUs, a plurality of program sessions corresponding to the executable program, each program session of the plurality of program sessions comprising a graphics operation executable by a respective graphics processing unit (GPU) assigned to render the respective program session;   identifying, by the one or more CPUs, a static data item used in the graphics operation of the plurality of program sessions;   storing, by a memory controller, the static data item in a static memory pool; and   enabling, by the memory controller, access of each assigned GPU to the static data item while performing the graphics operation.   
     
     
         22 . The method of  claim 21 , the static data item including a first static data item that is identified by the one or more CPUs in a list of predetermined static data items, and the method further comprising:
 storing by the memory controller in the static memory pool a first subset of static data items from the list of predetermined static data items, the first subset including the first static data item; and   storing by the memory controller in the main dynamic memory a second subset of static data items from the list of predetermined static data items.   
     
     
         23 . The method of  claim 21 , wherein the static data item is a standard static data item used in rendering of the executable program, and wherein the method further comprises:
 prior to storing the static data item in the static memory pool, retrieving the static data item from a hard drive of the server system or a remote library server.   
     
     
         24 . The method of  claim 21 , wherein the static data item is a custom static data item predefined by a developer of the executable program and stored in a hard drive of the server system, and wherein the method further comprises:
 prior to storing the static data item in the static memory pool, retrieving the static data item from the hard drive of the server system.   
     
     
         25 . The method of  claim 21 , further comprising:
 allocating by the one or more CPUs each GPU of a plurality of GPUs to a subset of the plurality of program sessions to be executed thereon; and   for each of the plurality of program sessions, during execution of the graphics operation by a respective GPU, obtaining by the respective GPU a copy of the static data item from the static memory pool via the memory controller and performing the graphics operation using the copy of the static data item.   
     
     
         26 . The method of  claim 25 , further comprising:
 for each program session of the plurality of program sessions, storing in the main dynamic memory a dynamic data item and user information in association with the program session during execution of the graphics operation.   
     
     
         27 . The method of  claim 25 , further comprising:
 for each of the plurality of program sessions, during execution of the graphics operation by the respective GPU, loading the copy of the static data item into a respective local cache of the respective GPU.   
     
     
         28 . The method of  claim 25 , wherein obtaining the copy of the static data item from the static memory pool comprises:
 loading the copy of the static data item into a local cache of the GPUs once and sharing the copy of the static data item by a subset of the GPUs corresponding to the subset of the plurality of program sessions.   
     
     
         29 . A server system, comprising:
 a main dynamic memory to store an executable program;   a static memory pool;   a plurality of GPUs that are each configured to render a respective program session of a plurality of program sessions corresponding to the executable program; and   one or more CPUs to load the executable program to the main dynamic memory, to execute in parallel the plurality of program sessions, and to identify a static data item used in a graphics operation executable by each GPU of the plurality of GPUs that is assigned to render a respective program session; and   a memory controller to store the static data item in the static memory pool and enable the GPUs to access the static data item while performing the graphics operation.   
     
     
         30 . The server system of  claim 29 , wherein the static data item includes a first static data item identified by the one or more CPUs in a list of predetermined static data items, and wherein the memory controller stores in the static memory pool a first subset of static data items that includes the first static data item and stores in the main dynamic memory a second subset of static data items. 
     
     
         31 . The server system of  claim 29 , wherein the static data item is a standard static data item used in rendering of the executable program, and wherein the static data item is retrieved from a hard drive of the server system or a remote library server prior to storage in the static memory pool. 
     
     
         32 . The server system of  claim 29 , wherein the static data item is a custom static data item predefined by a developer of the executable program and retrieved from a hard drive of the server system prior to storage in the static memory pool. 
     
     
         33 . The server system of  claim 29 , wherein the one or more CPUs are further configured to allocate each of the plurality of GPUs to a subset of the plurality of program sessions, and wherein to render the respective program session includes to obtain a copy of the static data item from the static memory pool and execute the graphics operation using the copy. 
     
     
         34 . The server system of  claim 33 , wherein to render the respective program session includes to store a dynamic data item and user information in a portion of the main dynamic memory associated with the program session. 
     
     
         35 . The server system of  claim 33 , wherein to render the respective program session includes to load the copy of the static data item into a local cache of the assigned GPU during execution of the graphics operation. 
     
     
         36 . The server system of  claim 33 , wherein a subset of GPUs load the copy of the static data item into a local cache once and share the copy for the subset of the program sessions. 
     
     
         37 . A non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors of a server system, cause the server system to:
 load an executable program to a main dynamic memory;   execute in parallel, by the one or more processors, a plurality of program sessions corresponding to the executable program, each program session of the plurality of program sessions comprising a graphics operation executable by a respective graphics processing unit (GPU) assigned to render the respective program session;   identify a static data item used in the graphics operations of the plurality of program sessions;   store the static data item in a static memory pool; and   enable access of each assigned GPU to the static data item while performing the graphics operation.   
     
     
         38 . The non-transitory computer-readable storage medium of  claim 37 , wherein the static data item includes a first static data item identified in a list of predetermined static data items, and wherein the memory controller stores a first subset of static data items in the static memory pool and a second subset in the main dynamic memory. 
     
     
         39 . The non-transitory computer-readable storage medium of  claim 37 , wherein the instructions further cause the server system to allocate each GPU to a subset of program sessions, and wherein to render the respective program session includes to obtain a copy of the static data item from the static memory pool to execute the graphics operation. 
     
     
         40 . The non-transitory computer-readable storage medium of  claim 39 , wherein to render the respective program session includes to store a dynamic data item and user information in a portion of the main dynamic memory associated with the program session.

Join the waitlist — get patent alerts

Track US2024001230A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.