High throughput packet state processing
AssigneeXilinx, Inc.
InventorWeirong Jiang
Life of this patent
Estimating the term…
Abstract
A system for processing data includes a filtering module having a plurality of processing units, a state accumulator, and a merging network coupled to the processing units and the state accumulator. Each processing unit is configured to output a set of two sub-state vectors and a packet continuance indicator. The state accumulator is configured to store a state resulted from previous processing cycles by the processing units. The merging network is configured to output a master state vector based at least in part on the set of two sub-state vectors, the stored state, and the packet continuance indicators output from the processing units.
Claims20
A system for processing data, comprising:
- a filtering module configured to receive a first data unit including data in a plurality of lanes of a bus, the first data unit including at least a portion of a first packet;
- the filtering module having:
- a sanitizer module configured to:
- receive an input including values in the plurality of lanes, wherein a first lane of the plurality of lanes has a first value indicating whether the first lane includes a beginning of the first packet;
- and
- provide first data including a second value indicating whether a prescribed number of lanes following the first lane is for the first packet;
- a first processing unit configured to output a first set of two sub-state vectors based at least in part on the first data;
- a merging network configured to provide a first output based at least in part on one or both of the two sub-state vectors;
- and
- a state accumulator configured to provide a state data based at least in part on the first output provided by the merging network.
A system for processing data, comprising:
- a filtering module configured to receive a first data unit including data in a first plurality of lanes of a bus, the first data unit including at least a portion of a first packet;
- the filtering module including:
- a sanitizer module configured to:
- receive an input having values in the first plurality of lanes of a bus, wherein a first lane of the first plurality of lanes has a first value indicating whether the first lane includes an end of the first packet;
- and
- provide first data including a second value indicating whether a prescribed number of lanes preceding the first lane is for the first packet;
- a first processing unit configured for:
- generating a first sub-state vector for the first data unit, the first sub-state vector having a first sub-state value for the first lane that is based on whether the first packet begins in the first data unit;
- and
- generating a second sub-state vector for the first data unit based on the first data, the second sub-state vector having a second sub-state value for the first lane that is based on whether the first packet continues through the first data unit, or begins in a preceding data unit and ends in the first data unit;
- a merging network configured to provide a first output based at least in part on the first sub-state vector, the second sub-state vector, or both;
- and
- a state accumulator configured to provide a state data based at least in part on the first output provided by the merging network.
A method for processing data, comprising:
- receiving a first data unit by a filtering module that includes a first processing unit, the first data unit having data in a first plurality of lanes of a bus, the first data unit including at least a portion of a first packet, wherein a first lane has a first value indicating whether the first lane includes an end of the first packet;
- providing, by a sanitizer module, first data including a second value indicating whether a prescribed number of lanes preceding the first lane is for the first packet;
- generating a first sub-state vector for the first data unit by the first processing unit, the first sub-state vector having a first sub-state value for the first lane that is based on whether the first packet begins in the first data unit;
- generating a second sub-state vector for the first data unit by the first processing unit, the second sub-state vector having a second sub-state value for the first lane that is based on whether the first packet continues through the first data unit, or begins in a preceding data unit and ends in the first data unit;
- determining a first output by a merging network based at least in part on the first sub-state vector, the second sub-state vector, or both;
- and
- determining a state data for storage at a state accumulator, wherein the state data is based at least in part on the first output provided by the merging network.
Dependencies are inferred from the claim text.