Function callback mechanism between a Central Processing Unit (CPU) and an auxiliary processor
First Claim
1. A processor platform comprising:
- a central processor unit (CPU);
a graphics processor unit (GPU);
a shared virtual memory to be accessible by the CPU, the shared virtual memory to be accessible by the GPU; and
a queue to store data corresponding to a function to be executed by the CPU, the queue implemented by a buffer structured to allow data elements to be at least one of written to or read from either end of the buffer, the GPU to write the data to the queue to cause the CPU to execute the function, the CPU to execute the function and set a completion flag accessible by the GPU when execution of the function by the CPU is complete.
1 Assignment
0 Petitions
Accused Products
Abstract
Generally, this disclosure provides systems, devices, methods and computer readable media for implementing function callback requests between a first processor (e.g., a GPU) and a second processor (e.g., a CPU). The system may include a shared virtual memory (SVM) coupled to the first and second processors, the SVM configured to store at least one double-ended queue (Deque). An execution unit (EU) of the first processor may be associated with a first of the Deques and configured to push the callback requests to that first Deque. A request handler thread executing on the second processor may be configured to: pop one of the callback requests from the first Deque; execute a function specified by the popped callback request; and generate a completion signal to the EU in response to completion of the function.
13 Citations
20 Claims
-
1. A processor platform comprising:
-
a central processor unit (CPU); a graphics processor unit (GPU); a shared virtual memory to be accessible by the CPU, the shared virtual memory to be accessible by the GPU; and a queue to store data corresponding to a function to be executed by the CPU, the queue implemented by a buffer structured to allow data elements to be at least one of written to or read from either end of the buffer, the GPU to write the data to the queue to cause the CPU to execute the function, the CPU to execute the function and set a completion flag accessible by the GPU when execution of the function by the CPU is complete. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method to invoke a function to be executed in a multiprocessor system, the method comprising:
-
writing, with a graphics processor unit (GPU) of the multiprocessor system, data in a queue, the queue implemented by a buffer structured to allow data to be at least one of written to or read from either end of the buffer, the data corresponding to the function, the function to be executed by a central processor unit (CPU) of the multiprocessor system; reading, with the CPU, the data from the queue; executing, with the CPU, the function based on the data; and setting, with the CPU, a completion flag accessible by the GPU when execution of the function is complete. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A processor system comprising:
-
a central processor unit (CPU); a graphics processor unit (GPU); and means for storing data corresponding to a function to be executed by the CPU, the means for storing data including a buffer structured to allow data to be at least one of written to or read from either end of the buffer, the GPU to write the data to the means for storing data to cause the CPU to execute the function, the CPU to execute the function and set a completion flag accessible by the GPU when execution of the function by the CPU is complete. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification