Method and apparatus for aggregating input data streams
First Claim
1. A circuit for aggregating a plurality of input data streams from first processors into one data stream for a second processor, said circuit comprising:
- a plurality of ingress data ports, each said ingress data port coupled to a corresponding first processor and adapted to receive an input data stream from the corresponding first processor, each input data stream comprising ingress data packets, each ingress data packet comprising at least one priority factor coded therein;
an aggregation module coupled to said plurality of ingress data ports and configured to receive the plurality of input data streams from the first processors using the plurality of ingress data ports, wherein an input data stream from a first processor is received via the ingress data port coupled to the first processor, said aggregation module adapted to analyze and combine the plurality of input data streams into one aggregated data stream in response to the at least one priority factor and to generate a packet descriptor comprising a reference to a memory location of its analyzed data packet;
a memory coupled to said aggregation module, said memory adapted to store analyzed data packets;
said memory comprising a plurality of priority queues each provided for a corresponding priority class, adapted to store the packet descriptor of each of the analyzed data packets classified to the corresponding priority class, the packet descriptor containing a reference to the memory location of its analyzed data packet in said memory; and
an output data port coupled to said aggregation module, said output data port adapted to output the aggregated data stream to the second processor.
8 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus aggregate a plurality of input data streams from first processors into one data stream for a second processor, the circuit and the first and second processors being provided on an electronic circuit substrate. The aggregation circuit includes (a) a plurality of ingress data ports, each ingress data port adapted to receive an input data stream from a corresponding first processor, each input data stream formed of ingress data packets, each ingress data packet including priority factors coded therein, (b) an aggregation module coupled to the ingress data ports, adapted to analyze and combine the plurality of input data steams into one aggregated data stream in response to the priority factors, (c) a memory coupled to the aggregation module, adapted to store analyzed data packets, and (d) an output data port coupled to the aggregation module, adapted to output the aggregated data stream to the second processor.
401 Citations
56 Claims
-
1. A circuit for aggregating a plurality of input data streams from first processors into one data stream for a second processor, said circuit comprising:
-
a plurality of ingress data ports, each said ingress data port coupled to a corresponding first processor and adapted to receive an input data stream from the corresponding first processor, each input data stream comprising ingress data packets, each ingress data packet comprising at least one priority factor coded therein; an aggregation module coupled to said plurality of ingress data ports and configured to receive the plurality of input data streams from the first processors using the plurality of ingress data ports, wherein an input data stream from a first processor is received via the ingress data port coupled to the first processor, said aggregation module adapted to analyze and combine the plurality of input data streams into one aggregated data stream in response to the at least one priority factor and to generate a packet descriptor comprising a reference to a memory location of its analyzed data packet; a memory coupled to said aggregation module, said memory adapted to store analyzed data packets; said memory comprising a plurality of priority queues each provided for a corresponding priority class, adapted to store the packet descriptor of each of the analyzed data packets classified to the corresponding priority class, the packet descriptor containing a reference to the memory location of its analyzed data packet in said memory; and an output data port coupled to said aggregation module, said output data port adapted to output the aggregated data stream to the second processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A circuit for aggregating an input data stream from a first processor into an aggregated data stream for a second processor, said circuit comprising:
-
a first data link adapted to receive the input data stream from the first processor, the first data link having a first bandwidth, the input data stream comprising ingress data packets, each ingress data packet comprising at least one priority factor coded therein; an aggregation module coupled to the first data link and adapted to receive the input data stream from the first processor via the first data link, said aggregation module adapted to analyze and selectively recombine the ingress data packets in response to the at least one priority factor so as to generate an aggregated data; a memory coupled to said aggregation module, said memory adapted to store analyzed data packets; and a second data link coupled to said aggregation module, the second data link having a second bandwidth smaller than the first bandwidth, said second data link adapted to output the aggregated data stream from the aggregation module to the second processor; wherein said aggregation module comprises; a packet analyzer adapted to classify each of the ingress data packets into one of predetermined priority classes based on the at least one priority factor; a queue module comprising a plurality of priority queues each provided for the corresponding priority class, adapted to store a packet descriptor of each of the analyzed data packets classified to the corresponding priority class, the packet descriptor containing a reference to a memory location of its analyzed data packet in said memory, and a selection logic implementing a queue scheme, adapted to arbitrate and select a packet descriptor from among the priority queues; a read interface coupled to said queue module, adapted to read a data packet corresponding to the selected packet descriptor from said memory; and an output module to send the data packets read from said memory to the second data link as the aggregated data stream. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method for aggregating a plurality of input data streams from first processors into one data stream for a second processor, said method comprising:
-
receiving an input data stream from each of the first processors, each input data stream comprising ingress data packets, each ingress data packet comprising at least one priority factor coded therein; analyzing and classifying each of the ingress data packets into one of predetermined priority classes based on the at least one priority factor; storing an analyzed data packet in a memory; generating a packet descriptor for the analyzed ingress data packet, the packet descriptor containing a reference to a memory location of its analyzed data packet stored in the memory; placing the packet descriptor in a priority queue corresponding to the priority class of the data packet; arbitrating and selecting a packet descriptor from among the priority queues using selection logic implementing a queue scheme; reading a data packet corresponding to the selected packet descriptor from the memory; and sending the data packets read from the memory to the second processor as an aggregated data stream. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. A method for aggregating data packets, said method comprising:
-
receiving an input data stream from a first processor via a first data link having a first bandwidth, the input data stream comprising ingress data packets, each ingress data packet comprising at least one priority factor coded therein; generating an aggregated data stream by analyzing and selectively recombining the ingress data packets in response to the at least one priority factor, the at least one priority factor comprising an indication of whether the ingress packet contains protocol data or not; generating a packet descriptor for the analyzed ingress data packet, the packet descriptor containing a reference to a memory location of its analyzed data packet stored in a memory; and outputting the aggregated data stream to a second processor via a second data link having a second bandwidth, wherein the first bandwidth is greater than the second bandwidth. - View Dependent Claims (45, 46, 47)
-
-
48. A method for aggregating a plurality of input data streams from first processors into one data stream for a second processor, said method comprising:
-
providing, for each first processor, an analyzer corresponding to the first processor, the analyzer being separate from the first processor and located in a communication path between the first processor and the second processor; receiving an input data stream from each of the first processors, each input data stream comprising ingress data packets, each ingress data packet comprising at least one priority factor coded therein; generating an aggregated data stream by combining the plurality of input data streams into one aggregated data stream in response to the at least one priority factor, the at least one priority factor comprising an indication of whether the ingress packet contains protocol data or not, wherein the generating comprises, for each first processor, receiving the input data stream from the first processor at an analyzer corresponding to the first processor, and analyzing the input data stream received from the first processor using the analyzer to classify each of the ingress data packets into one of a plurality of priority classes based on the at least one priority factor; generating a packet descriptor for the ingress data packet, the packet descriptor containing a reference to a memory location of its ingress data packet stored in a memory; and outputting the aggregated data stream to the second processor.
-
-
49. A system comprising:
-
an input interface having a first bandwidth and configured to receive a data stream, wherein the data stream comprises ingress data packets, each ingress data packet comprising at least one priority factor coded therein; a module coupled to the input and configured to receive the data stream, analyze the data stream and selectively recombine the ingress data packets in response to the at least one priority factor, the at least one priority factor comprising an indication of whether the ingress packet contains protocol data or not; and an output interface having a second bandwidth having a second bandwidth and configured to output the recombined ingress data packets; wherein the first bandwidth is greater than the second bandwidth; wherein the module is further configured to generate a packet descriptor for the analyzed ingress data packet, the packet descriptor containing a reference to a memory location of its analyzed data packet stored in a memory. - View Dependent Claims (50, 51, 52)
-
-
53. A system for aggregating data packets, said system comprising:
-
a means for receiving an input data stream from a first processor via a first data link having a first bandwidth, the input data stream comprising ingress data packets, each ingress data packet comprising at least one priority factor coded therein; means for generating an aggregated data stream by analyzing and selectively recombining the ingress data packets in response to the at least one priority factor, the at least one priority factor comprising an indication of whether the ingress packet contains protocol data or not; means for outputting the aggregated data stream to a second processor via a second data link having a second bandwidth, wherein the first bandwidth is greater than the second bandwidth; and means for generating a packet descriptor for the analyzed ingress data packet, the packet descriptor containing a reference to a memory location of its analyzed data packet stored in a memory. - View Dependent Claims (54, 55, 56)
-
Specification