Method and apparatus for predicting characteristics of incoming data packets to enable speculative processing to reduce processor latency
First Claim
Patent Images
1. A packet buffering system for predictively processing data packets in a data packet network, the data packets associated with a plurality of data flows, the data flows from of a plurality of protocols, the system comprising:
- at least one input port for receiving data packets from a plurality of sources, wherein the received data packets arrive from the plurality of data flows, interspersed;
at least one output port for sending out data packets to a plurality of destinations;
a packet predictor, coupled to said at least one input port, for predicting information about a future packet in any one of the plurality of data flows based on history of previously received packets from the plurality of data flows, said history stored in a memory coupled to said packet predictor;
a plurality of queues for storing packets received from said plurality of sources, and for storing said predicted information about said future packet;
direction logic, coupled to said packet predictor, for generating a Packet ID for said future packet, wherein said Packet ID is stored in one of said plurality of queues;
buffer logic, coupled to said packet predictor, for accessing said memory and for validating said predicted information about said future packet based on said access to said memory; and
a processing core, coupled to said plurality of queues, wherein if said buffer logic validates said predicted information, notification is made to said direction logic which passes said Packet ID for said future packet to said processing core to initiate speculative processing.
6 Assignments
0 Petitions
Accused Products
Abstract
A system for processing data packets in a data packet network has at least one input port for receiving data packets, at least one output port for sending out data packets, a processor for processing packet data, and a packet predictor for predicting a future packet based on a received packet, such that at least some processing for the predicted packet may be accomplished before the predicted packet actually arrives at the system. The system is used in preferred embodiments in Internet routers.
15 Citations
22 Claims
-
1. A packet buffering system for predictively processing data packets in a data packet network, the data packets associated with a plurality of data flows, the data flows from of a plurality of protocols, the system comprising:
-
at least one input port for receiving data packets from a plurality of sources, wherein the received data packets arrive from the plurality of data flows, interspersed; at least one output port for sending out data packets to a plurality of destinations; a packet predictor, coupled to said at least one input port, for predicting information about a future packet in any one of the plurality of data flows based on history of previously received packets from the plurality of data flows, said history stored in a memory coupled to said packet predictor; a plurality of queues for storing packets received from said plurality of sources, and for storing said predicted information about said future packet; direction logic, coupled to said packet predictor, for generating a Packet ID for said future packet, wherein said Packet ID is stored in one of said plurality of queues; buffer logic, coupled to said packet predictor, for accessing said memory and for validating said predicted information about said future packet based on said access to said memory; and a processing core, coupled to said plurality of queues, wherein if said buffer logic validates said predicted information, notification is made to said direction logic which passes said Packet ID for said future packet to said processing core to initiate speculative processing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A packet predictor system for predicting information about future packets to be received within a data packet processor, the future packets associated with a plurality of data flows, the data flows associated with a plurality of protocols, the predicted information being processed by a processing core prior to the future packets being received, the processing reducing latency in routing the future packets to their destinations, the system comprising:
-
an input for receiving information about non-predicted packets received for processing; a packet predictor, coupled to said input, for predicting information about the future packets, based upon the information received about the non-predicted packets; a plurality of queues, coupled to said input and said packet predictor, for storing the predicted information; direction logic, coupled to said packet predictor, for generating a Packet ID for said future packet, wherein said Packet ID is stored in one of said plurality of queues; and a processing core, coupled to said plurality of queues, for processing the predicted information before the future packets are received by said input; wherein by processing the predicted information before the future packets are received, latency for delivering the future packets to an output is reduced. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for reducing latency in packet processing within a packet processor, comprising the steps of:
-
receiving packets associated with a plurality of data flows, the data flows from a plurality of protocols, developing and storing a history of packet information from the received packets; predicting future information about future packets from the stored history; validating the future information about the future packets responsive to the stored history, and if validated; generating a Packet ID for said future packet and storing said Packet ID in one of a plurality of queues; processing the future information about the future packets before the future packets are received; wherein by processing the future information about the future packets before the future packets are received, latency in delivering the future packets to their destinations is reduced; and wherein the information comprises one or more of packet type, packet flow identification, source information, destination information, and packet size. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification