CS-534: Packet Switch Architecture
Spring 2003
Department of Computer Science
© University of Crete, Greece

3.4 Multi-Queue Data Structures

[Up: Table of Contents]
[Prev: 3.3 Elastic Buffers]

[Next: 3.5 Multicast Queueing]

3.4.1   FIFO Buffer Memories

Single FIFO Queue in a Memory Block: Circular Buffer

Multiple FIFO Queues with Statically Partitioned Space for each

Multiple FIFO Queues with Shared Space 1: shifting (impractical)

Multiple FIFO Queues with Shared Space 2: linked lists of blocks

See Exercises 4 and Exercises 5 for a discussion of how large the segment (block) size should be.

3.4.2   Multiple FIFO Queues Sharing One Memory

Multi-queue buffer memory using linked lists of memory blocks

Enqueue/Dequeue: basic cases

Enqueue/Dequeue: exceptional cases

Cost-performance tradeoffs

For an example of a highly-pipelined implementation of managing multiple linked-list queues, see:


NxtPtr inside data memory: free block preallocation

Reference: A. Nikologiannis, M. Katevenis: "Efficient Per-Flow Queueing in DRAM at OC-192 Line Rate using Out-of-Order Execution Techniques", Proc. IEEE Int. Conf. on Communications (ICC'2001), Helsinki, Finland, June 2001, pp. 2048-2052; http://archvlsi.ics.forth.gr/muqpro/queueMgt.html

Packet size, block size, line rate, queue Op rate

See also Exercises 4 and Exercises 5 for discussions on segment (block) size and access rate.

Queue Op rate, free list rate, free list bypass


Dropping a Segment

Dropping a Packet


[Up: Table of Contents]
[Prev: 3.3 Elastic Buffers]

[Next: 3.5 Multicast Queueing]

Up to the Home Page of CS-534
 
© copyright University of Crete, Greece.
Last updated: 29 Sep. 2003, by M. Katevenis.