virtual output queueing
{{Short description|Network technique addressing head-of-line blocking}}
Virtual output queueing (VOQ) is a technique used in certain network switch architectures where, rather than keeping all traffic in a single queue, separate queues are maintained for each possible output location. It addresses a common problem known as head-of-line blocking.{{cite book | first1 = Mark W. | last1 = Goudreau | first2 = Stavros G. | last2 = Kolliopoulos | first3 = Satish B. | last3 = Rao | title = Proceedings IEEE INFOCOM 2000. Conference on Computer Communications. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies (Cat. No.00CH37064) | chapter = Scheduling algorithms for input-queued switches: Randomized techniques and experimental evaluation | volume = 3 | pages = 1634–1643 |year= 2000 |citeseerx = 10.1.1.42.5126 |doi= 10.1109/INFCOM.2000.832562 | isbn = 978-0-7803-5880-5 | s2cid = 11834666 }}
Description
In VOQ, the physical buffer of each input port maintains a separate virtual queue for each output port. Therefore congestion on an egress port will block only the virtual queue for this particular egress port. Other packets in the same physical buffer destined to different (non-congested) output ports are in separate virtual queues and can therefore still be processed. In a traditional setup, the blocked packet for the congested egress port would have blocked the whole physical buffer, resulting in head-of-line blocking.
It has been shown that VOQ can achieve 100% throughput performance with an effective scheduling algorithm.{{Citation needed|reason=where and how has it been shown?|date=February 2017}} This scheduling algorithm should be able to provide a high speed mapping of packets from inputs to outputs on a cycle-to-cycle basis. The VOQ mechanism provides throughput at a much higher rate than the crossbar switches without it.
There are many algorithms for design and implementation of fast VOQ. For example, Nick McKeown and a group at Stanford University published a design in 1997.{{cite journal |title= Tiny Tera: a packet switch core |volume= 17 |first1 = Nick |last1 = McKeown |authorlink1= Nick McKeown |first2 = Martin |last2= Izzard |first3 = Adisak |last3 = Mekkittikul |authorlink3 = Adisak Mekkittikul |first4 = Bill |last4 = Ellersick |first5 = Mark |last5 = Horowitz |journal= IEEE Micro |year= 1997 |pages= 26–33 |url= http://tiny-tera.stanford.edu/~nickm/papers/HOTI_96.pdf |doi= 10.1109/40.566194|arxiv= cs/9810006 |s2cid= 1909255 }}
Quality of service and priority are extensions found in literature of the same time.{{cite book | first1 = Rainer | last1 = Schoenen | first2 = Guido | last2 = Post | first3 = Gerald | last3 = Sander | title = IEEE ATM Workshop '99 Proceedings (Cat. No. 99TH8462) | chapter = Prioritized arbitration for input-queued switches with 100% throughput | pages = 253–258 |year= 1999 | doi= 10.1109/ATM.1999.786865 | isbn = 978-4-88552-164-5 | citeseerx = 10.1.1.668.8621 | s2cid = 14749858 }}
VOQ scheduling is often referred to as "arbitration" (resolving the concurrent access wishes), whereas the ordering of packets ("packet scheduling") is an additional task{{cite book | first1 = Rainer | last1 = Schoenen | first2 = Roman | last2 = Hying | title = Seamless Interconnection for Universal Services. Global Telecommunications Conference. GLOBECOM'99. (Cat. No.99CH37042) | chapter = Distributed cell scheduling algorithms for virtual-output-queued switches | volume = 2 | pages = 1211–1215 |year= 1999 | doi= 10.1109/GLOCOM.1999.829963 | isbn = 978-0-7803-5796-9 | citeseerx = 10.1.1.29.4129 | s2cid = 1649478 }} following the VOQ arbitration.