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; and
the respective resource manager of the second processing stage being further configured to release a remote resource, external to the packet processing pipeline, locked by the first processing stage in the packet processing pipeline.
7 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.
57 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; and the respective resource manager of the second processing stage being further configured to release a remote resource, external to the packet processing pipeline, locked by the first processing stage in the packet processing pipeline. - 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; and a respective resource manager of a second processing stage, of the processing stages, being further configured to release a remote resource, external to the packet processing pipeline, locked by a first processing stage, of the processing stages in the packet processing pipeline. - View Dependent Claims (9, 10, 11)
-
-
12. A packet processing method, for a plurality of processing stages 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 controlling a respective resource manager of the first processing stage to set a semaphore locking the remote resource and allocating the remote resource; implementing, by the processor, 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; and releasing, by a respective resource manager of the next processing stage, the remote resource, external to the pipeline, locked by an upstream processing stage in the pipeline. - 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 manager having a respective local resource lock corresponding to a remote resource, and a respective processor core; and a respective local resource manager, of a first of the plurality of processing stages, being configured to respond to a request to allocate the remote resource by locking the remote resource with the respective local resource lock; a respective processor core of the first of the plurality of processing stages being configured to implement a packet processing operation associated with the allocated remote resource; a respective processor core of a second of the plurality of processing stages 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; and the respective resource manager of a second processing stage, of the processing stages, being further configured to release the remote resource, external to the packet processing pipeline, locked by the first of the processing stages in the packet processing pipeline. - View Dependent Claims (17, 18, 19, 20)
-
Specification