Function callback mechanism between a central processing unit (CPU) and an auxiliary processor
First Claim
1. A system for implementing function callback requests between a first processor and a second processor, said system comprising:
- a shared virtual memory (SVM) coupled to said first and second processors, said SVM to store at least one double-ended queue (Deque);
an execution unit (EU) of said first processor, said EU associated with a first of said Deques, to push said callback requests to said first Deque; and
a request handler thread executing on said second processor to;
pop one of said callback requests from said first Deque;
execute a function specified by said popped callback request; and
generate a completion signal to said EU in response to completion of said function.
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.
-
Citations
25 Claims
-
1. A system for implementing function callback requests between a first processor and a second processor, said system comprising:
-
a shared virtual memory (SVM) coupled to said first and second processors, said SVM to store at least one double-ended queue (Deque); an execution unit (EU) of said first processor, said EU associated with a first of said Deques, to push said callback requests to said first Deque; and a request handler thread executing on said second processor to; pop one of said callback requests from said first Deque; execute a function specified by said popped callback request; and generate a completion signal to said EU in response to completion of said function. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for function callback requests between a first processor and a second processor, said method comprising:
-
pushing said callback requests, by an execution unit (EU) of said first processor, to a first double-ended queue (Deque), said Deque stored in a shared virtual memory (SVM) coupled to said first and second processors; popping one of said callback requests from said first Deque, by a request handler thread executing on said second processor; executing, by said request handler thread, a function specified by said popped callback request; and generating, by said request handler thread, a completion signal to said EU in response to completion of said function. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. At least one computer-readable storage medium having instructions stored thereon which when executed by a processor result in the following operations for function callback requests between a first processor and a second processor, said operations comprising:
-
pushing said callback requests, by an execution unit (EU) of said first processor, to a first double-ended queue (Deque), said Deque stored in a shared virtual memory (SVM) coupled to said first and second processors; popping one of said callback requests from said first Deque, by a request handler thread executing on said second processor; executing, by said request handler thread, a function specified by said popped callback request; and generating, by said request handler thread, a completion signal to said EU in response to completion of said function. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
-
Specification