Method for parallel processing of events within multiple event contexts maintaining ordered mutual exclusion
First Claim
Patent Images
1. A method comprising:
- dynamically binding an event context to an execution context in response to receiving an event by;
storing arriving events into a global event queue that is accessible by event contexts;
storing events from the global event queue in per-execution context event queues; and
associating event queues with the execution contexts to temporarily store the events for the event context for a duration of the binding to dynamically bind the events received on a per-event basis in the context queues.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for parallel processing of events within multiple event contexts include dynamically binding an event context to an execution context in response to receiving an event by storing arriving events into a global event queue and storing events from the global event queue in per-execution context event queues. The techniques associate event queues with the execution contexts to temporarily store the events for a duration of the binding and thus dynamically bind the events received on a per-event basis in the context queues.
46 Citations
51 Claims
-
1. A method comprising:
-
dynamically binding an event context to an execution context in response to receiving an event by;
storing arriving events into a global event queue that is accessible by event contexts;
storing events from the global event queue in per-execution context event queues; and
associating event queues with the execution contexts to temporarily store the events for the event context for a duration of the binding to dynamically bind the events received on a per-event basis in the context queues. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of processing data flows, the method comprising:
-
assigning a processing thread to an entry of a content addressable memory included in a processing engine of a processor including multiple processing engines;
receiving a data flow by the processor;
determining if an identifier associated with the data flow is stored in the entry in the content addressable memory; and
if the identifier is stored in the entry, providing the received data flow to the thread for processing. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A method comprising:
-
providing an execution thread a software token to place the thread into a free list, the token representing the position of the thread in a queue;
when the thread wakes up, checking whether the thread has the token of the thread at the head of the queue. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A computer program product residing on a computer readable medium for dynamically binding an event context to an execution context in response to receiving an event comprising instructions for causing a processor to:
-
store events into a global event queue that is accessible by event contexts;
store events from the global event queue in per-execution context event queues; and
associate FIFO event queue with the execution context to temporarily store the events for that event context for a duration of the binding to dynamically bind the events received on a per-event basis in the context queues. - View Dependent Claims (28, 29, 30, 31, 32)
-
-
33. A computer program product residing on a computer readable medium for processing data flows comprising instructions for causing a processor to:
-
assign a processing thread to an entry of a content addressable memory included in a processing engine of a processor including multiple processing engines;
receive a data flow by the processor;
determine if an identifier associated with the data flow is stored in the entry in the content addressable memory; and
if the identifier is stored in the entry, provide the received data flow to the thread for processing. - View Dependent Claims (34, 35, 36)
-
-
37. A computer program product residing on a computer readable medium for processing data flows comprising instructions for causing a processor to:
-
provide an execution thread a software token to place the thread into a free list, the token representing the position of the thread in a queue;
when the thread wakes up, check whether the thread has the token of the thread at the head of the queue.
-
- 38. The computer program product of claim 38 wherein if the token matches then the thread is the correct thread and starts processing.
-
42. Apparatus comprising:
-
a processor including multiple processing engines, each processing engine including multiple event contexts;
circuitry to dynamically bind an event context to an execution context in response to receiving an event;
a global event queue that is accessible by all event contexts to store arriving events;
per-execution context event queues to store events from the global event queue; and
a FIFO event queue to temporarily store the events for that event context for a duration of the binding and to dynamically bind the events received on a per-event basis in the context queues. - View Dependent Claims (43)
-
-
44. Apparatus for processing data flows, the apparatus comprising:
-
a processor including multiple processing engines; and
a memory executing a computer program product including instructions for causing the processor to;
assign a processing thread to an entry of a content addressable memory included in a processing engine of a processor including multiple processing engines;
receive a data flow by the processor;
determine if an identifier associated with the data flow is stored in the entry in the content addressable memory; and
if the identifier is stored in the entry, provide the received data flow to the thread for processing. - View Dependent Claims (45, 46, 47)
-
-
48. A system comprising:
-
a router including an input port for receiving data packets and a switch fabric for determining the destination of the data packets; and
a processor capable of, providing an execution thread a software token to place the thread into a free list, the token representing the position of the thread in a queue;
when the thread wakes up, checking whether the thread has the token of the thread at the head of the queue. - View Dependent Claims (49, 50, 51)
-
Specification