Method of extending default fixed number of processing cycles in pipelined packet processor architecture
First Claim
1. In a packet processing system, a method comprising:
- implementing a processing pipeline having a fixed number of processing cycles, the fixed number of processing cycles to be applied to each packet through the pipeline as a default fixed number of processing cycles;
maintaining a count of a number of processing cycles performed or remaining for each packet relative to the default fixed number of processing cycles, wherein the count of the number of processing cycles performed or remaining for each packet is maintained within a FIFO (First In First Out) buffer of the packet processing system as state data within a pointer to the corresponding packet maintained in a separate and distinct FIFO buffer having the corresponding packet buffered therein;
prior to completion of the default fixed number of processing cycles for each packet;
determining whether processing is complete for the packet or whether extended processing is required for the packet,setting a DONE bit for the packet when processing is complete for the packet prior to completion of the default fixed number of processing cycles, andsetting an extension bit when extended processing is required for the packet in excess of the default fixed number of processing cycles for the packet;
exiting each packet from the processing pipeline having its respective DONE bit is set;
allocating excess cycles in the processing pipeline for each packet exited from the processing pipeline due to having its respective DONE bit set, to one or more packets having their respective extension bit set indicating extended processing is required for the one or more packets, wherein a quantity of excess cycles allocated corresponds to the difference between the count of the number of processing cycles performed or remaining for each packet exited from the processing pipeline due to having its respective DONE bit relative to the default fixed number of processing cycles; and
applying the excess cycles in the processing pipeline to the extended processing required for each packet having its respective extension bit set, wherein the excess cycles are applied to each packet having its respective extension bit set through a subsequent cycle of the same processing pipeline.
8 Assignments
0 Petitions
Accused Products
Abstract
In a packet processing system, where a packet processor normally performs a fixed number of processing cycles on a packet as it progresses through a processing pipeline, a method of extending the fixed number of processing cycles for a particular packet is provided. During the processing of a packet, an extension bit associated with the packet is set to an “on” state if extended processing of the packet is needed. While the extension bit is set to that state, updating of a count, indicating the number of processing cycles that has been undertaken for the packet, is inhibited. When the extended processing of the packet has been completed, the extension bit for the packet is set to an “off” state, and the updating of the count resumed. When that count indicates the number of processing cycles the packet has undergone equals or exceeds the fixed number, the packet is exited from the pipeline.
-
Citations
17 Claims
-
1. In a packet processing system, a method comprising:
-
implementing a processing pipeline having a fixed number of processing cycles, the fixed number of processing cycles to be applied to each packet through the pipeline as a default fixed number of processing cycles; maintaining a count of a number of processing cycles performed or remaining for each packet relative to the default fixed number of processing cycles, wherein the count of the number of processing cycles performed or remaining for each packet is maintained within a FIFO (First In First Out) buffer of the packet processing system as state data within a pointer to the corresponding packet maintained in a separate and distinct FIFO buffer having the corresponding packet buffered therein; prior to completion of the default fixed number of processing cycles for each packet; determining whether processing is complete for the packet or whether extended processing is required for the packet, setting a DONE bit for the packet when processing is complete for the packet prior to completion of the default fixed number of processing cycles, and setting an extension bit when extended processing is required for the packet in excess of the default fixed number of processing cycles for the packet; exiting each packet from the processing pipeline having its respective DONE bit is set; allocating excess cycles in the processing pipeline for each packet exited from the processing pipeline due to having its respective DONE bit set, to one or more packets having their respective extension bit set indicating extended processing is required for the one or more packets, wherein a quantity of excess cycles allocated corresponds to the difference between the count of the number of processing cycles performed or remaining for each packet exited from the processing pipeline due to having its respective DONE bit relative to the default fixed number of processing cycles; and applying the excess cycles in the processing pipeline to the extended processing required for each packet having its respective extension bit set, wherein the excess cycles are applied to each packet having its respective extension bit set through a subsequent cycle of the same processing pipeline. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A packet processing system comprising:
-
a processor; a plurality of commands, instructions, and/or state transitions; wherein the processor of the packet processing system to execute the plurality of commands, instructions, and/or state transitions causing the packet processing system to perform a method comprising; implementing a processing pipeline having a fixed number of processing cycles, the fixed number of processing cycles to be applied to each packet through the pipeline as a default fixed number of processing cycles; maintaining a count of a number of processing cycles performed or remaining for each packet relative to the default fixed number of processing cycles, wherein the count of the number of processing cycles performed or remaining for each packet is maintained within a FIFO (First In First Out) buffer of the packet processing system as state data within a pointer to the corresponding packet maintained in a separate and distinct FIFO buffer having the corresponding packet buffered therein; prior to completion of the default fixed number of processing cycles for each packet; determining whether processing is complete for the packet or whether extended processing is required for the packet, setting a DONE bit for the packet when processing is complete for the packet prior to completion of the default fixed number of processing cycles, and setting an extension bit when extended processing is required for the packet in excess of the default fixed number of processing cycles for the packet; exiting each packet from the processing pipeline having its respective DONE bit is set; allocating excess cycles in the processing pipeline for each packet exited from the processing pipeline due to having its respective DONE bit set, to one or more packets having their respective extension bit set indicating extended processing is required for the one or more packets; and applying the excess cycles in the processing pipeline to the extended processing required for each packet having its respective extension bit set, wherein the excess cycles are applied to each packet having its respective extension bit set through a subsequent cycle of the same processing pipeline. - View Dependent Claims (12, 13)
-
-
14. A packet processing system comprising:
-
a packet processor to implement a processing pipeline having a fixed number of processing cycles, the fixed number of processing cycles to be applied to each packet through the pipeline as a default fixed number of processing cycles wherein the packet processor is to; maintain a count of a number of processing cycles performed or remaining for each packet relative to the default fixed number of processing cycles, wherein the count of the number of processing cycles performed or remaining for each packet is maintained within a FIFO (First In First Out) buffer of the packet processing system as state data within a pointer to the corresponding packet maintained in a separate and distinct FIFO buffer having the corresponding packet buffered therein; determine, prior to completion of the default fixed number of processing cycles for each packet; whether processing is complete for the packet or whether extended processing is required for the packet, set a DONE bit for the packet when processing is complete for the packet prior to completion of the default fixed number of processing cycles, and set an extension bit when extended processing is required for the packet in excess of the default fixed number of processing cycles for the packet; wherein the packet processor is to further; exit each packet from the processing pipeline having its respective DONE bit is set; allocate excess cycles in the processing pipeline for each packet exited from the processing pipeline due to having its respective DONE bit set, to one or more packets having their respective extension bit set indicating extended processing is required for the one or more packets; and apply the excess cycles in the processing pipeline to the extended processing required for each packet having its respective extension bit set, wherein the excess cycles are applied to each packet having its respective extension bit set through a subsequent cycle of the same processing pipeline. - View Dependent Claims (15, 16, 17)
-
Specification