IP Library Granted Patent US 9,143,459
Granted Patent B2
US 9,143,459 · App. 14/253,763 · Granted Sep 22, 2015

Queue speed-up by using multiple linked lists

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 9,143,459
App. No.
14/253,763
Granted
Sep 22, 2015
Kind
B2
Abstract

One embodiment of the present invention provides a switch that includes a transmission mechanism configured to transmit frames stored in a queue, and a queue management mechanism configured to store frames associated with the queue in a number of sub-queues which allow frames in different sub-queues to be retrieved independently, thereby facilitating parallel processing of the frames stored in the sub-queues.

Claims (40)

1. A switch apparatus, comprising:

a transmission module adapted to determine corresponding output ports for frames stored in a queue;

a queue management module adapted to:

store frames associated with the queue in a number of sub-queues; and

prior to receiving a queue status update of a previously selected first sub-queue from which a first frame has been retrieved, select a second sub-queue for retrieving a second frame and schedule subsequent transmission for the first and second frames, thereby facilitating parallel processing among the sub-queues.

2. The switch apparatus of claim 1 , wherein the sub-queues are implemented using linked lists, each having a head and a tail pointer, and wherein head and tail pointers for the linked lists are maintained by the queue management module.

3. The switch apparatus of claim 2 , further comprising a linked list manager adapted to:

store the linked lists corresponding to the sub-queues; and

update the head pointers maintained by the queue management module.

4. The switch apparatus of claim 1 , wherein the queue management module further comprises a first counter associated with the queue, and wherein a current count of the first counter specifies in which sub-queue an incoming frame is to be enqueued.

5. The switch apparatus of claim 4 , wherein the queue management module is adapted to queue the incoming frame to a sub-queue following a round-robin sequence.

6. The switch apparatus of claim 1 , wherein the queue management mechanism further comprises a second counter associated with the queue, and wherein a current count of the second counter specifies from which sub-queue an outgoing frame is to be dequeued.

7. The switch apparatus of claim 6 , wherein the outgoing frame is dequeued from the sub-queues following a round-robin sequence.

8. The switch apparatus of claim 1 , wherein the sub-queues include at least one queue that is associated with an inactive output port.

9. The switch apparatus of claim 1 , wherein the switch is a Fibre Channel over Ethernet (FCoE) switch.

10. The switch apparatus of claim 1 , wherein the queue is associated with a priority class.

11. The switch apparatus of claim 1 , wherein the queue is a Fibre Channel (FC) virtual channel (VC) queue configured to store frames belonging to a particular VC.

12. A method for facilitating queuing of communication frames at a switch, comprising:

determining corresponding output ports for frames stored in a queue;

storing frames associated with the queue in a number of sub-queues; and

prior to receiving a queue status update of a previously selected first sub-queue from which a first frame has been retrieved, selecting a second sub-queue for retrieving a second frame and schedule subsequent transmission for the first and second frames, thereby facilitating parallel processing among the sub-queues.

13. The method of claim 12 , further comprising:

implementing the sub-queues using linked lists, each having a head and a tail pointer; and

maintaining head and tail pointers for the linked lists in a queue manager.

14. The method of claim 13 , further comprising:

storing the linked lists corresponding to the sub-queues in a linked-list manager; and

updating, by the linked-list manager, a respective head pointers maintained in the queue manager after a frame is retrieved from a sub-queue.

15. The method of claim 12 , further comprising maintaining a first counter associated with the queue, wherein a current count of the first counter specifies in which sub-queue an incoming frame is to be enqueued.

16. The method of claim 15 , wherein the incoming frame is enqueued to a sub-queue following a round-robin sequence.

17. The method of claim 12 , further comprising maintaining a second counter associated with the queue, and wherein a current count of the second counter specifies from which sub-queue an outgoing frame is to be dequeued.

18. The method of claim 17 , wherein the outgoing frame is dequeued from the sub-queues following a round-robin sequence.

19. The method of claim 12 , wherein storing the frames in the sub-queues involves storing at least one frame in a queue that is associated with an inactive output port.

20. The method of claim 12 , wherein the switch is a Fibre Channel over Ethernet (FCoE) switch.

21. The method of claim 12 , wherein the queue is associated with a priority class.

22. The method of claim 12 , wherein the queue is a Fibre Channel (FC) virtual channel (VC) queue configured to store frames belonging to a particular VC.

23. A switch circuit, comprising:

a transmission circuit adapted to determine corresponding output ports for frames stored in a queue;

a queue management circuit adapted to:

store frames associated with the queue in a number of sub-queues; and

prior to receiving a queue status update of a previously selected first sub-queue from which a first frame has been retrieved, select a second sub-queue for retrieving a second frame and schedule subsequent transmission for the first and second frames, thereby facilitating parallel processing among the sub-queues.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044891/0536 →