IP Library Granted Patent US 8,941,655
Granted Patent B2
US 8,941,655 · App. 13/227,363 · Granted Jan 27, 2015

Memory copy engine for graphics processing

Inventors: Petri Olavi Nordlund (Lieto, FI); Jukka-Pekka Arvo (Raisio, FI); Robert J. Simpson (Espoo, FI)
Assignee: QUALCOMM Incorporated
G06F12/0802G06F15/167G06T1/60
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 8,941,655
App. No.
13/227,363
Granted
Jan 27, 2015
Kind
B2
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.

Claims (78)

1. 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.

2. The apparatus of claim 1 , wherein the memory copy engine, the shader processor, and the local memory are separate from one another and on a chip of the GPU.

3. The apparatus of claim 1 , wherein the modified first data comprises source data and the second data comprises results data resulting from the processing of the source data.

4. The apparatus of claim 1 , wherein the memory copy engine is implemented as hardware or software executing on hardware, and wherein the hardware is separate from the shader processor and on a chip of the GPU.

5. The apparatus of claim 1 , wherein the shader processor is at least one of not configured to retrieve the first data from the system memory, or not configured to store the second data into the system memory.

6. The apparatus of claim 1 , wherein the shader processor is configured to execute instructions for arithmetic operations to process the modified first data to generate the second data.

7. The apparatus of claim 1 , wherein the apparatus comprises at least one of a media player, a set-top box, a wireless handset, a personal digital assistant (PDA), a desktop computer, a laptop computer, a gaming console, a video conferencing unit, or a tablet computing device.

8. The apparatus of claim 1 , wherein the memory copy engine is configured to retrieve a third data from or store the third data into the system memory simultaneously with the shader processor retrieving a fourth data from the local memory, processing the fourth data, or storing the fourth data into the local memory.

9. 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.

10. The method of claim 9 , wherein the memory copy engine, the shader processor, and the local memory are separate from one another and on a chip of the GPU.

11. The method of claim 9 , wherein the modified first data comprises source data and the second data comprises results data resulting from the processing of the source data.

12. The method of claim 9 , wherein the shader processor is at least one of not configured to retrieve the first data from the system memory, and not configured to store the second data into the system memory.

13. The method of claim 9 , wherein processing the modified first data to generate the second data comprises executing instructions for arithmetic operations to process the modified first data to generate the second data.

14. The method of claim 9 , further comprising:

retrieving, with the memory copy engine, a third data from or storing the third data into the system memory; and

simultaneously, with the shader processor, retrieving a fourth data from the local memory, processing the fourth data, or storing the fourth data into the local memory.

15. 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.

16. The apparatus of claim 15 , wherein the memory copy engine, the shader processor, and the local memory are separate from one another and on a chip of the GPU.

17. The apparatus of claim 15 , wherein the modified first data comprises source data and the second data comprises results data resulting from the processing of the source data.

18. The apparatus of claim 15 , wherein the shader processor is at least one of not configured to retrieve the first data from the system memory, or not configured to store the second data into the system memory.

19. The apparatus of claim 15 , wherein the means for processing the modified first data to generate the second data comprises means for executing instructions for arithmetic operations to process the modified first data to generate the second data.

20. The apparatus of claim 15 , wherein the apparatus comprises at least one of a media player, a set-top box, a wireless handset, a personal digital assistant (PDA), a desktop computer, a laptop computer, a gaming console, a video conferencing unit, or a tablet computing device.

21. The apparatus of claim 15 , wherein the memory copy engine further comprises:

means for retrieving a third data from or storing the third data into the system memory, and

wherein the shader processor further comprises:

means for simultaneously retrieving a fourth data from the local memory, processing the fourth data, or storing the fourth data into the local memory.

22. 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.

23. The non-transitory computer readable storage medium of claim 22 , wherein the memory copy engine, the shader processor, and the local memory are separate from one another and on a chip of the GPU.

24. The non-transitory computer readable storage medium of claim 22 , wherein the modified first data comprises source data and the second data comprises results data resulting from the processing of the source data.

25. The non-transitory computer readable storage medium of claim 22 , wherein the shader processor is at least one of not configured to retrieve the first data from the system memory, or not configured to store the second data into the system memory.

26. The non-transitory computer readable storage medium of claim 22 , wherein the instructions that cause the GPU to process the modified first data to generate the second data comprise instructions that cause the GPU to execute instructions for arithmetic operations to process the modified first data to generate the second data.

27. The non-transitory computer readable storage medium of claim 22 , further comprising instructions to:

retrieve, with the memory copy engine, a third data from or store the third data into the system memory; and

simultaneously, with the shader processor, retrieve a fourth data from the local memory, process the fourth data, or store the fourth data into the local memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2011
From: NORDLUND, PETRI OLAVI; ARVO, JUKKA-PEKKA; SIMPSON, ROBERT J.
To: QUALCOMM INCORPORATED
Reel/Frame 026868/0841 →
Continuity (1)
Related Publication 20130057562A1 · Mar 7, 2013