Passing work between threads
First Claim
Patent Images
1. A method, comprising:
- at a first thread of a set of threads provided by a processor comprising multiple multi-threaded processing units integrated in a single die;
receiving identification of a network packet;
issuing a request for a lock;
if the lock is granted;
performing at least one operation for the network packet;
determining if another thread has passed identification of a second network packet belonging to the same flow as the first thread to the first thread;
performing at least one operation for the network packet; and
if the lock is not granted;
determining a thread owning the lock; and
passing identification of the network packet to the determined thread owning the lock.
1 Assignment
0 Petitions
Accused Products
Abstract
In general, in one aspect, the disclosure describes passing work, such as a packet, between threads of a multi-threaded system.
86 Citations
17 Claims
-
1. A method, comprising:
at a first thread of a set of threads provided by a processor comprising multiple multi-threaded processing units integrated in a single die;
receiving identification of a network packet;
issuing a request for a lock;
if the lock is granted;
performing at least one operation for the network packet;
determining if another thread has passed identification of a second network packet belonging to the same flow as the first thread to the first thread;
performing at least one operation for the network packet; and
if the lock is not granted;
determining a thread owning the lock; and
passing identification of the network packet to the determined thread owning the lock. - View Dependent Claims (2, 3, 4)
-
5. A processor, comprising:
-
multiple multi-threaded processing units integrated on a single die;
circuitry coupled to the multiple multi-threaded processing units integrated on the single die, the circuitry to;
receive lock requests from threads executing on the multiple multi-threaded processing units;
respond to lock requests with an identification of a thread currently owning the lock if the requested lock owned by a thread;
receive requests to release locks from threads executing on the multiple multi-threaded processing units; and
respond to the request to release locks based on requests for the lock received while the lock is owned by a thread. - View Dependent Claims (6, 7, 8)
-
-
9. A computer program product, disposed on a computer readable medium, the product comprising instructions for causing a processing having multiple multi-threaded processing units integrated in a single die to:
at a first thread of a set of threads provided by the;
receiving identification of a network packet;
issuing a request for a lock;
if the lock is granted;
performing at least one operation for the network packet;
determining if another thread has passed identification of a second network packet belonging to the same flow as the first thread to the first thread;
performing at least one operation for the network packet; and
if the lock is not granted;
determining a thread owning the lock; and
passing identification of the network packet to the determined thread owning the lock. - View Dependent Claims (10, 11, 12)
-
13. A method, comprising:
-
assigning a work item to a first of multiple peer threads provided by a multi-threaded processor, the work item being part of a flow of work items; and
reassigning, by the first of the multiple peer threads, the work item to a different one of the multiple peer threads. - View Dependent Claims (14, 15, 16, 17)
-
Specification