A switching device comprising at least one ingress port and at least one egress port. The switching device is arranged to receive data packets through the at least one ingress port and to forward received data packets to respective ones of the at least one egress port. The switching device further comprises a primary buffer arranged to store data packets received via at least one of the least one ingress ports and a secondary buffer associated with the primary buffer. The switching device is adapted to select a data packet from the primary buffer and if but only if the secondary buffer satisfies a least one first predetermined criterion, transfer the selected data packet to the secondary buffer.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A switching device comprising at least one ingress port and at least one egress port, the switching device being arranged to receive data packets through said at least one ingress port and to forward received data packets to respective ones of said at least one egress port, wherein the switching device further comprises: a primary buffer arranged to store data packets received via at least one of said at least one ingress ports; a secondary buffer associated with the primary buffer; and at least one congestion buffer associated with said primary buffer; wherein the switching device is adapted to: select a data packet from said primary buffer; and if but only if said secondary buffer satisfies at least one first predetermined criterion, transfer said selected data packet to said secondary buffer, and wherein the switching device is further adapted to: determine whether a second predetermined criterion is satisfied; and if said second predetermined criterion is satisfied, transfer a data packet from one of said primary or secondary buffers to one of said at least one congestion buffers, wherein the second predetermined condition is that said data packet has resided in one of said primary and secondary buffers for more than a predetermined minimum time.
2. A switching device according to claim 1 , , wherein said secondary buffer is adapted to store data packets to be forwarded to any of said egress ports when said secondary buffer is empty; and wherein the switching device is adapted to: determine an egress port to which said selected data packet is to be forwarded; and transfer said selected data packet to said secondary buffer if but only if said secondary buffer is empty or said secondary buffer contains only data packets to be forwarded to an egress port to which said selected data packet is to be forwarded.
3. A switching device according to claim 1 , further comprising: an ingress module for each of said at least one ingress ports, each ingress module being arranged to receive data packets from a respective one of said at least one ingress ports; wherein each ingress module comprises a primary buffer and at least one secondary buffer.
4. A switching device according to claim 1 , wherein said primary buffer is arranged to receive data packets received through a single one of said ingress ports.
5. A switching device according to claim 4 , wherein all data packets received through said single one of said ingress ports is stored in said primary buffer, regardless of egress ports to which said data packets are to be forwarded.
6. A switching device according to claim 1 comprising a plurality of secondary buffers associated with said primary buffer.
7. A switching device according to claim 6 , wherein said switching device is arranged to store, in each of said secondary buffers at any one time, data packets to be forwarded to a respective single one of said egress ports.
8. A switching device according to claim 1 , wherein said primary buffer is a primary queue and/or wherein said the or each secondary buffer is a secondary queue.
9. A switching device according to claim 1 , further comprising: an ingress arbiter associated with said primary buffer and the or each associated secondary buffer; wherein said ingress arbiter is arranged to select a data packet from one of said primary and secondary buffers to be offered for transmission to an egress port.
10. A switching device according to claim 9 , further comprising: at least one egress arbiter associated with at least one of said egress ports; wherein the egress arbiter is adapted to receive requests for permission to transmit a data packet from at least one ingress arbiter and to grant one of said received requests.
11. A switching device according to claim 1 , wherein a data packet is transferred to one of said congestion buffers only if: said congestion buffer is empty; or said congestion buffer stores data packets to be forwarded to an egress port to which the data packet to be transferred is to be forwarded.
12. A switching device according to claim 1 , further adapted to: transfer a data packet from said primary buffer to a congestion buffer if said data packet is to be forwarded to an egress port to which data packets stored in said congestion buffer are to be forwarded.
13. A switching device according to claim 1 , wherein the or each congestion buffer is a congestion queue.
14. A switching device according to claim 1 , wherein the second predetermined condition is indicative of congestion within the switching device.
15. A switching device according to claim 1 , further comprising: an ingress arbiter associated with said primary buffer and the or each associated secondary buffer; wherein said ingress arbiter is arranged to select a data packet from one of said primary and secondary buffers to be offered for transmission to an egress port, and said ingress arbiter is arranged to select a data packet from at least one of said primary, secondary and congestion buffers, to be offered for transmission to an egress port.
16. A switching device according to claim 15 , wherein said switching device is adapted to transfer a data packet from one of said primary and secondary queues if said data packet has resided in one of said primary and secondary queues for more than a predetermined minimum time without having been selected by said ingress arbiter.
17. A switching device according to claim 15 , wherein one of said second predetermined criteria is based upon whether said ingress arbiter is able to select a particular data packet.
18. A switching device according to claim 17 , further comprising: at least one egress module, each egress module being arranged to select a data packet to be transmitted through a respective egress port, each egress port being arranged to provide data indicating whether data packets can be received by the particular egress port.
19. A switching device according to claim 18 , wherein said ingress arbiter is able to select a data packet only if an egress module indicates that an egress port to which the data packet is to be forwarded is able to receive data packets.
20. A switching device according to claim 18 , wherein the or each egress module is arranged to: receive a plurality of requests to receive a data packet, each request being generated by an ingress arbiter; select one of the plurality of requests; wherein the second predetermined criterion is based upon an egress module selecting a request within a predetermined time period.
21. A method of switching data packets from at least one ingress port to at least one egress port, wherein data packets are received through said at least one ingress port and forwarded to respective ones of said at least one egress port, the method comprising: storing data packets received via at least one of said at least one ingress ports in a primary buffer; selecting a data packet from said primary buffer; if but only if said secondary buffer satisfies at least one first predetermined criterion, transferring said selected data packet to a secondary buffer; and determining whether a second predetermined criterion is satisfied; and if said second predetermined criterion is satisfied, transferring a data packet from one of said primary or secondary buffers to one of at least one congestion buffers, wherein the second predetermined condition is that said data packet has resided in one of said primary and secondary buffers for more than a predetermined minimum time.
22. A non-transitory carrier medium carrying a computer program comprising computer readable instructions arranged to cause a switching device to carry out a method according to claim 21 .
23. A switching device comprising at least one ingress port and at least one egress port, the switching device being arranged to receive data packets through said at least one ingress port and to forward received data packets to respective ones of said at least one egress port, wherein the switching device further comprises: a primary buffer arranged to store data packets received via at least one of said at least one ingress ports; a secondary buffer associated with the primary buffer; at least one congestion buffer associated with said primary buffer; and an ingress arbiter associated with said primary buffer and the or each associated secondary buffer, said ingress arbiter arranged to select a data packet from one of said primary and secondary buffers to be offered for transmission to an egress port, and said ingress arbiter is arranged to select a data packet from at least one of said primary, secondary and congestion buffers, to be offered for transmission to an egress port; wherein the switching device is adapted to: select a data packet from said primary buffer and if but only if said secondary buffer satisfies at least one first predetermined criterion, transfer said selected data packet to said secondary buffer, wherein one of said at least one first predetermined criterion is that said secondary buffer is empty; and wherein the switching device is further adapted to determine whether a second predetermined criterion is satisfied and if said second predetermined criterion is satisfied, transfer a data packet from one of said primary or secondary buffers to one of said at least one congestion buffers; and wherein said switching device is adapted to transfer a data packet from one of said primary and secondary queues if said data packet has resided in one of said primary and secondary queues for more than a predetermined minimum time without having been selected by said ingress arbiter.
24. A switching device comprising at least one ingress port and at least one egress port, the switching device being arranged to receive data packets through said at least one ingress port and to forward received data packets to respective ones of said at least one egress port, wherein the switching device further comprises: a primary buffer arranged to store data packets received via at least one of said at least one ingress ports; a secondary buffer associated with the primary buffer; at least one congestion buffer associated with said primary buffer; an ingress arbiter associated with said primary buffer and the or each associated secondary buffer, said ingress arbiter arranged to select a data packet from one of said primary and secondary buffers to be offered for transmission to an egress port, and said ingress arbiter is arranged to select a data packet from at least one of said primary, secondary and congestion buffers, to be offered for transmission to an egress port; and at least one egress module, each egress module being arranged to select a data packet to be transmitted through a respective egress port, each egress port being arranged to provide data indicating whether data packets can be received by the particular egress port; wherein the switching device is adapted to: select a data packet from said primary buffer and if but only if said secondary buffer satisfies at least one first predetermined criterion, transfer said selected data packet to said secondary buffer, wherein one of said at least one first predetermined criterion is that said secondary buffer is empty; and wherein the switching device is further adapted to determine whether a second predetermined criterion is satisfied and if said second predetermined criterion is satisfied, transfer a data packet from one of said primary or secondary buffers to one of said at least one congestion buffers wherein one of said second predetermined criteria is based upon whether said ingress arbiter is able to select a particular data packet; and wherein the or each egress module is arranged to receive a plurality of requests to receive a data packet, each request being generated by an ingress arbiter, and select one of the plurality of requests, wherein the second predetermined criterion is based upon an egress module selecting a request within a predetermined time period.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
October 16, 2008
November 15, 2011
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.