Pipelined heap (priority queue) management for advanced scheduling in high-speed networks

Per-flow queueing with sophisticated scheduling is one of the methods for providing advanced quality of service (QoS) guarantees. The hardest and most interesting scheduling algorithms rely on a common computational primitive, implemented via priority queues. To support such scheduling for a large number of flows at OC-192 (10 Gb/s) rates and beyond, pipelined management of the priority queue is needed. Large priority queues can be built using either calendar queues or heap data structures; heaps feature smaller silicon area than calendar queues. We present heap management algorithms that can be gracefully pipelined; they constitute modifications of the traditional ones. We discuss how to use pipelined heap managers in switches and routers and their cost-performance tradeoffs. The design can be configured to any heap size, and, using 2-port 4-wide SRAMs, it can support initiating a new operation on every clock cycle, except that an insert operation or one idle (bubble) cycle is needed between two successive delete operations. We present a pipelined heap manager implemented in synthesizable Verilog form, as a core integratable into ASICs, along with cost and performance analysis information. For a 16 K entry example in 0.13-µm CMOS technology, silicon area is below 10 mm2 (less than 8% of a typical ASIC chip) and performance is a few hundred million operations per second. We have verified our design by simulating it against three heap models of varying abstraction.

[1]  Manolis Katevenis,et al.  Fast switching and fair control of congested flow in broadband networks , 1987, IEEE J. Sel. Areas Commun..

[2]  H. Jonathan Chao,et al.  A Novel Architecture for Queue Management in the ATM Network , 1991, IEEE J. Sel. Areas Commun..

[3]  Daein Jeong,et al.  Design of a Generalized Priority Queue Manager for ATM Switches , 1997, IEEE J. Sel. Areas Commun..

[4]  Christoforos E. Kozyrakis,et al.  Pipelined multi-queue management in a VLSI ATM switch chip with credit-based flow-control , 1997, Proceedings Seventeenth Conference on Advanced Research in VLSI.

[5]  Manolis Katevenis,et al.  Multi-Queue Management and Scheduling for Improved QoS in Communication Networks , 2005 .

[6]  Hui Zhang,et al.  Service disciplines for guaranteed performance service in packet-switching networks , 1995, Proc. IEEE.

[7]  Hui Zhang,et al.  Implementing scheduling algorithms in high-speed networks , 1999, IEEE J. Sel. Areas Commun..

[8]  Douglas W. Jones,et al.  An empirical comparison of priority-queue and event-set implementations , 1986, CACM.

[9]  Bill Lin,et al.  Fast and scalable priority queue architecture for high-speed network switches , 2000, Proceedings IEEE INFOCOM 2000. Conference on Computer Communications. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies (Cat. No.00CH37064).

[10]  Costas Courcoubetis,et al.  Weighted Round-Robin Cell Multiplexing in a General-Purpose ATM Switch Chip , 1991, IEEE J. Sel. Areas Commun..

[11]  Randy Brown,et al.  Calendar queues: a fast 0(1) priority queue implementation for the simulation event set problem , 1988, CACM.

[12]  Hui Zhang,et al.  Hierarchical packet fair queueing algorithms , 1997, TNET.

[13]  Srinivasan Keshav,et al.  An Engineering Approach to Computer Networking: ATM Networks , 1996 .

[14]  H. Jonathan Chao,et al.  Design of packet-fair queuing schedulers using a RAM-based searching engine , 1999, IEEE J. Sel. Areas Commun..

[15]  Manolis Katevenis,et al.  Efficient per-flow queueing in DRAM at OC-192 line rate using out-of-order execution techniques , 2001, ICC 2001. IEEE International Conference on Communications. Conference Record (Cat. No.01CH37240).

[16]  T. V. Lakshman,et al.  Beyond best effort: router architectures for the differentiated services of tomorrow's Internet , 1998, IEEE Commun. Mag..