Pipelined van Emde Boas Tree: Algorithms, Analysis, and Applications

Similar documents
On the Efficient Implementation of Pipelined Heaps for Network Processing

(2, 4) Tree Example (2, 4) Tree: Insertion

Minimum Spanning Trees Outline: MST

An Adaptive Strategy for Maximizing Throughput in MAC layer Wireless Multicast

On the Computational Complexity and Effectiveness of N-hub Shortest-Path Routing

Evaluating Influence Diagrams

REPLICATION IN BANDWIDTH-SYMMETRIC BITTORRENT NETWORKS. M. Meulpolder, D.H.J. Epema, H.J. Sips

Partha Sarathi Mandal

The Disciplined Flood Protocol in Sensor Networks

Introduction to Algorithms. Minimum Spanning Tree. Chapter 23: Minimum Spanning Trees

CS 153 Design of Operating Systems Spring 18

CS 153 Design of Operating Systems Spring 18

The final datapath. M u x. Add. 4 Add. Shift left 2. PCSrc. RegWrite. MemToR. MemWrite. Read data 1 I [25-21] Instruction. Read. register 1 Read.

COMPOSITION OF STABLE SET POLYHEDRA

Isilon InsightIQ. Version 2.5. User Guide

Dynamic Maintenance of Majority Information in Constant Time per Update? Gudmund S. Frandsen and Sven Skyum BRICS 1 Department of Computer Science, Un

The Impact of Avatar Mobility on Distributed Server Assignment for Delivering Mobile Immersive Communication Environment

Networks An introduction to microcomputer networking concepts

Hardware-Accelerated Free-Form Deformation

A choice relation framework for supporting category-partition test case generation

CS 153 Design of Operating Systems Spring 18

Lecture 12 March 21, 2007

Tdb: A Source-level Debugger for Dynamically Translated Programs

The extra single-cycle adders

CS 153 Design of Operating Systems

Picking and Curves Week 6

Millimeter-Wave Multi-Hop Wireless Backhauling for 5G Cellular Networks

webinar series

Per-flow Queue Scheduling with Pipelined Counting Priority Index

Subgraph Matching with Set Similarity in a Large Graph Database

IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS, VOL. 6, NO. 5, MAY On the Analysis of the Bluetooth Time Division Duplex Mechanism

Making Full Use of Multi-Core ECUs with AUTOSAR Basic Software Distribution

CS 153 Design of Operating Systems Spring 18

Page 1. CSCE 310J Data Structures & Algorithms. CSCE 310J Data Structures & Algorithms. Greedy Algorithms and Graph Optimization Problems

Bias of Higher Order Predictive Interpolation for Sub-pixel Registration

Minimal Edge Addition for Network Controllability

Date: December 5, 1999 Dist'n: T1E1.4

IMPLEMENTATION OF OBJECT ORIENTED APPROACH TO MODIFIED ANT ALGORITHM FOR TASK SCHEDULING IN GRID COMPUTING

A sufficient condition for spiral cone beam long object imaging via backprojection

The single-cycle design from last time

On the Existence of Subliminal Channel in Instant Messaging Systems

Requirements Engineering. Objectives. System requirements. Types of requirements. FAQS about requirements. Requirements problems

Real-time mean-shift based tracker for thermal vision systems

CS 153 Design of Operating Systems

CAPL Scripting Quickstart

Review Multicycle: What is Happening. Controlling The Multicycle Design

Review. A single-cycle MIPS processor

Cohesive Subgraph Mining on Attributed Graph

Content Content Introduction

Multiple-Choice Test Chapter Golden Section Search Method Optimization COMPLETE SOLUTION SET

What s New in AppSense Management Suite Version 7.0?

CS 153 Design of Operating Systems Spring 18

Functions of Combinational Logic

Multi-lingual Multi-media Information Retrieval System

Inteligencia Artificial. Revista Iberoamericana de Inteligencia Artificial ISSN:

Computer User s Guide 4.0

Optimization and Translation of Tableau-Proofs. Abstract: Dierent kinds of logical calculi have dierent advantages and disadvantages.

This chapter is based on the following sources, which are all recommended reading:

The multicycle datapath. Lecture 10 (Wed 10/15/2008) Finite-state machine for the control unit. Implementing the FSM

An Introduction to GPU Computing. Aaron Coutino MFCF

The Volcano Optimizer Generator: Extensibility and Efficient Search

Collision Avoidance and Resolution Multiple Access: First-Success Protocols

Master for Co-Simulation Using FMI

Submodule construction for systems of I/O automata*

On the Efficient Implementation of Pipelined Heaps for Network Processing. Hao Wang, Bill Lin University of California, San Diego

Congestion-adaptive Data Collection with Accuracy Guarantee in Cyber-Physical Systems

Fault Tolerance in Hypercubes

CS 153 Design of Operating Systems

Efficient Scheduling for Periodic Aggregation Queries in Multihop Sensor Networks

Review: Computer Organization

Prof. Kozyrakis. 1. (10 points) Consider the following fragment of Java code:

Computer-Aided Mechanical Design Using Configuration Spaces

Constrained Routing Between Non-Visible Vertices

Per-flow Queue Management with Succinct Priority Indexing Structures for High Speed Packet Scheduling

CS 153 Design of Operating Systems Spring 18

Hardware Design Tips. Outline

Constructing and Comparing User Mobility Profiles for Location-based Services

5 Performance Evaluation

VirtuOS: an operating system with kernel virtualization

CS 557 Lecture IX. Drexel University Dept. of Computer Science

Fast Obstacle Detection using Flow/Depth Constraint

EMC ViPR. User Guide. Version

Constructing Multiple Light Multicast Trees in WDM Optical Networks

CS224W Final Report. 1 Introduction. 3 Data Collection and Visualization. 2 Prior Work. Cyprien de Lichy, Renke Pan, Zheng Wu.

Lecture 14: Congestion Control

Today s Lecture. Software Architecture. Lecture 27: Introduction to Software Architecture. Introduction and Background of

v e v 1 C 2 b) Completely assigned T v a) Partially assigned Tv e T v 2 p k

EMC VNX Series. Problem Resolution Roadmap for VNX with ESRS for VNX and Connect Home. Version VNX1, VNX2 P/N REV. 03

Offline and Online Scheduling of Concurrent Bags-of-Tasks on Heterogeneous Platforms

Chapter 5 Network Layer

A Hybrid Weight-Based Clustering Algorithm for Wireless Sensor Networks

Finite Domain Cuts for Minimum Bandwidth

Topic Continuity for Web Document Categorization and Ranking

Switched state-feedback controllers with multi-estimators for MIMO systems

Maximal Cliques in Unit Disk Graphs: Polynomial Approximation

Membership Library in DPDK Sameh Gobriel & Charlie Tai - Intel DPDK US Summit - San Jose

A Parsing: Fast Exact Viterbi Parse Selection

QoS-driven Runtime Adaptation of Service Oriented Architectures

Blended Deformable Models

Efficient Mining of Partial Periodic Patterns in Time Series Database

Transcription:

This fll text paper was peer reviewed at the direction of IEEE Commnications Society sbject matter experts for pblication in the IEEE INFOCOM 007 proceedings Pipelined van Emde Boas Tree: Algorithms, Analysis, and Applications Hao Wang Bill Lin University of California, San Diego, La Jolla, CA 9093 0407 Email: {wanghao,billlin}@csded Abstract Priority qees are essential for varios network processing applications, inclding per-flow qeeing with Qality-of-Service (QoS) garantees, management of large fast packet bffers, and management of statistics conters In this paper, we propose a new data strctre for implementing highperformance priority qees based on a pipelined version of the van Emde Boas tree We show that we can achieve O() amortized time operations sing or architectre, bt we can achieve this algorithmic efficiency sing only O(log log ) nmber of pipelined stages, where is the size of the niverse sed to represent the priority keys I INTRODUCTION A fndamental bottleneck in a nmber of network processing applications is the real-time maintanence of priority vales in sorted-order Priority qees are sally sed for this prpose Applications inclde the advanced schedling of per-flow qees with QoS reqirements [], [], the management of large fast packet bffers [3], and the management of exact statistics conters [4] Among these applications, advanced per-flow schedling with QoS reqirements has received the most significant attention Per-flow qeeing is sed in advanced high-performance roters to provide isolation between flows by maintaining packets for different flows in separate logical qees Different flows may have different QoS reqirements that correspond to data rates, end-to-end latencies, or cell-loss rate To provide for QoS garantees, a nmber of advanced schedling techniqes have been proposed [], [] Most advanced schedling techniqes are based on assigning timestamps to packets, depending on rgency, and servicing flows in the earliest-timestamp-order This earliesttimestamp-first schedling approach can be facilitated sing a priority qee that sorts flows in increasing timestamps, where timestamps correspond to priority keys in the priority qee A key challenge in the implementation of priority qees is the need to spport extremely fast line rates The speed of networks is increasing at a rapid pace For example, to spport per-flow advanced schedling on a 0 Gb/s (OC-9) link, with a packet size of 40-bytes, a new entry may be inserted into the priority qee, and an existing entry may be removed once every 3ns In the advanced QoS schedling literatre, often a binary heap data strctre is assmed for the implementation of priority qees [5], which is known to have O(log n) time complexity for heap operations, where n is the nmber of heap elements However, this algorithmic complexity does not scale well with growing qee sizes and is not fast enogh for link rates at 0 Gb/s and beyond To remedy this performance limitation, pipelined heap data strctres have been proposed [6], [7] that can achieve O() amortized time complexity These pipelined heap data strctres have a hardware complexity of O(log n) nmber of pipelined stages, which can be sbstantial in hardware complexity for a large n For example, with n =64K, 6 pipelined stages are reqired In this paper, we propose a new data strctre for implementing high-performance priority qees Or proposed data strctre is a pipelined version of a known data strctre called a van Emde Boas tree [8] With the proposed pipelined van Emde Boas tree data strctre, we can achieve O() amortized time complexity operations However, the advantage of this new data strctre over pipelined heaps is that the hardware complexity is only O(log log ) nmber of pipelined stages, where is the size of the niverse sed to represent the priority keys For example, if 6-bit keys are sed to represent timestamps for advanced per-flow schedling, then the size of the niverse wold be = 6 =64K, and log log wold only be 4 pipelined stages This 6-bit precision of priority keys is sfficient to reglate rate of flows on a 0 Gb/s link from a fll 0 Gb/s down to the slowest rate of approximately 50 Kb/s II VAN EMDE BOAS TREES In a binary representation, each data consists of w bits, where w = log, and is the size of the niverse This log w bond of van Emde Boas Trees intitively sggests a binary search on the bits of a nmber, and that is essentially what a van Emde Boas Tree does Sppose x has w bits Then we split x into two parts: high(x) and low(x), each with w/ bits For example, let x = 0000, then the split is high(x) = 00 and low(x) = 00 A Strctre To handle a niverse of size, we create + sbstrctres They are recrsively constrcted in the same way (they are van Emde Boas strctres themselves), as shown in Fig ) sbstrctres: (S[0],S[],,S[ ]) Each sbstrctre handles a range of size from the niverse Akeyx is stored in S[high(x)] ) A single strctre Ssmmary of size For every i, if S[i] is nonempty, we store i in the smmary strctre 3) Smin is the minimm element of the set This is not stored recrsively Note that we can test to see if S is empty by simply checking to see if a vale is stored in Smin US Government work not protected by US Copyright 47 Athorized licensed se limited to: Univ of Calif San Diego Downloaded on Agst 0, 009 at 6:45 from IEEE Xplore Restrictions apply

This fll text paper was peer reviewed at the direction of IEEE Commnications Society sbject matter experts for pblication in the IEEE INFOCOM 007 proceedings Fig W W An Interpretation of van Emde Boas Trees C Interpretation of veb trees A van Emde Boas tree can be interpreted in an intitive manner sing complete binary trees, as shown in Fig 3 Consider a complete binary tree of high h There are h nodes in the tree Approximately h/ of these are at depth of h/ or less (ie closer to the root than bottom) If there are in total nodes, the pper sbtree (of height h/) is of size approximately Ifwetreatthewholetreeasa widget, then the smmary data strctre is the pper sbtree and the lower sbtrees are its child widgets Unlike a reglar tree, one only need to access the smmary or one of the child sbtrees to find a sccessor or predecessor, and hence it follows the sb-logarithmic search time Bits 4) Smax is the maximm element of the set Unlike Smin, it is stored recrsively lg B The Widget The van Emde Boas (veb) Tree can be characterized as a tree of widgets Fig shows the strctre of a widget The keys to be stored in a van Emde Boas tree are chosen from the niverse of keys U lg lg 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fig 3 Tree view of van Emde Boas (elements are, 9, 0, 5) MIN W W W3 Fig W van Emde Boas Tree Widget MAX ) Each widget is specific to a sbrange, over which elements can be searched The root widget is defined on the entire key range We refer to a widget defined on the range as ) Each widget is linked to p to sb-widgets, which cover sb-ranges of, respectively We will refer to them as W,W,,W There may not be elements in the veb tree from one or more sb-range in Any widget that does not contain any elements is called an empty widget 3) Each widget contains a maximm (MAX) and minimm (MIN) key in the veb tree of the sb-range 4) Each widget contains a pointer to a smmary strctre () The smmary strctre is also a veb tree It is sed to answer qeries of which sb-widget is the next nonempty sb-widget before/after a given sb-widget W i 5) From the recrsive strctre of the tree, it shold be clear that the non-smmary leaves of the van Emde Boas tree will be widgets where MIN = MAX, and there are no child widgets or smmary strctre III ALGORITHMS FOR VAN EMDE BOAS TREES In this section, we describe the operations on a van Emde Boas tree We then present or pipelined van Emde tree architectre in Section IV along with the algorithms for its operations In the following psedo codes, we se W to represent the whole tree strctre All operations described have O(log log ) rnning times A INSERT (x) The INSERT operation inserts the priority key x into the veb tree if the key does not already exist INSERT(x, W ) if x<min[w ] then x min[w ] 3 min[w ] x 4 if MIN(sb[W ][high(x)]) NIL 5 then INSERT(low(x),sb[W ][high(x)]) 6 else min[sb[w ][high(x)]] low(x) 7 INSERT(high(x), smmary[w ]) 8 if x>max[w ] 9 then max[w ] x In the INSERT operation, each binary data is eqally divided into two parts, higher and lower parts There are two sbstrctres, which correspond to the higher part and lower part For each loop, it is decided which sbstrctre the new data belongs to Follow this procedre ntil each part consists 47 Athorized licensed se limited to: Univ of Calif San Diego Downloaded on Agst 0, 009 at 6:45 from IEEE Xplore Restrictions apply

This fll text paper was peer reviewed at the direction of IEEE Commnications Society sbject matter experts for pblication in the IEEE INFOCOM 007 proceedings of only one bit Even thogh there are two INSERT calls in its fnction body, the first call will only be sed when the corresponding sb-widget is empty at the time of operation, which happens mch less freqently in or consideration B EXTRACTMIN (W) The EXTRACTMIN operation is a special case of the DELETE operation that deletes and retrns the minimm priority key vale in the veb tree In this part, we se n[w ] to represent the nmber of nonempty entries in the widget W EXTRACTMIN(W ) if n[w ]=0 then retrn NULL(m h,m l ) min(w ) 3 if n(smmary[w ]) = 4 then EXTRACTMIN(smmary[W ]) 5 x h min(smmary[w ]) 6 x l min(sb[w ][x h ]) 7 else EXTRACTMIN(sb[W ][m h ]) 8 x h m h 9 x l min(sb[w ][x h]) 0 n[w ]=n[w ] (min)(w ) (x h,x l ) Since we always keep track of the minimm vale of a van Emde Boas Tree, this operation can be finished in constant time C SUCCESSOR (x, W) A particlarly interesting featre of the veb tree data strctre is that it natrally spports the SUCCESSOR operation, which is very difficlt to implement on a binary heap or a pipelined heap This operation is often sefl in network processing applications Often, we need to find the next entry of operation following the same rle as we sed to find the crrent entry, which can be done sing SUCCESSOR operation The SUCCESSOR operation finds the next smallest priority key larger than x in the veb tree and retrns this key SUCCESSOR(x, W ) if x<min(w ) then retrn MIN(W ) 3 if low(x) < MAX(sb[W ][high(x)]) 4 then j SUCCESSOR(low(x),sb[W ][high(x)]) 5 retrn high(x) W + j 6 else i SUCCESSOR(high(x), smmary[w ]) 7 j min[sb[w ][i]] 8 retrn i W + j In the SUCCESSOR operation, we always go back to the pper layer to find the next position that is nonempty If there is no sch entry, the data we access is the last one in the whole veb Tree strctre D EXTRACTSUCC (x, W) EXTRACTSUCC operation is a special case of the DELETE operation Instead of deleting and retrning the smallest priority key in the veb tree, the EXTRACTSUCC operation deletes and retrns the next smallest priority key vale in the veb tree greater than x, if sch a priority key exists This is also a very sefl operation in network processing applications EXTRACTSUCC(x, W ) if n[w ]= then retrn NULL 3 if x<max(w ) and x>min(w ) 4 then if low(x) < MAX(sb[W ][high(x)]) 5 then j EXTRACTSUCC 6 (low(x),sb[w ][high(x)]) 7 retrn high(x) W + j 8 else i EXTRACTSUCC 9 (high(x), smmary[w ]) 0 j min[sb[w ][i]] retrn i W + j else retrn MIN(W ) 3 pdate veb T ree In the EXTRACTSUCC operation, we find and remove the entry with the smallest vale larger than x If there is no sch entry, and veb Tree is not empty other than the crrent data we are sing, the smallest data of this tree is extracted IV PIPELINED VAN EMDE BOAS TREE In this section, we present or pipelined van Emde Boas tree and its pipelined operations The pipeline hardware strctre is depicted in Fig 4 Fig 4 Otpt of Sccessor Operation Operation Operation 3 Operation 4 Operation 5 Stage Stage Stage 3 Stage 4 Stage 5 Arg Arg Arg 3 Arg 4 Arg 5 Insert DATA Extract Min Sb, N, MIN, MAX Sb, N, MIN, MAX Sb3, N3, MIN3, MAX3 Sb4, N4, MIN4, MAX4 DATA, N5, MIN5, MAX5 Simplified block diagram of Pipelined van Emde Boas Trees A Operation Zone The operation zone is defined as the area of memory in which the operation may access To get a pipelined algorithm, we have to make sre that no two operations are in the same operation zone at the same time The key idea is to se MIN and MAX to keep track of the minimm vale and maximm vale of each widget, and se N to denote the nmber of elements in each widget The detailed operations are explained from Section IV-B to Section IV-E In the following sections, the psedo code in the LOCAL version of the operation corresponds to a pipeline stage, as depicted in Fig 4 The psedo code in the main procedre of 473 Athorized licensed se limited to: Univ of Calif San Diego Downloaded on Agst 0, 009 at 6:45 from IEEE Xplore Restrictions apply

This fll text paper was peer reviewed at the direction of IEEE Commnications Society sbject matter experts for pblication in the IEEE INFOCOM 007 proceedings the operation effectively describes the traversal of the pipeline stages, from the first stage to the last one In this way, each step of all operations can be divided into different operation zones After we start the first operation, we may start another one in a later time before the first operation is finished In this way, a pipelined van Emde Boas Trees is strctred B INSERT operation LOCAL INSERT(x, W ) N[W ]++ if N[W ]= 3 then MIN(W ) x 4 retrn done 5 if x<min(w ) 6 then x MIN(W ) 7 MIN(W ) x 8 if x>max(w ) 9 then MAX(W ) x 0 if MIN(sb[W ][high(x)]) NIL then W sb[w ][high(x)] x low(x) 3 retrn nf inished 4 else MIN(sb[W ][high(x)]) low(x) 5 W smmary[w ] 6 x high(x) 7 retrn nf inished PROCEDURE INSERT(x, W ) global x, W reslt nf inished 3 while reslt = nf inished 4 do reslt LOCAL INSERT(x, W ) 5 retrn done The key idea with this pipelined version of INSERT operation of van Emde Boas Tree is that we don t have any recrsive call Instead, we se memory to keep track of the position of each operation and its reslt Ths, one INSERT operation will be restricted to only local area, ie one operation zone, which makes the pipelining idea possible C EXTRACTMIN operation LOCAL EXTRACTMIN(W ) if N[W ]=0 then retrn done 3 N[W ] 4 W min[smmary[w ]] 5 min[w ] min[w ] 6 W W + min[sb[w ][i]] 7 retrn nf inished EXTRACTMIN(W ) MINIMUM MIN(W ) reslt nf inished 3 while reslt = nf inished 4 do reslt LOCAL EXTRACTMIN(W ) 5 retrn MINIMUM In the pipelined EXTRACTMIN operation, there is no recrsive call Memories are sed to keep track of the position of the operation If the tree is empty at the beginning of this operation, the algorithm will terminate immediately D SUCCESSOR operation LOCAL SUCCESSOR(x, W, S, flag) if x<min(w ) then S MIN(W ) 3 retrn done 4 if low(x) < MAX(sb[W ][high(x)]) 5 then W sb[w ][high(x)] 6 x low(x) 7 flag = 8 else W smmary[w ] 9 x high(x) 0 flag =0 retrn nf inished SUCCESSOR(x, W, S, flag) reslt nf inished array R,h,choose 3 i 0 4 while reslt = nf inished 5 do h[i] high(x) 6 R[i] W 7 reslt LOCAL SUCCESSOR(x, W, S, flag) 8 choose[i] flag 9 while i 0 0 do if choose[i] = then S h[i] R[i] + S else S S R[i] + S 3 i 4 retrn S There is no recrsive call in the pipelined SUCCESSOR operation Memories are sed to keep track of the position of the operation In order to otpt the vale of the sccessor we find, we also have to keep track of the path we go throgh as we are looking for the sccessor of the crrent vale The size of this memory will be discssed later E EXTRACTSUCC operation LOCAL EXTRACTSUCC(x, W, S, flag) if x<min(w ) or x>max(w ) then S MIN(W ) 3 remove Min(W ) 4 pdate veb T ree 5 retrn done 6 if low(x) < MAX(sb[W ][high(x)]) 7 then W sb[w ][high(x)] 8 x low(x) 9 flag = 0 else W smmary[w ] 474 Athorized licensed se limited to: Univ of Calif San Diego Downloaded on Agst 0, 009 at 6:45 from IEEE Xplore Restrictions apply

This fll text paper was peer reviewed at the direction of IEEE Commnications Society sbject matter experts for pblication in the IEEE INFOCOM 007 proceedings x high(x) flag =0 3 retrn nf inished EXTRACTSUCC(x, W, S, flag) reslt nf inished array R,h,choose 3 i 0 4 while reslt = nf inished 5 do h[i] high(x) 6 R[i] W 7 reslt LOCAL EXTRACTSUCC(x, W, S, flag) 8 choose[i] flag 9 while i 0 0 do if choose[i] = then S h[i] R[i] + S else S S R[i] + S 3 i 4 retrn S It is also tre here that there is no recrsive call in the pipelined EXTRACTSUCC operation Memories are sed to keep track of the memory positions of the operation If there is no sch sccessor entry, and veb Tree is not empty other than the crrent data we are sing, the smallest data of this tree is extracted V MEMORY MANAGEMENT OF PIPELINED VEB TREE A Memory On the right hand side of Fig 4 are the memories for each stage We have to se two time slots to finish one stage That is becase EXTRACTMIN operation may need to access the memory of the next stage When an entry of a widget is extracted, an entry from the corresponding sb-widget will be need to replace it Given two time slots, we can garantee that no two consective EXTRACTMIN operations will access the same time slot at the same time The strctre of the each memory is shown in Fig 5 MIN Fig 5 W W W3 N W MAX Pipelined van Emde Boas Tree Widget in Memories In all the memories except the last one, MIN, MAX and N are stored Also, the links of smmary to each W i are kept It is worth noting that there is no data in these memories All the data is kept in the memory of the last processor Data is modified only in the last step The size of the memory in stage iso( / )ItisO( 3/4 ) for stage, O( 7/8 ) for stage 3, and O( 5/6 ) for stage 4 The final stage in the example in Fig 4, which is stage 5, is of size O() Consider a niverse of size 0 The stages are of size 0, 5, 75, 875, and 0 In the last stage, we store all the data So the memory for the last stage is mch larger than all the others We can pt them all in SRAM to achieve better performance On the left hand side of Fig 4 are the memories for the operation of sccessor There are (log log ) operations allowed in this strctre at the same time, and log log stages So the size of the memories matrix is of the order of O(log log ) Actally, since finding sccessor operation is not reqired in some applications, we can achieve a even simpler pipelined strctre withot this memory B Operations The pipelined van Emde Boas Tree works like this First, we inpt operation After one time slot, all the parameters will be transfered to the next processor To avoid the possible collision in EXTRACTMIN operation, no new operation will be inpt in stage After one more time slot, when operation moves to stage 3, a new operation can be inpt into stage In this way, we can make sre that there will be no collision in this pipelined strctre The nmber of processors reqired in this strctre is log log Given a niverse of Gigabyte, we will need to have 0 processors working in parallel The amont of operations spported in this strctre is log log / Ths, constant time operation is realized A better method is to divide each operation into three clock cycles They are: a) reading from memory; b) comparing two vales of next stage memory to find the minimm; c) writing this minimm into the memory of crrent stage Therefore, operations can go down the stages at a rate of one or more operations every three cycles It is not one operation every two cycles, becase it is possible to have consective EXTRACTMIN operations However, we need the memory to spport a reading throghpt of two entries per cycle, and an additional writing throghpt of one entry per cycle REFERENCES [] A K Parekh, R G Gallager, A generalized processor sharing approach to flow control in integrated service networks: The single-node case, IEEE/ACM Transactions on Networking, vol, pp 334-357, 993 [] A Demers, S Keshav, S Shenkar, Analysis and simlation of a fair qeeing algorithms, Proceedings of SIGCOMM 89, pp -, Astin, TX, Sept 989 [3] S Iyer, N Mckeown, Designing bffers for roter line cards, Stanford University HPNG Technical Report - TR0-HPNG-0300, Stanford, CA, Mar 00 [4] D Shah, Analysis of a statistics conter architectre, Proc IEEE Hot Interconnects 9, IEEE CS Press, Los Alamitos, CA, 00 [5] T H Cormen, C E Leiserson, and R L Rivest, Introdction to algorithms, McGraw-Hill Book Company, ISBN 0-07-0343-0 [6] R Bhagwan, B Lin, Fast and scalable priority qee architectre for high-speed network switches, Proceedings of INFOCOM 000, Tel Aviv, Israel, 000 [7] A Ioanno, M Katevenis, Pipelined heap (priority qee) management for advanced schedling in high-speed networks, Proceedings of IEEE Int Conf on Commnications (ICC 00), 00 [8] P van Emde Boas, Design and implementation of an efficient priority qee, Math Syst Theory, 0:99-7, 977 475 Athorized licensed se limited to: Univ of Calif San Diego Downloaded on Agst 0, 009 at 6:45 from IEEE Xplore Restrictions apply