Memory copy engine for graphics processing
AssigneeQUALCOMM Incorporated
InventorsPetri Olavi Nordlund, Jukka-Pekka Arvo, Robert J. Simpson
Life of this patent
Estimating the term…
Abstract
The example techniques described in this disclosure may be directed to interaction between a graphics processing unit (GPU) and a system memory. For example, the GPU may include a memory copy engine that handles tasks related to accessing data that is stored or is to be stored in the system memory. In addition, in some examples, the memory copy engine may perform additional tasks such as modification tasks to increase the performance of the GPU.
Claims27
An apparatus comprising:
- a system memory that is accessible via a system bus;
- and
- a graphics processing unit (GPU) comprising:
- a local memory;
- a memory copy engine configured to retrieve first data from the system memory via the system bus, perform one or more modification tasks on the first data, store the modified first data into the local memory, retrieve second data from the local memory, perform one or more modification tasks on the second data, and store the modified second data into the system memory via the system bus, wherein the modification tasks comprise at least one of gathering and compacting data, color conversion of data, compression of data, decompression of data, or conversion of data generated by one shader program into a data form usable by another shader program and store the second data into the system memory via the system bus;
- and
- a shader processor configured to retrieve the modified first data from the local memory, process the modified first data to generate the second data, and store the second data into the local memory,
- wherein the memory copy engine is further configured to indicate to the shader processor that the memory copy engine completed at least one of storing the modified first data into the local memory or storing the modified second data into the system memory.
A method comprising:
- retrieving, with a memory copy engine of a graphics processing unit (GPU), first data from system memory that is external to the GPU via a system bus;
- performing, with the memory copy engine of the GPU, one or more modification tasks on the first data;
- storing, with the memory copy engine of the GPU, the modified first data into local memory of the GPU;
- retrieving, with a shader processor of the GPU, the modified first data from the local memory;
- processing, with the shader processor of the GPU, the modified first data to generate a second data;
- storing, with the shader processor of the GPU, the second data into the local memory;
- retrieving, with the memory copy engine of the GPU, the second data from the local memory;
- performing, with the memory copy engine of the GPU, one or more of the modification tasks on the second data;
- storing, with the memory copy engine of the GPU, the modified second data into the system memory via the system bus;
- and
- indicating, with the memory copy engine to the shader processor, that the memory copy engine completed at least one of storing the modified first data into the local memory or storing the modified second data into the system memory,
- wherein the modification tasks comprise at least one of gathering and compacting data, color conversion of data, compression of data, decompression of data, or conversion of data generated by one shader program into a data form usable by another shader program.
An apparatus comprising:
- a system memory that is accessible via a system bus;
- and
- a graphics processing unit (GPU) that is external to the system memory, the GPU comprising a local memory, a shader processor, and a memory copy engine,
- the memory copy engine comprising:
- means for retrieving first data from the system memory via the system bus;
- means for performing one or more modification tasks on the first data;
- means for storing the modified first data into the local memory;
- the shader processor comprising:
- mean for retrieving the modified first data from the local memory;
- means for processing the modified first data to generate a second data;
- means for storing the second data into the local memory;
- the memory copy engine further comprising:
- means for retrieving the second data from the local memory;
- means for performing one or more of the modification tasks on the second data;
- means for storing, the modified second data into the system memory via the system bus;
- and
- means for indicating, to the shader processor, that the memory copy engine completed at least one of storing the modified first data into the local memory or storing the modified second data into the system memory,
- wherein the modification tasks comprise at least one of gathering and compacting data, color conversion of data, compression of data, decompression of data, or conversion of data generated by one shader program into a data form usable by another shader program.
A non-transitory computer readable storage medium comprising instructions that cause a graphics processing unit (GPU) to:
- retrieve, with a memory copy engine of the GPU, first data from system memory that is external to the GPU via a system bus;
- perform, with the memory copy engine of the GPU, one or more modification tasks on the first data;
- store, with the memory copy engine of the GPU, the modified first data into local memory of the GPU;
- retrieve, with a shader processor of the GPU, the modified first data from the local memory;
- process, with the shader processor of the GPU, the modified first data to generate a second data;
- store, with the shader processor of the GPU, the second data into the local memory;
- retrieve, with the memory copy engine of the GPU, the second data from the local memory;
- perform, with the memory copy engine of the GPU, one or more of the modification tasks on the second data;
- store, with the memory copy engine of the GPU, the modified second data into the system memory via the system bus;
- and
- indicate, with the memory copy engine to the shader processor, that the memory copy engine completed at least one of storing the modified first data into the local memory or storing the modified second data into the system memory,
- wherein the modification tasks comprise at least one of gathering and compacting data, color conversion of data, compression of data, decompression of data, or conversion of data generated by one shader program into a data form usable by another shader program.
Dependencies are inferred from the claim text.