Multi-purpose events for notification and sequence control in multi-core processor systems
First Claim
Patent Images
1. A method comprising:
- receiving an event descriptor that identifies a particular event and a logic;
executing an instruction that specifies a plurality of events, including the particular event, to receive;
sending, on one or more wires that are exclusively dedicated for delivering events, said particular event by a device of a CPU to a global event distributor, wherein said global event distributor, a coprocessor, and said CPU reside on a same chip;
selecting, by said global event distributor based on said particular event, a subset plurality of coprocessors from a first plurality of coprocessors of said CPU, wherein said subset plurality of coprocessors contains at least said coprocessor and another coprocessor;
relaying said particular event from said global event distributor to said subset plurality of coprocessors;
waiting until any event of said plurality of events is received;
responsive to detecting said particular event is received, said coprocessor performing said logic.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are provided for improving the performance of a constellation of coprocessors by hardware support for asynchronous events. In an embodiment, a coprocessor receives an event descriptor that identifies an event and a logic. The coprocessor processes the event descriptor to configure the coprocessor to detect whether the event has been received. Eventually a device, such as a CPU or another coprocessor, sends the event. The coprocessor detects that it has received the event. In response to detecting the event, the coprocessor performs the logic.
166 Citations
17 Claims
-
1. A method comprising:
-
receiving an event descriptor that identifies a particular event and a logic; executing an instruction that specifies a plurality of events, including the particular event, to receive; sending, on one or more wires that are exclusively dedicated for delivering events, said particular event by a device of a CPU to a global event distributor, wherein said global event distributor, a coprocessor, and said CPU reside on a same chip; selecting, by said global event distributor based on said particular event, a subset plurality of coprocessors from a first plurality of coprocessors of said CPU, wherein said subset plurality of coprocessors contains at least said coprocessor and another coprocessor; relaying said particular event from said global event distributor to said subset plurality of coprocessors; waiting until any event of said plurality of events is received; responsive to detecting said particular event is received, said coprocessor performing said logic. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
a central processing unit (CPU); a first plurality of coprocessors that are connected to the CPU, including a coprocessor configured to; receive an event descriptor that identifies a particular event and a logic, execute an instruction that specifies a plurality of events, including the particular event, to receive by said coprocessor, wait until any event of said plurality of events is received, and responsive to detecting said particular event is received, perform said logic; a global event distributor connected to said first plurality of coprocessors and configured to; select, based on said particular event, a subset plurality of coprocessors from said first plurality of coprocessors, wherein said subset plurality of coprocessors contains at least said coprocessor and another coprocessor; and relay said particular event to said subset plurality of coprocessors, wherein said global event distributor, said coprocessor, and said CPU reside on a same chip; a device connected to the global event distributor and configured to send, on one or more wires that are exclusively dedicated for delivering events, said particular event to said global event distributor.
-
Specification