Claims
- 1. A method comprising:
receiving a plurality of interleaved frames destined for a plurality of devices coupled to an arbitrated loop, wherein the plurality of interleaved frames includes, for each of the plurality of devices, one or more frames destined for the particular device; distributing the plurality of interleaved frames among a plurality of buffers for queuing frames for the plurality of devices, wherein the one or more frames destined for each of the plurality of devices are added to a particular one of the plurality of buffers associated with the particular device; and conveying the queued frames from the plurality of buffers to the plurality of devices on the arbitrated loop in a non-interleaved order.
- 2. The method as recited in claim 1, wherein, in said conveying the queued frames from the plurality of buffers to the plurality of devices, the plurality of buffers are serviced in a round robin fashion.
- 3. The method as recited in claim 1, wherein said conveying the queued frames from the plurality of buffers to the plurality of devices in a non-interleaved order comprises:
selecting a first buffer of the plurality of buffers as a current buffer; and repeating in an iterative fashion:
if the current buffer includes a first one or more queued frames destined for a first of the plurality of devices, wherein the first device is associated with the current buffer, conveying the first one or more queued frames to the destination device of the first one or more queued frames; and selecting a next buffer of the plurality of buffers as the current buffer.
- 4. The method as recited in claim 3, wherein, in each iteration of said repeating, the method further comprises:
prior to said selecting the next buffer, if the current buffer includes a second one or more queued frames destined for a different one or more of the plurality of devices, wherein the different one or more devices are associated with the current buffer, conveying each of the second one or more queued frames to its destination device of the different one or more devices.
- 5. The method as recited in claim 3, wherein each of the plurality of buffers is assigned a limit of the number of frames that can be sent in each iteration, wherein, in said conveying the one or more queued frames to their destination device, in each iteration at most the assigned limit of the one or more queued frames are sent from the current buffer to the destination device.
- 6. The method as recited in claim 4, wherein the assigned limit is the same for all of the plurality of buffers.
- 7. The method as recited in claim 4, wherein the assigned limit of at least one of the plurality of buffers is different from the assigned limit of the other of the plurality of buffers.
- 8. The method as recited in claim 1, wherein said receiving, said distributing and said conveying are performed in a pipelined fashion.
- 9. The method as recited in claim 1, wherein the arbitrated loop is a Fibre Channel Arbitrated Loop.
- 10. The method as recited in claim 1, wherein said receiving, said distributing and said conveying are performed by a network switch coupled to the arbitrated loop, wherein the network switch is further coupled to a network, and wherein the plurality of interleaved frames are received by the network switch on the network.
- 11. The method as recited in claim 10, further comprising the network switch extracting the plurality of interleaved frames from one or more packets of a protocol compatible with the network prior to said conveying the queued frames from the plurality of buffers to the plurality of devices on the arbitrated loop in a non-interleaved order.
- 12. The method as recited in claim 10, wherein the network supports one of Ethernet and Gigabit Ethernet data transport protocols.
- 13. The method as recited in claim 10, wherein the network supports Internet Protocol (IP).
- 14. A method comprising:
receiving a plurality of interleaved frames destined for a plurality of devices coupled to an arbitrated loop, wherein the plurality of interleaved frames includes one or more frames destined for each of the plurality of devices; sorting the plurality of interleaved frames into groups each comprising the one or more frames destined for a particular one of the plurality of devices; and conveying each of the groups of frames destined for each of the plurality of devices to the particular destination device of the particular group of frames on the arbitrated loop; wherein each of the groups of frames is sent on the arbitrated loop in a non-interleaved order.
- 15. The method as recited in claim 14, further comprising performing said receiving, said sorting and said conveying in a pipelined fashion.
- 16. The method as recited in claim 14, wherein the arbitrated loop is a Fibre Channel Arbitrated Loop.
- 17. The method as recited in claim 14, wherein said receiving, said sorting and said conveying are performed by a network switch coupled to the arbitrated loop, wherein the network switch is further coupled to a network, and wherein the plurality of interleaved frames are received by the network switch on the network.
- 18. The method as recited in claim 17, further comprising the network switch extracting the plurality of interleaved frames from one or more packets of a protocol compatible with the network prior to said conveying the queued frames from the plurality of buffers to the plurality of devices on the arbitrated loop in a non-interleaved order.
- 19. The method as recited in claim 17, wherein the network supports one of Ethernet and Gigabit Ethernet data transport protocols.
- 20. The method as recited in claim 17, wherein the network supports Internet Protocol (IP).
- 21. A device comprising:
a first port operable to couple to a network; a second port operable to couple to an arbitrated loop; wherein the first port is configured to:
receive from the network a plurality of interleaved frames destined for a plurality of devices coupled to the arbitrated loop, wherein the plurality of interleaved frames includes, for each of the plurality of devices, one or more frames destined for the particular device; a memory comprising a plurality of buffers operable to queue frames in transit between the first and second ports of the device, wherein each of the plurality of buffers is associated with one or more of a plurality of ports of the arbitrated loop; frame distribution logic coupled between the first port and the memory and configured to:
distribute a received plurality of interleaved frames among the plurality of buffers, wherein the plurality of interleaved frames are each destined to one of one or more devices each coupled to a unique one of the plurality of ports of the arbitrated loop, wherein each of the received plurality of frames is added to a particular one of the plurality of buffers associated with the destination device of the frame; and frame scheduler logic coupled between the memory and the second port and configured to:
convey the queued frames from the plurality of buffers through the second port to the destination devices on the arbitrated loop in a non-interleaved order.
- 22. The device as recited in claim 21, wherein, in said conveying the queued frames from the plurality of buffers to the plurality of devices, the plurality of buffers are serviced in a round robin fashion.
- 23. The device as recited in claim 21, wherein said conveying the queued frames from the plurality of buffers to the plurality of devices in a non-interleaved order, the frame scheduler logic is further configured to:
select a first buffer of the plurality of buffers as a current buffer; and repeat in an iterative fashion:
if the current buffer includes one or more queued frames destined for one or more of the plurality of devices associated with the current buffer, convey the one or more queued frames to the one or more destination devices of the one or more queued frames; and select a next buffer of the plurality of buffers as the current buffer.
- 24. The device as recited in claim 23, wherein each of the plurality of buffers is assigned a limit of the number of frames that can be sent in each iteration, wherein, in said conveying the one or more queued frames to their one or more destination devices, at most the assigned limit of the one or more queued frames are sent from the current buffer to the one or more destination devices.
- 25. The device as recited in claim 24, wherein the assigned limit is the same for all of the plurality of buffers.
- 26. The device as recited in claim 24, wherein the assigned limit of at least one of the plurality of buffers is different from the assigned limit of the other of the plurality of buffers.
- 27. The device as recited in claim 21, wherein said receiving, said distributing and said conveying are performed in a pipelined fashion.
- 28. The device as recited in claim 21, wherein the arbitrated loop is a Fibre Channel Arbitrated Loop.
- 29. The device as recited in claim 21, wherein the device is a network switch.
- 30. The device as recited in claim 21, wherein the plurality of interleaved frames are in a protocol compatible with the network when received, and wherein the device is configured to convert the plurality of interleaved frames to a protocol compatible with the arbitrated loop prior to said conveying.
- 31. The device as recited in claim 21, wherein the network is one of Ethernet and Gigabit Ethernet.
- 32. The device as recited in claim 21, wherein the network supports Internet Protocol (IP).
- 33. The device as recited in claim 21, wherein the device comprises a plurality of ports each operable to couple to a different network.
- 34. The device as recited in claim 21, wherein the device comprises a plurality of ports each operable to couple to a different arbitrated loop.
- 35. A device comprising:
a plurality of ports, wherein the plurality of ports comprises:
a first port operable to couple to a network; and a second port operable to couple to an arbitrated loop; wherein the first port is configured to:
receive from the network a plurality of interleaved frames destined for a plurality of devices coupled to the arbitrated loop, wherein the plurality of interleaved frames includes, for each of the plurality of devices, one or more frames destined for the particular device; a memory comprising a plurality of buffers operable to queue frames in transit between the first and second ports of the device, wherein each of the plurality of buffers is associated with one or more of a plurality of ports of the arbitrated loop; logic means coupled between the first port and the second port and configured to:
distribute a received plurality of interleaved frames among the plurality of buffers, wherein the plurality of interleaved frames are each destined to one of one or more devices each coupled to a unique one of the plurality of ports of the arbitrated loop, wherein each of the received plurality of frames is added to a particular one of the plurality of buffers associated with the destination device of the frame; and convey the queued frames from the plurality of buffers through the second port to the destination devices on the arbitrated loop in a non-interleaved order.
- 36. The device as recited in claim 35, wherein said conveying the queued frames from the plurality of buffers to the plurality of devices in a non-interleaved order, the logic means is further configured to:
select a first buffer of the plurality of buffers as a current buffer; and repeat in an iterative fashion:
if the current buffer includes one or more queued frames destined for one or more of the plurality of devices associated with the current buffer, convey the one or more queued frames to the one or more destination devices of the one or more queued frames; and select a next buffer of the plurality of buffers as the current buffer.
- 37. The device as recited in claim 35, wherein the arbitrated loop is a Fibre Channel Arbitrated Loop.
- 38. The device as recited in claim 35, wherein the device is a network switch.
- 39. The device as recited in claim 35, wherein the network is one of Ethernet and Gigabit Ethernet.
- 40. A carrier medium comprising program instructions, wherein the program instructions are computer-executable to implement:
receiving a plurality of interleaved frames destined for a plurality of devices coupled to an arbitrated loop, wherein the plurality of interleaved frames includes one or more frames destined for each of the plurality of devices; sorting the plurality of interleaved frames into groups each comprising the one or more frames destined for a particular one of the plurality of devices; and conveying each of the groups of frames destined for each of the plurality of devices to the particular destination device of the particular group of frames on the arbitrated loop; wherein each of the groups of frames is sent on the arbitrated loop in a non-interleaved order.
- 41. The carrier medium as recited in claim 40, wherein the arbitrated loop is a Fibre Channel Arbitrated Loop.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 60/307,925, filed July 26, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60307925 |
Jul 2001 |
US |