Techniques for reducing thread overhead for systems with multiple multi-theaded processors
First Claim
1. A method for processing requests from a processing thread for a shared resource shared among a plurality of processing threads, comprising the steps of:
- receiving, from a portion of a thread that is executed during a single wake interval on a particular processor, a bundle of requests comprising a plurality of commands for one or more shared resources;
processing the bundle of requests at the one or more shared resources to produce a bundle result; and
sending the bundle result to the particular processor,wherein the thread undergoes no more than one wake interval to sleep interval cycle while the plurality of commands are processed at the one or more shared resources.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for processing requests from a processing thread for a shared resource shared among threads on one or more processors include receiving a bundle of requests from a portion of a thread that is executed during a single wake interval on a particular processor. The bundle includes multiple commands for one or more shared resources. The bundle is processed at the shared resource(s) to produce a bundle result. The bundle result is sent to the particular processor. The thread undergoes no more than one wake interval to sleep interval cycle while the bundle commands are processed at the shared resource(s). These techniques allow a lock for shared resource(s) to be obtained, used and released all while the particular thread is sleeping, so that locks are held for shorter times than in conventional approaches. Using these techniques, line rate packet processing is more readily achieved in routers with multiple multi-threaded processors.
171 Citations
20 Claims
-
1. A method for processing requests from a processing thread for a shared resource shared among a plurality of processing threads, comprising the steps of:
-
receiving, from a portion of a thread that is executed during a single wake interval on a particular processor, a bundle of requests comprising a plurality of commands for one or more shared resources; processing the bundle of requests at the one or more shared resources to produce a bundle result; and sending the bundle result to the particular processor, wherein the thread undergoes no more than one wake interval to sleep interval cycle while the plurality of commands are processed at the one or more shared resources. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus for processing requests from a processing thread for a shared resource shared among a plurality of processing threads, comprising:
-
means for receiving, from a portion of a thread that is executed during a single wake interval on a particular processor, a bundle of requests comprising a plurality of commands for one or more shared resources; means for processing the bundle of requests at the one or more shared resources to produce a bundle result; and means for sending the bundle result to the particular processor, wherein the thread undergoes no more than one wake interval to sleep interval cycle while the plurality of commands are processed at the one or more shared resources.
-
-
11. An apparatus for processing requests from a processing thread for a shared resource shared among a plurality of processing threads, comprising:
-
one or more multi-threaded processors that each allow alternate execution of a plurality of processing threads; one or more shared resources shared among a plurality of processing threads; and a shared resource distribution block disposed between the one or more multi-threaded processors and the one or more shared resources, wherein the shared resource distribution block is configured to perform the steps of receiving, from a portion of a particular thread that is executed during a single wake interval on a particular processor, a bundle of requests comprising a plurality of commands for one or more shared resources; distributing the bundle of requests to the one or more shared resources to produce a bundle result; and causing the bundle result to be sent to the particular processor while the particular thread undergoes no more than one wake interval to sleep interval cycle. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification