IP Library Granted Patent US 7,619,969
Granted Patent B2
US 7,619,969 · App. 11/511,744 · Granted Nov 17, 2009

Hardware self-sorting scheduling queue

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,619,969
App. No.
11/511,744
Granted
Nov 17, 2009
Kind
B2
Abstract

The scheduling queue of the present invention is configured as a systolic array utilizing self-sorting scheduling cells to sort information packets based upon previously assigned priorities, while at the same time yielding a small constant latency independent of the length of the queue. The scheduling queue of the present invention is effective in supporting various Quality of Service (QoS) policies and algorithms, including both Differentiated Services (DiffServ) and Integrated Services (IntServ) having an arbitrary number of flows.

Claims (67)

1. A method comprising:

receiving, by a traffic manager of a networking device, a first tag identifying a storage location for a first packet in a memory of the networking device;

receiving, by the traffic manager, a second tag identifying a priority associated with said first packet;

receiving, by the traffic manager, a third tag identifying a storage location for a second packet in the memory;

receiving, by the traffic manager, a fourth tag identifying a priority associated with said second packet;

storing, by the traffic manager, said first and second tags in a particular queue cell of a queue comprising a plurality of queue cells; and

passing, by the traffic manager, said first and second tags to one of said plurality of queue cells preceding said particular queue cell in response to receipt of a pop signal at said particular queue cell, said pop signal indicating that a packet is to be removed from the memory.

2. The method of claim 1 , wherein said first and second packets are derived from different data flows.

3. The method of claim 1 , wherein said method further comprises receiving said pop signal from said preceding queue cell.

4. A method comprising:

receiving, by a traffic manager of a networking device, a first tag identifying a storage location for a first packet in a memory of the networking device;

receiving, by the traffic manager, a second tag identifying a priority associated with said first packet;

receiving, by the traffic manager, a third tag identifying a storage location for a second packet in the memory;

receiving, by the traffic manager, a fourth tag identifying a priority associated with said second packet;

storing, by the traffic manager, said first and second tags in a queue cell of a queue comprising a plurality of queue cells; and

in response to receipt of a push signal at said queue cell indicating that a newly received packet is available as input into the queue, determining, by the traffic manager, a relative order of precedence between said first and second packets based, at least in part, on a comparison of said second and fourth tags.

5. The method of claim 4 , wherein said first and second packets are derived from different data flows.

6. The method of claim 4 , and further comprising selectively dropping, by the traffic manager, either said first packet or said second packet based, at least in part, on said order of precedence if said queue cell comprises a tail of said queue.

7. An apparatus comprising

an integrated circuit, said integrated circuit being adapted to:

receive a first tag identifying a storage location for a first packet in a memory;

receive a second tag identifying a priority associated with said first packet;

receive a third tag identifying a storage location for a second packet in the memory;

receive a fourth tag identifying a priority associated with said second packet;

store said first and second tags in a particular queue cell of a queue comprising a plurality of queue cells; and

pass said first and second tags to one of said plurality of queue cells preceding said particular queue cell in response to receipt of a pop signal at said particular queue cell, said pop signal indicating that a packet is to be removed from the memory.

8. The apparatus of claim 7 , wherein said first and second packets are derived from different data flows.

9. The apparatus of claim 7 , wherein said integrated circuit is further adapted to receive said pop signal from an immediately preceding cell.

10. An apparatus comprising:

an integrated circuit, said integrated circuit being adapted to:

receive a first tag identifying a storage location for a first packet in a memory;

receive a second tag identifying a priority associated with said first packet;

receive a third tag identifying a storage location for a second packet in the memory;

receive a fourth tag identifying a priority associated with said second packet;

store said first and second tags in a queue cell of a queue comprising a plurality of queue cells; and

in response to receipt of a push signal at said queue cell indicating that a newly received packet is available as input into the queue, determine a relative order of precedence between said first and second packets based, at least in part, on a comparison of said second and fourth tags.

11. The apparatus of claim 10 , wherein said first and second packets are derived from different data flows.

12. The apparatus of claim 10 , wherein said integrated circuit is further adapted to selectively drop either said first packet or said second packet based, at least in part, on said order of precedence if said queue cell comprises a tail of said queue.

13. The apparatus of claim 10 , wherein said integrated circuit is further adapted to selectively forward either said first packet or said second packet based, at least in part, on said order of precedence if said queue cell does not comprise a tail of said queue.

14. A system comprising:

a memory;

a classification engine to receive data packets and store portions of at least some of said data packets in said memory and to generate flow information;

a network processor to associate a quality of service to said stored data packets based, at least in part, on said flow information; and

a traffic manager, said traffic manager being adapted to:

receive a first tag identifying a storage location of a first packet in said memory;

receive a second tag identifying a priority associated with said first packet;

receive a third tag identifying a storage location of a second packet in said memory;

receive a fourth tag identifying a priority associated with said second packet;

store said first and second tags in a particular queue cell of a queue comprising

a plurality of queue cells; and

pass said first and second tags to one of said plurality of queue cells

preceding said particular queue cell in response to receipt of a pop signal at said particular queue cell, said pop signal indicating that a packet is to be removed from the memory.

15. The system of claim 14 , wherein said classification engine is adapted to generate said flow information according to a TCP/IP protocol.

16. The system of claim 14 , wherein said network processor is adapted to process at least a portion of said stored data packets according to a TCP/IP protocol.

17. A system comprising:

a memory;

a classification engine to receive data packets and store portions of at least some of said data packets in said memory and to generate flow information;

a network processor to associate a quality of service to said stored data packets based, at least in part, on said flow information; and

a traffic manager, said traffic manager being adapted to:

receive a first tag identifying a storage location for a first packet in said memory;

receive a second tag identifying a priority associated with said first packet;

receive a third tag identifying a storage location for a second packet in said memory;

receive a fourth tag identifying a priority associated with said second packet;

store said first and second tags in a queue cell of a queue comprising a plurality of queue cells; and

in response to receipt of a push signal at said queue cell indicating that a newly received packet is available as input into the queue, determine a relative order of precedence between said first and second packets based, at least in part, on a comparison of said second and fourth tags.

18. The system of claim 17 , wherein said classification engine is adapted to generate said flow information according to a TCP/IP protocol.

19. The system of claim 17 , wherein said network processor is adapted to process at least a portion of said stored data packets according to a TCP/IP protocol.

Assignments (1)
MERGER Recorded Nov 6, 2015
From: NULL NETWORKS LLC
To: XYLON LLC
Reel/Frame 037057/0156 →