SEMAPHORE SOFT AND HARD HYBRID ARCHITECTURE
First Claim
1. A packet processing device comprising:
- a plurality of processing stages, including a first processing stage and a second processing stage arranged as a packet processing pipeline;
the first processing stage and the second processing stage each comprising;
a respective processor configured to process a packet of a packet stream, anda respective resource manager having a respective local resource lock corresponding to a remote resource;
the respective processor being further configured to request the respective resource manager to allocate the remote resource;
the respective resource manager being further configured to respond to the request to allocate the remote resource by locking the remote resource with the respective local resource lock and allocating the remote resource;
the respective processor being further configured to implement a packet processing operation associated with the allocated remote resource.
0 Assignments
0 Petitions
Accused Products
Abstract
A packet processing device has a plurality of processing stages, including a first processing stage and a second processing stage arranged as a packet processing pipeline. The first processing stage and the second processing stage each have a respective processor configured to process a packet of a packet stream and a respective resource manager having a respective local resource lock corresponding to a remote resource. The respective processor requests the respective resource manager to allocate the remote resource. The respective resource manager responds to the request to allocate the remote resource by locking the remote resource with the respective local resource lock and allocating the remote resource. The respective processor implements a packet processing operation associated with the allocated remote resource.
-
Citations
20 Claims
-
1. A packet processing device comprising:
-
a plurality of processing stages, including a first processing stage and a second processing stage arranged as a packet processing pipeline; the first processing stage and the second processing stage each comprising; a respective processor configured to process a packet of a packet stream, and a respective resource manager having a respective local resource lock corresponding to a remote resource; the respective processor being further configured to request the respective resource manager to allocate the remote resource; the respective resource manager being further configured to respond to the request to allocate the remote resource by locking the remote resource with the respective local resource lock and allocating the remote resource; the respective processor being further configured to implement a packet processing operation associated with the allocated remote resource. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A packet processing device, comprising:
-
a plurality of processing stages arranged as a packet processing pipeline; the processing stages each having processor cores and buffers; the processor cores and buffers of the processing stages defining a plurality of paths, for simultaneous packet processing, through the packet processing pipeline; an ingress front end configured to direct each packet of an incoming stream of packets into one of the plurality of paths; the plurality of paths including a hard path and a soft path, the hard path being configured to process received ones of the incoming stream of packets with fixed latency, the soft path being configured to process received ones of the incoming stream of packets with variable latency; and the processing stages each further including a respective resource manager configured to request allocation of a remote resource, for a given packet of the incoming stream of packets in the soft path, in response to an instruction from one of the processor cores, whereby the remote resource is allocated for processing of only the given packet. - View Dependent Claims (9, 10, 11)
-
-
12. A packet processing method, for a processing stage of a pipeline packet processing device, comprising:
-
receiving, at a processor of a first processing stage, a first packet and a request for allocation of a remote resource; responding, by the processor, to the allocation request, by setting a semaphore corresponding to the remote resource to indicate a locked status; implementing a first packet processing operation, in association with the allocated remote resource, and in association with the first packet, to obtain a processed first packet; and outputting the processed first packet to a next processing stage of the pipeline packet processing device. - View Dependent Claims (13, 14, 15)
-
-
16. A packet processing device comprising:
-
a plurality of processing stages, arranged as a packet processing pipeline, configured to process packets in a first direction along the packet processing pipeline; a lock release message path connecting the plurality of processing stages, configured to communicate along a second direction opposite to said first direction; each of the plurality of processing stages including; a respective local resource lock, and a respective processor core; and the respective processor core being configured to send, along the lock release message path, a resource lock release request message identifying one of the plurality of processing stages and identifying a resource to be released. - View Dependent Claims (17, 18, 19, 20)
-
Specification