IP Library Granted Patent US 12,432,165
Granted Patent B2
US 12,432,165 · App. 18/020,822 · Granted Sep 30, 2025

Multi-packet sliding window scheduler and method for input-queued switches

Inventors: Jun Xu (Atlanta, GA); Long Gong (Atlanta, GA); Jingfan Meng (Atlanta, GA)
Assignee: Georgia Tech Research Corporation
H04L49/3045H04L47/225H04L47/28H04L49/3027
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 12,432,165
App. No.
18/020,822
Granted
Sep 30, 2025
Kind
B2
Abstract

An exemplary sliding window scheduling method and system are disclosed. The exemplary sliding window scheduling method and system can schedule multiple packets in a given scheduling frame with a sliding window scheduling frame. The scheduling operation can be performed using bitmap operators and can achieve a lowest time complexity of O(1) per matching computation and per port using distributed parallelization hardware. The exemplary sliding window scheduling method and system can be performed in the context of a queue-proportional scheduler (QPS) as well as iSLIP. In alternative embodiments, the SW-QPS operation can be performed in a batching window rather than in a sliding window.

Claims (36)

1. A network switch comprising:

a plurality of input ports and a plurality of output ports operatively interconnected to one another in a crossbar, wherein each of the plurality of input ports comprises a plurality of virtual output queue (VOQ) buffers that are mapped to an output port, wherein each of the plurality of VOQ buffers is configured to store a plurality of packets received at a given input port of the plurality of input ports;

an input port scheduler configured, via computer-readable instructions or logic configuration implemented at each input port of the plurality of input ports, to at each switching cycle, send a pairing request to an output port associated with a VOQ buffer of an input port, and wherein the pairing request includes i) an indication of a VOQ length for the VOQ buffer and ii) availability slots corresponding to availability of the plurality of input ports; and

an output port scheduler configured, via computer-readable instructions or logic configuration implemented at each output port of the plurality of output ports, to at the each switching cycle or a pre-defined subsequent switching cycle, if receiving a pairing request, (i) receive one or more pairing requests from a corresponding set of one or more input ports, (ii) select one or more pairing requests among the one or more received pairing requests that can fit in an available time slot in a sliding window of available time slots (T, comprised of a first available time slot t, and additional time slots t+1, . . . , t+T−1) using the indication of the VOQ length and the availability slots, and (iii) send an accept message to an input port associated with the selected pair request,

wherein, at a beginning of time slot t, the sliding window contains matchings-under-computation for the T time slots t, t+1, . . . , t+T−1 such that a leading edge of the sliding window, corresponding to the matching for the time slot t, is used as the crossbar configuration for time slot t, then at an end of time slot t, a new and currently empty matching is added to a tail end of the sliding window so that matchings can be computed in a next T of time slots to provide a matching by time t+T, and

wherein the plurality of output ports receives packets from the plurality of input ports over the crossbar to direct the packets to pre-defined destinations according to a schedule defined by the input port scheduler and the output port scheduler.

2. The network switch of claim 1 , wherein an input port scheduler of a first input port of the plurality of input ports is configured to compute a queue-proportional sampling distribution for the first input port as a plurality of ratios associated with a VOQ buffer, and wherein each ratio of the plurality of ratios is determined as (i) a number of packets in a given VOQ buffer to (ii) a total number of packets in the VOQ buffers of the first input port, and wherein the VOQ buffer is randomly selected according to the queue-proportional sampling distribution.

3. The network switch of claim 1 , wherein the pairing request is selected in an available time slot in the sliding window of available time slots.

4. The network switch of claim 3 , wherein the pairing request having a longest VOQ packet length is selected in the available time slot.

5. The network switch of claim 1 , wherein the output port scheduler is configured to select (i) the selected pair request as a first selected pair request and (ii) a second selected pairing request within a same switching cycle.

6. The network switch of claim 5 , wherein the selection of the first selected pair request and the second selected pairing request is based on a first-fit-accepting (FFA) policy.

7. The network switch of claim 1 , wherein the network switch is configured as an Internet router or a datacenter switch.

8. The network switch of claim 1 , wherein the pairing request includes a bitmap of the availability slots.

9. The network switch of claim 8 , wherein the output port scheduler maintains a bitmap of the sliding window of available time slots.

10. The network device of claim 9 , wherein the output port scheduler is configured to perform a bit operation between the bitmap of availability slots and the bitmap of the sliding window of available time slots to perform the selecting of the one or more pairing requests.

11. A method comprising:

providing a plurality of input ports and a plurality of output ports operatively interconnected to one another in a crossbar, wherein each of the plurality of input ports comprises a plurality of virtual output queue (VOQ) buffers that are mapped to an output port, wherein each of the plurality of VOQ buffers is configured to store a plurality of packets received at a given input port of the plurality of input ports;

at each input port of the plurality of input ports, and at each switching cycle, sending a pairing request to an output port associated with a VOQ buffer of an input port, wherein the VOQ buffer has at least one packet, and wherein the pairing request includes i) an indication of a VOQ length for the VOQ buffer and ii) availability slots corresponding to availability of the plurality of input ports; and

at each output port of the plurality of output ports, and at the each switching cycle or a pre-defined subsequent switching cycle, (i) receiving one or more pairing requests from a corresponding set of one or more input ports, (ii) selecting one or more pairing requests among the one or more received pairing requests that can fit in an available time slot in a sliding window of available time slots (T, comprised of a first available time slot t, and additional time slots t+1, . . . , t+T−1) using the indication of the VOQ length and the availability slots, and (iii) sending an accept message to an input port associated with the selected pair request,

wherein, at a beginning of time slot t, the sliding window contains matchings-under-computation for the T time slots t, t+1, . . . , t+T−1 such that a leading edge of the sliding window, corresponding to the matching for the time slot t, is used as the crossbar configuration for time slot t, then at an end of time slot t, a new and currently empty matching is added to a tail end of the sliding window so that matchings can be computed in a next T of time slots to provide a matching by time t+T, and

wherein the plurality of output ports receive packets from the plurality of input ports over the crossbar to direct the packets to pre-defined destinations according to a schedule defined by the input port scheduler and the output port scheduler.

12. The method of claim 11 , wherein an input port scheduler of a first input port of the plurality of input ports is configured to compute a queue-proportional sampling distribution for the first input port as a plurality of ratios associated with a VOQ buffer, and wherein the queue-proportional sampling distribution is determined as a ratio of (i) a number of packets in a given VOQ buffer to (ii) a total number of packets in the VOQ buffers of the input port.

13. The method of claim 11 , wherein the pairing request is selected in an available time slot in the sliding window of available time slots.

14. The method of claim 13 , wherein the pairing request having a longest VOQ packet length is selected in the available time slot.

15. The method of claim 11 , further comprising:

selecting a second selected pairing request within a same time slot with the selected pair request as a first selected pair request.

16. The method of claim 15 , wherein the selection of the first selected pair request and the second selected pairing request is based on a first-fit-accepting (FFA) policy.

17. The method of claim 11 , wherein the pairing request includes a bitmap of the availability slots.

18. The method of claim 17 , wherein the output port scheduler maintains a bitmap of the sliding window of available time slots.

19. The method of claim 18 , wherein the output port scheduler is configured to perform a bit operation between the bitmap of availability slots and the bitmap of the sliding window of available time slots to perform the selecting of the one or more pairing requests.

20. A network switch comprising:

a plurality of input ports and a plurality of output ports operatively interconnected to one another in a crossbar, wherein each of the plurality of input ports comprises a plurality of virtual output queue (VOQ) buffers that are mapped to an output port, wherein each of the plurality of VOQ buffers is configured to store a plurality of packets received at a given input port of the plurality of input ports;

an output port scheduler configured, via computer-readable instructions or logic configuration implemented at each output port of the plurality of output ports, to at each switching cycle, send a pairing request to an output port associated with a VOQ buffer of an input port, wherein the VOQ buffer has at least one packet, wherein the pairing request includes a list of one or more availability slots corresponding to availability of the plurality of input ports; and

an input port scheduler configured, via computer-readable instructions or logic configuration implemented at each input port of the plurality of output ports, to at the each switching cycle or a pre-defined subsequent switching cycle, if receiving a pairing request, (i) receive one or more pairing requests from a corresponding set of one or more output ports, (ii) select one or more pairing requests among the one or more received pairing requests that can fit in an available time slot in a sliding window of available time slots (T, comprised of a first available time slot t, and additional time slots t+1, . . . , t+T−1) using the list of one or more availability slots, and (iii) send an accept message to an output port of the plurality of output ports that is associated with the selected pair request,

wherein, at a beginning of time slot t, the sliding window contains matchings-under-computation for the T time slots t, t+1, . . . , t+T−1 such that a leading edge of the sliding window, corresponding to the matching for the time slot t, is used as the crossbar configuration for time slot t, then at an end of time slot t, a new and currently empty matching is added to a tail end of the sliding window so that matchings can be computed in a next T of time slots to provide a matching by time t+T, and

wherein the plurality of output ports receives packets from the plurality of input ports over the crossbar to direct the packets to pre-defined destinations according to a schedule defined by the input port scheduler and the output port scheduler.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2025
From: XU, JUN; GONG, LONG; MENG, JINGFAN
To: GEORGIA TECH RESEARCH CORPORATION
Reel/Frame 071542/0841 →
CONFIRMATORY LICENSE Recorded Mar 5, 2025
From: GEORGIA INSTITUTE OF TECHNOLOGY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 070412/0621 →
Continuity (2)
Provisional Application 63064000 · Aug 11, 2020
Related Publication 20230269202A1 · Aug 24, 2023
References Cited (36)
US 7187669B1 · Lee · 2007 [cited by examiner]
US 8274996B1 · Yuan · 2012 [cited by examiner]
US 20020181483A1 · Oki et al. · 2002 [cited by applicant]
US 20020191626A1 · Moriwaki · 2002 [cited by examiner]
US 20030035422A1 · Hill · 2003 [cited by examiner]
US 20050190795A1 · Abel · 2005 [cited by examiner]
US 20050271069A1 · Bianco · 2005 [cited by examiner]
US 20060285548A1 · Hill · 2006 [cited by examiner]
US 20070223483A1 · Huang · 2007 [cited by examiner]
US 20080159145A1 · Muthukrishnan et al. · 2008 [cited by applicant]
US 20110044174A1 · Szymanski · 2011 [cited by examiner]
US 20140269294A1 · Morandin et al. · 2014 [cited by applicant]
US 20180262437A1 · Han · 2018 [cited by examiner]
US 20200127936A1 · Luo · 2020 [cited by examiner]
US 20200348968A1 · Huchachar · 2020 [cited by examiner]
US 20210019085A1 · Zhu · 2021 [cited by examiner]
International Preliminary Report on Patentability issued for Application No. PCT/US2021/045496, dated Feb. 23, 2023. [cited by applicant]
G. Aggarwal, R. Motwani, D. Shah, and An Zhu. 2003. Switch Scheduling via Randomized Edge Coloring. In Proceedings of the IEEE FOCS. 502-512. [cited by applicant]
M. Bayati, B. Prabhakar, D. Shah, and M. Sharma. 2007. Iterative Scheduling Algorithms. In Proceedings of the IEEE Infocom. 445-453. [cited by applicant]
C. Cakir, R. Ho, J. Lexau, and K. Mai. 2016. Scalable High-Radix Modular Crossbar Switches. In Proceedings of the HOTI. 37-44. [cited by applicant]
R. Duan and H. Su. 2012. A Scaling Algorithm for Maximum Weight Matching in Bipartite Graphs. In Proceedings of the ACM-SIAM SODA. 1413-1424. [cited by applicant]
M. Fayyazi, D. Kaeli, and W. Meleis. 2004. Parallel Maximum Weight Bipartite Matching Algorithms for Scheduling in Input-Queued Switches. In Proceedings of the IEEE IPDPS (New Mexico, USA). 4-11. [cited by applicant]
J.M. Flegal, G.L. Jones, et al. 2010. Batch Means and Spectral Variance Estimators in Markov Chain Monte Carlo. The Annals of Statistics 38, 2 (2010), 1034-1070. [cited by applicant]
P. Giaccone, B. Prabhakar, and D. Shah. 2003. Randomized Scheduling Algorithms for High-Aggregate Bandwidth Switches. IEEE J. Sel. Areas Commun. 21, 4 (2003), 546-559. [cited by applicant]
P.W. Glynn, W. Whitt, et al. 1992. The Asymptotic Validity of Sequential Stopping Rules for Stochastic Simulations. Ann. Appl. Probab. 2, 1 (1992), 180-198. [cited by applicant]
L. Gong, P. Tune, L. Liu, S. Yang, and J. Xu. 2017. Queue-Proportional Sampling: A Better Approach to Crossbar Scheduling for Input-Queued Switches. Proceedings of the ACM SIGMETRICS 1, 1 (Jun. 2017), 3:1-3:33. [cited by applicant]
Long Gong, Jun Xu, Liang Liu, and Siva Theja Maguluri. 2020. QPS-r: A Cost-Effective Crossbar Scheduling Algorithm and Its Stability and Delay Analysis. In Proceedings of the EAI VALUETOOLS. [cited by applicant]
B. Hu, F. Fan, K. L. Yeung, and S. Jamin. 2018. Highest Rank First: A New Class of Single-Iteration Scheduling Algorithms for Input-Queued Switches. IEEE Access 6 (2018), 11046-11062. [cited by applicant]
B. Hu, K. L. Yeung, Q. Zhou, and C. He. 2016. On Iterative Scheduling for Input-Queued Switches With a Speedup of 2 - 1/N. IEEE/ACM Trans. Netw. 24, 6 (Dec. 2016), 3565-3577. [cited by applicant]
M. Karol, M. Hluchyj, and S. Morgan. 1987. Input Versus Output Queueing on a Space-Division Packet Switch. IEEE Trans. Commun. 35, 12 (1987), 1347-1356. [cited by applicant]
Nick McKeown. 1999. The iSLIP Scheduling Algorithm for Input-queued Switches. IEEE/ACM Trans. Netw. 7, 2 (Apr. 1999), 188-201. [cited by applicant]
N. McKeown, A. Mekkittikul, V. Anantharam, and J. Walrand. 1999. Achieving 100% Throughput in an Input-Queued Switch. IEEE Trans. Commun. 47, 8 (Aug. 1999), 1260-1267. [cited by applicant]
M. J. Neely, E. Modiano, and Y. S. Cheng. 2007. Logarithmic Delay for N × N Packet Switches Under the Crossbar Constraint. IEEE/ACM Trans. Netw. 15, 3 (Jun. 2007), 657-668. [cited by applicant]
D. Shah and D. Wischik. 2006. Optimal Scheduling Algorithms for Input-Queued Switches. In Proc. of the IEEE INFOCOM. 1-11. [cited by applicant]
L. Wang, T. Ye, T. Lee, and W. Hu. 2018. A Parallel Complex Coloring Algorithm for Scheduling of Input-Queued Switches. IEEE Trans. Parallel Distrib. Syst. 29, 7 (2018), 1456-1468. [cited by applicant]
International Search Report and Written Opinion received in PCT/US2021/045496 mailed Dec. 14, 2021, 14 pages. [cited by applicant]