US5623668A  Method in a polling system for transmitting queue elements from multiple input queues to a single output with improved queue service performance  Google Patents
Method in a polling system for transmitting queue elements from multiple input queues to a single output with improved queue service performance Download PDFInfo
 Publication number
 US5623668A US5623668A US08561551 US56155195A US5623668A US 5623668 A US5623668 A US 5623668A US 08561551 US08561551 US 08561551 US 56155195 A US56155195 A US 56155195A US 5623668 A US5623668 A US 5623668A
 Authority
 US
 Grant status
 Grant
 Patent type
 Prior art keywords
 queue
 values
 ratio
 selected
 factor
 Prior art date
 Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
 Expired  Lifetime
Links
Images
Classifications

 H—ELECTRICITY
 H04—ELECTRIC COMMUNICATION TECHNIQUE
 H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
 H04L12/00—Data switching networks
 H04L12/54—Storeandforward switching systems
 H04L12/56—Packet switching systems
 H04L12/5601—Transfer mode dependent, e.g. ATM
 H04L12/5602—Bandwidth control in ATM Networks, e.g. leaky bucket

 H—ELECTRICITY
 H04—ELECTRIC COMMUNICATION TECHNIQUE
 H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
 H04L12/00—Data switching networks
 H04L12/28—Data switching networks characterised by path configuration, e.g. local area networks [LAN], wide area networks [WAN]
 H04L12/40—Bus networks
 H04L12/403—Bus networks with centralised control, e.g. polling

 H—ELECTRICITY
 H04—ELECTRIC COMMUNICATION TECHNIQUE
 H04Q—SELECTING
 H04Q11/00—Selecting arrangements for multiplex systems
 H04Q11/04—Selecting arrangements for multiplex systems for timedivision multiplexing
 H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
 H04Q11/0478—Provisions for broadband connections

 H—ELECTRICITY
 H04—ELECTRIC COMMUNICATION TECHNIQUE
 H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
 H04L12/00—Data switching networks
 H04L12/54—Storeandforward switching systems
 H04L12/56—Packet switching systems
 H04L12/5601—Transfer mode dependent, e.g. ATM
 H04L2012/5603—Access techniques
 H04L2012/5609—Topology
 H04L2012/561—Star, e.g. crossconnect, concentrator, subscriber group equipment, remote electronics

 H—ELECTRICITY
 H04—ELECTRIC COMMUNICATION TECHNIQUE
 H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
 H04L12/00—Data switching networks
 H04L12/54—Storeandforward switching systems
 H04L12/56—Packet switching systems
 H04L12/5601—Transfer mode dependent, e.g. ATM
 H04L2012/5614—User Network Interface
 H04L2012/5615—Network termination, e.g. NT1, NT2, PBX

 H—ELECTRICITY
 H04—ELECTRIC COMMUNICATION TECHNIQUE
 H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
 H04L12/00—Data switching networks
 H04L12/54—Storeandforward switching systems
 H04L12/56—Packet switching systems
 H04L12/5601—Transfer mode dependent, e.g. ATM
 H04L2012/5638—Services, e.g. multimedia, GOS, QOS
 H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
 H04L2012/5651—Priority, marking, classes

 H—ELECTRICITY
 H04—ELECTRIC COMMUNICATION TECHNIQUE
 H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
 H04L12/00—Data switching networks
 H04L12/54—Storeandforward switching systems
 H04L12/56—Packet switching systems
 H04L12/5601—Transfer mode dependent, e.g. ATM
 H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
 H04L2012/5681—Buffer or queue management
Abstract
Description
This application is a continuation of copending patent application serial number entitled "Method for the Conversion of a Polling Frequency Table Into a Polling Sequence Table" filed on Sep. 15, 1993 as Ser. No. 08/122,016.
The invention relates to a method for the polling of queues, each having a number of queue elements which varies in time and is not known in advance, which method involves forming, from queue values such as the numbers of elements in the various queues or the increase in those numbers of queue elements, a ratio table having ratio values which represent these queue values, which ratio table is subsequently converted into a polling sequence table with a polling sequence which is as regular as possible. This is particularly applicable to the polling of ATM data cells. Such a method is known from, amongst others, a publication entitled Optimizing Of Polling Systems, as authored by O. J. Boxima et al, Report BSR8932, Centre for Mathematics and Computer Science, P.O. Box 4079, NL1009AB Amsterdam. The method presented there comprises a number of steps, namely:
Step 1: using queue characteristic values for the various queues, such as the queue size or queue growth, the `occurrence ratio` (eg. occurrence frequency), is calculated for each queue;
Step 2: using the ratios thus calculated, the polling table size M and the absolute number of occurrences per queue are calculated;
Step 3: using the calculated table size M and the calculated numbers of occurrences per queue, the polling sequence of the various queues is calculated.
In step 3, use is made of a `random control policy` or of a `golden ratio policy`, both taken from studies as reported by Hofri & Rosberg in the article entitled Packet Delay Under the Golden Ratio Weighted TDM Policy in a MultipleAccess Channel, IEEE Trans. Inform. Theory, Vol. IT33, pp. 341349. The performance of the `random policy` is quite limited. The performance of the `golden ratio policy` is better, though it requires quite complex mathematical operations, which take a relatively large amount of time, which is quite a significant disadvantage for the handling of ATM data cells which after all, are intended for broadband applications such as BISDN.
The object of the invention is to provide a method based on the processing of integers in simple add and compare functions, which results in a fast polling system.
The invention is characterised by the following steps:
Step 1: calculate the ratio values R(n) in the ratio table using the queue values Q(n);
Step 2: calculate the sum S of these ratio values R(n);
Step 3: assign to each queue x a correction factor C(x) which is equal to said sum S of the ratio values, decreased by the ratio value R(x) of that queue x;
Step 4: select the queue i having the highest urgency factor U(i) or, if more queues have this highest urgency factor U(i), select one specific queue i therefrom, for example the first queue occurring in the ratio table having this highest urgency factor U(i);
Step 5: reduce the urgency factor U(i) of that selected queue i by the value of its correction factor C(i);
Step 6: increase the urgency factor U(x) of the remaining queues (≠i) by their ratio value R(x);
Step 7: repeat from step 4 or repeat from step 1 (see below).
The polling sequence table may be calculated once, taking into account unchanging queue values such as the long term average value for the queue size, then may be periodically recalculated. These aspects are dependant on the dynamic behaviour of the queue values and on the desired accuracy of the polling system. It is therefore possible on the one hand to calculate the polling table once and on the other hand to recalculate that table prior to each cycle in which the next queue to be polled is calculated. In the first case a `jump back` from step 7 to step 4 may be made; in the second case a jump back to step 1 is necessary. Intermediate forms are also possible. For example it is possible to check once per calculation cycle whether the queue values have changed and to recalculate the sequence table only after such a change is detected; this may also occur every n calculation cycles. Below is a worked example in which a check is carried out on every third calculation cycle whether the queue values is changed, and only where this is the case have a new ratio table, the sum of the ratios and new correction factors, calculated. An example is also worked out in which this occurs with each calculation cycle, resulting in a maximum adjustment of the polling sequence table to the dynamic behaviour of the varying supply of the queue elements.
The teachings of the present invention can be readily ascertained by considering the following detailed description in conjunction with the accompanying drawing, in which:
The sole FIGURE is a flow diagram of the polling system methodology in accordance with the present invention.
The operation of the method according to the invention will be illustrated hereinafter. It is assumed that there are three queues a, b and c, whose `arrival rate`, (supply of the number of queue elements per time unit) at a specific moment is: Q(a)=3, Q(b)=6, Q(c)=3. Below, the steps mentioned above shall be followed in accordance with the invention.
Step 0: Assign to each queue x an initial urgency factor U(x), eg. U(a)=0, U(b)=0 and U(c)=0.
Step 1: The simplest ratio table is that in which the values for Q(x) are adopted, resulting in a ratio table of R(a)=3, R(b)=6 and R(c)=3. If for example the values of Q(x) are much higher, for instance 3357, 5976 and 2840, a decision may also be made to derive simpler ratio numbers from these, for example by dividing the values of Q(x) by 1000 and rounding them to the nearest integers, in that case 3, 6 and 3 once again.
Step 2: The sum S=R(a)+R(b)+R(c)=12;
Step 3: The correction factors C(x) become: C(a)=12 3=9, C(b)=12 6=6 and C(c)=12 3=9;
In steps 4, 5 and 6 the next queue to be polled is selected using the values calculated in the previous steps.
Step 4: All urgency factors U(x) are=0 (initial value); then select the first queue with this (`highest`) value: queue a.
Step 5: Decrease U(a) by the value of C(a): U(a):=0 9=9;
Step 6: Increment U(b) and U(c) by the value of R(b) and R(c) respectively: U(b):=0+6=+6; U(c):=0+3=+3
Step 7: Repeat step 4, 5 and 6:
Step 4: Select queue b, which now, after all, has the highest value of U(x), namely U(b)=+6, while U(a)=9 and U(c)=+3;
Step 5: Decrease U(b) by C(b): U(b):=6 6=0;
Step 6: Increment U(a) by R(a): U(a):=9+3=6 and U(c) by R(c): U(c):=+3+3=+6;
Step 7: Repeat step 4, 5 and 6:
Step 4: Now select queue c, which now has the highest value of U(x), namely U(c)=+6, while U(a)=6 and U(b)=0;
Step 5: Decrease U(c) by C(c): U(c):=+6 9=3;
Step 6: Increment U(a) by R(a): U(a):=6+3=3 and U(b) by R(b): U(b):=0 +6=+6;
Step 7: Repeat step 4, 5 and 6:
And so on . . .
The above may be shown in table form thus:
______________________________________Queue names a b cQueue values Q(a) = 3 Q(b) = 6 Q(c) = 3Ratio factor R = 1Ratio values R(a) = 3 R(b) = 6 R(c) = 3Sum ratio values S = 12Correction values C(a) = 9 C(b) = 6 C(c) = 9P U(a) U(b) U(c) Selected queue (i)1 0* 0 0 a2 9 6* 3 b3 6 0 6* c4 3 6* 3 b5 0* 0 0 a6 9 6* 3 b7 6 0 6* c8 3 6* 3 b9 0* 0 0 a10 9 6* 3 b11 6 0 6* c12 3 6* 3 b13 0* 0 0 a14 9 6* 3 b15 6 0 6* c______________________________________
With a ratio distribution of 3  6  3 the calculated polling sequence is therefore a  b  c  b  a  b  c  b  a  etc. (the highest value of U(x) is indicated by an *). It may be obvious that at the moment the queue values measured on the queues change, the polling sequence may also change; in that case the values of R(a), R(b) and R(c) therefore change as well, as do the values of C(a), C(b) and C(c). Such a change can, directly prior to each calculation cycle P, wherein it is calculated which queue is to be used as the next queue, be included in that calculation so that the polling sequence is always optimally adjusted to the incoming flow of queue elements, such as ATM data cells. Changes may also be included in the calculation once every n calculation cycles. This method thus seems very well suited for application in ATM systems, as has already been confirmed by simulations.
The FIGURE depicts flow diagram 100 for carrying out the process of routing queue elements from multiple input queues to a single output of a polling system. With reference to the FIGURE, processing block 101 depicts that each queue has a queue value (Q(i)) determined from characteristics or parameters of the queue elements forming the queue. First, processing block 110 is invoked so as to assign urgency integers U(i) to the queues based upon a preselected criterion or preselected criteria. As the example demonstrated, the U(i)'s may all be set to the same value if no prior knowledge is available about the relative importance of the queues. Next, processing block 120 is invoked to calculate the ratio integers R(i) in proportion to the queue values Q(i). Then, the processing by block 130 is carried out to calculate the sum S of all the ratio integers. In turn, correction integers C(i) for each queue are computed from S and R(i), as depicted by processing block 140. Once these calculations are complete, it is now possible to select a queue, designated queue j, which has the highest urgency integer U(j) associated with queue j, as indicated by processing block 150. Processing block 160 is now invoked to poll the selected queue to transmit the queue elements from queue j to the single output of the polling system; in this way, the queue having the highest priority is serviced to thereby enhance the performance of the polling system. Once polling has taken place, updating activities occur. Updated first, as evidence by processing block 170, is the U(j) integer which is reduced by the correction integer C(j). Next, all other urgency integers, as per processing block 180, are increased in value by adding the ratio integer R(i) to U(i), i≠j. Finally, processing block 190 is invoked to return to an intermediate block (block 150 or block 120, as exemplified by examples) in flow diagram 100 depending upon the dynamic changes in the queue values.
Some further examples will be given below in which use is made of the following program.
__________________________________________________________________________100 CLS110 OPEN"pn.out" FOR APPEND AS#1120 OPEN"pn.in" FOR INPUT AS#2130 PRINT "Queue names a b c"140 PRINT#1, "Queue names a b c"150 INPUT#2,Q(1),Q(2),Q(3),R160 IF (Q(1) = Q(1)) AND (Q(2) = Q(2)) AND (Q(3) = Q(3)) GOTO 420170 Q(1) = Q(1):Q(2) = Q(2):Q(3) = Q(3)180 PRINT" ":PRINT#1," "190 PRINT USING "Queue values Q(a) = ### Q(b) = ### Q(c) = ###";Q(1);Q(2);Q(3)200 PRINT#1,USING "Queue values Q(a) = ### Q(b) = ### Q(c) = ###";Q(1);Q(2);Q(3)210 PRINT USING "Ratio factor R = ###";R220 PRINT#1,USING "Ratio factor R = ###";R230 S = 0240 FOR X = 1 TO 3250 R(X) = INT((Q(X)/R) + .5)260 S = S + R(X)270 NEXT X280 FOR X = 1 TO 3290 C(X) = SR(X)300 NEXT X310 PRINT USING "Ratio values R(a) = ### R(b) = ### R(c) = ###";R(1),R(2),R(3)320R(c) = ###";R(1),R(2),R(3)lues R(a) = ### R(b) = ###330 PRINT USING "Sum ratio values S = ###";S340 PRINT#1,USING "Sum ratio values S = ###";S350 PRINT USING "Correction values C(a) = ### C(b) = ### C(c) = ###";C(1),C(2),C(3)360 PRINT#1,USING "Correction values C(a) = ### C(b) = ### C(c) = ###"; C(1),C(2),C(3)370 PRINT" "380 PRINT#1," "390 PRINT " P U(a) U(b) U(c) Selected queue (i)400 PRINT#1, " P U(a) U(b) U(c) Selectedqueue (i)410 PRINT#1," "420 FOR P = 1 TO 3430 IF (U(1)> =U(2)) AND (U(1)> =U(3)) THEN Q$ = "a":M$(1) = "*": M$(2) = " ":M$(3) = " ":GOTO 460440 IF (U(2)> =U(3)) AND (U(2)> =U(1)) THEN Q$ = "b":M$(1) = " ":M$(2) = "*":M$(3) = " ":GOTO 460450 IF (U(3)> = U(1)) AND (U(3)> =U(2)) THEN Q$ = "c":M$(1) = " ":M$(2) = " ":M$(3) = "*":GOTO 460460 N = N + 1470 PRINT USING "### ###& ###& ###& &";N,U(1),M$(1),U(2), M$(2),U(3),M$(3),Q$480 PRINT#1,USING "### ###& ###& ###& &";N,U(1),M$(1), U(2),M$(2),U(3),M$(3),Q$490 IF Q$ = "a" THEN U(1) = U(1)C(1):U(2) = U(2) + R(2):U(3) = U(3) + R(3)500 IF Q$ = "b" THEN U(2) = U(2)C(2):U(1) = U(1) + R(1):U(3) = U(3) + R(3)510 IF Q$ = "c" THEN U(3) = U(3)C(3):U(1) = U(1) + R(1):U(2) = U(2) + R(2)520 NEXT P530 IF EOF(2) GOTO 550540 GOTO 150550 CLOSE560 SYSTEM__________________________________________________________________________
In the program above, a check is carried out, after every third calculation cycle in which a queue is guided, whether any change has occurred in the queues for example a change in the number of elements located in the queue, (or for example a change in the net increase/decrease). In the example above no change occurred; the queue values therefore remained constant in the period considered, (the new values are presented only when changes occur).
Below, firstly, a situation in which the queue values are greater than in the above example by a factor of 100.
______________________________________Queue names a b cQueue values Q(a) = 286 Q(b) = 598 Q(c) = 326Ratio factor R = 100Ratio values R(a) = 3 R(b) = 6 R(c) = 3Sum ratio values S = 12Correction values C(a) = 9 C(b) = 6 C(c) = 9P U(a) U(b) U(c) Selected queue (i)1 0* 0 0 a2 9 6* 3 b3 6 0 6* c4 3 6* 3 b5 0* 0 0 a6 9 6* 3 b7 6 0 6* c8 3 6* 3 b9 0* 0 0 a10 9 6* 3 b11 6 0 6* c12 3 6* 3 b13 0* 0 0 a14 9 6* 3 b15 6 0 6* c______________________________________
By dividing the queue values by a ratio factor of 100 and using the nearest integers as valves for the ratio table, the same situation is created as in the first example. Owing to the fairly large ratio factor a slight inaccuracy is introduced in the queue selection as may be seen from the example below, in which a smaller ratio factor is used thereby making the selection more accurate.
______________________________________Queue names a b cQueue values Q(a) = 286 Q(b) = 598 Q(c) = 326Ratio factor R = 10Ratio values R(a) = 29 R(b) = 60 R(c) = 33Sum ratio values S = 122Correction values C(a) = 93 C(b) = 62 C(c) = 89P U(a) U(b) U(c) Selected queue (i)1 0* 0 0 a2 93 60* 33 b3 64 2 66* c4 35 58* 23 b5 6 4 10* c6 23 56* 79 b7 52* 6 46 a8 41 54* 13 b9 12 8 20* c10 17 52* 69 b11 46* 10 36 a12 47 50* 3 b13 18 12 30* c14 11 48* 59 b15 40* 14 26 a______________________________________
An example is given below of a situation in which the queue values change rapidly. The changed situation (which is indicated in each case), is taken into account on every third calculation cycle.
______________________________________Queue names a b cQueue values Q(a) = 286 Q(b) = 598 Q(c) = 326Ratio factor R = 10Ratio values R(a) = 29 R(b) = 60 R(c) = 33Sum ratio values S = 122Correction values C(a) = 93 C(b) = 62 C(c) = 89P U(a) U(b) U(c) Selected queue (i)1 0* 0 0 a2 93 60* 33 b3 64 2 66* cQueue values Q(a) = 286 Q(b) = 635 Q(c) = 326Ratio factor R = 10Ratio values R(a) = 29 R(b) = 64 R(c) = 33Sum ratio values S = 126Correction values C(a) = 97 C(b) = 62 C(c) = 93P U(a) U(b) U(c) Selected queue (i)4 35 58* 23 b5 6 4 10* c6 23 60* 83 bQueue values Q(a) = 234 Q(b) = 635 Q(c) = 326Ratio factor R = 10Ratio values R(a) = 23 R(b) = 64 R(c) = 33Sum ratio values S = 120Correction values C(a) = 97 C(b) = 56 C(c) = 87P U(a) U(b) U(c) Selected queue (i)7 52* 2 50 a8 45 62* 17 b9 22 6 16* cQueue values Q(a) = 234 Q(b) = 635 Q(c) = 376Ratio factor R = 10Ratio values R(a) = 23 R(b) = 64 R(c) = 38Sum ratio values S = 125Correction values C(a) = 102 C(b) = 61 C(c) = 87P U(a) U(b) U(c) Selected queue (i)10 1 70* 71 b11 24* 9 33 a12 78 73* 5 bQueue values Q(a) = 198 Q(b) = 635 Q(c) = 376Ratio factor R = 10Ratio values R(a) = 20 R(b) = 64 R(c) = 38Sum ratio values S = 122Correction values C(a) = 102 C(b) = 58 C(c) = 84P U(a) U(b) U(c) Selected queue (i)13 55 12 43* c14 35 76* 41 b15 15 18* 3 b______________________________________
It will be obvious that it is equally possible to check whether a change has occurred in the queue values within the queues on every calculation cycle, rather than on every third calculation cycle. This is assumed in the example below, in which prior to each queue selection, any change in the queue values with respect to the previous selection is detected; only in that case are the changed queue values presented and the values for R(x), S and C(x) recalculated.
The progress of queue values in time is as follows:
______________________________________ 1 286  598  326 326 286  635 635  326 4 234  635  376 635  376 6 198  635  376 7 198  635  376 8 198  635  376 467 255 10 255  698  467 501 287 12 287  751  501 578 302 14 302  923  578 15 302  923  578______________________________________
The polling sequence table calculation then looks as follows:
______________________________________Queue names a b cQueue values Q(a) = 286 Q(b) = 598 Q(c) = 326Ratio factor R = 10Ratio values R(a) = 29 R(b) = 60 R(c) = 33Sum ratio values S = 122Correction values C(a) = 93 C(b) = 62 C(c) = 89P U(a) U(b) U(c) Selected queue (i)1 0* 0 0 aQueue values Q(a) = 286 Q(b) = 635 Q(c) = 326Ratio factor R = 10Ratio values R(a) = 29 R(b) = 64 R(c) = 33Sum ratio values S = 126Correction values C(a) = 97 C(b) = 62 C(c) = 93P U(a) U(b) U(c) Selected queue (i)2 93 60* 33 bQueue values Q(a) = 234 Q(b) = 635 Q(c) = 326Ratio factor R = 10Ratio values R(a) = 23 R(b) = 64 R(c) = 33Sum ratio values S = 120Correction values C(a) = 97 C(b) = 56 C(c) = 87P U(a) U(b) U(c) Selected queue (i)3 64 2 66* cQueue values Q(a) = 234 Q(b) = 635 Q(c) = 376Ratio factor R = 10Ratio values R(a) = 23 R(b) = 64 R(c) = 38Sum ratio values S = 125Correction values C(a) = 102 C(b) = 61 C(c) = 87P U(a) U(b) U(c) Selected queue (i)4 41 62* 21 bQueue values Q(a) = 198 Q(b) = 635 Q(c) = 376Ratio factor R = 10Ratio values R(a) = 20 R(b) = 64 R(c) = 38Sum ratio values S = 122Correction values C(a) = 102 C(b) = 58 C(c) = 84P U(a) U(b) U(c) Selected queue (i)5 18 1 17* c6 2 65* 67 b7 22* 7 29 a8 80 71* 9 bQueue values Q(a) = 255 Q(b) = 698 Q(c) = 467Ratio factor R = 10Ratio values R(a) = 26 R(b) = 70 R(c) = 47Sum ratio values S = 143Correction values C(a) = 117 C(b) = 73 C(c) = 96P U(a) U(b) U(c) Selected queue (i)9 60 13 47* c10 34 83* 49 bQueue values Q(a) = 287 Q(b) = 751 Q(c) = 501Ratio factor R = 10Ratio values R(a) = 29 R(b) = 75 R(c) = 50Sum ratio values S = 154Correction values C(a) = 125 C(b) = 79 C(c) = 104P U(a) U(b) U(c) Selected queue (i)11 8 10* 2 b12 21 69 48* cQueue values Q(a) = 302 Q(b) = 923 Q(c) = 578Ratio factor R = 10Ratio values R(a) = 30 R(b) = 92 R(c) = 58Sum ratio values S = 180Correction values C(a) = 150 C(b) = 88 C(c) = 122P U(a) U(b) U(c) Selected queue (i)13 50* 6 56 a14 100 98* 2 b15 70 10 60* c______________________________________
Presented in shorter form:
______________________________________Calculation Cycle Queue values Selected queue______________________________________1 286  598  326 a326 286  635 b635  326 234 c4 234  635  376 b635  376 198 c6 198  635  376 b7 198  635  376 a8 198  635  376 b467 255 c10 255  698  467 b501 287 b12 287  751  501 c578 302 a14 302  923  578 b15 302  923  578 c______________________________________
For simplicity three queues are assumed in the above examples. It will be obvious that this number may be increased in a simple manner.
One important application for the method according to the invention is to be found in systems in which it must be possible to adjust the service allocation quickly to a changing service requirement. One example of a system in which a rapidly changing queue service requirement occurs is the ATM Passive Optical Network, in which multiple users are connected to one local exchange by means of a glass fibre branched like a tree. Here, the user queues with ATM data cells can be efficiently read out making use of the method presented above.
If the polling table is continuously adjusted to the service requirement, the choice of the initial values of U(a), U(b) and U(c) is not critical. Where, however, the polling table is used in a semistatic way, the initial values are more importance. Practical experience has shown that a good solution is found if the initial values used are the sum S of the ratio values minus the whole number portion of the quotient of this sum S and the ratio value R(a), R(b) and R(c) respectively. In the last example the following hold good:
Ratio values R(a)=29 R(b)=60 R(c)=33
Sum ratio values S=122
If the above rule is used, the initial values of U(a,b,c) become:
U_{i} (a)=S(S DIV R(a))=122(122 DIV 29)=1224=118
U_{i} (b)=S(S DIV R(b))=122(122 DIV 60)=1222=120
U_{i} (c)=S(S DIV R(c))=122(122 DIV 33)=1223=119
The polling table calculation result then becomes (starting from the same queue values above):
______________________________________Queue names a b cQueue values Q(a) = 286 Q(b) = 598 Q(c) = 326Ratio factor R = 10Ratio values R(a) = 29 R(b) = 60 R(c) = 33Sum ratio values S = 122Correction values C(a) = 93 C(b) = 62 C(c) = 89P U(a) U(b) U(c) Selected queue (i)1 118 120* 119 bQueue values Q(a) = 286 Q(b) = 635 Q(c) = 326Ratio factor R = 10Ratio values R(a) = 29 R(b) = 64 R(c) = 33Sum ratio values S = 126Correction values C(a) = 97 C(b) = 62 C(c) = 93P U(a) U(b) U(c) Selected queue (i)2 147 58 152* cQueue values Q(a) = 234 Q(b) = 635 Q(c) = 326Ratio factor R = 10Ratio values R(a) = 23 R(b) = 64 R(c) = 33Sum ratio values S = 120Correction values C(a) = 97 C(b) = 56 C(c) = 87P U(a) U(b) U(c) Selected queue (i)3 176* 122 59 aQueue values Q(a) = 234 Q(b) = 635 Q(c) = 376Ratio factor R = 10Ratio values R(a) = 23 R(b) = 64 R(c) = 38Sum ratio values S = 125Correction values C(a) = 102 C(b) = 61 C(c) = 87P U(a) U(b) U(c) Selected queue (i)4 79 186* 92 bQueue values Q(a) = 198 Q(b) = 635 Q(c) = 376Ratio factor R = 10Ratio values R(a) = 20 R(b) = 64 R(c) = 38Sum ratio values S = 122Correction values C(a) = 102 C(b) = 58 C(c) = 84P U(a) U(b) U(c) Selected queue (i)5 102 125 130* c6 122 189* 46 b7 142* 131 84 a8 40 195* 122 bQueue values Q(a) = 255 Q(b) = 698 Q(c) = 467Ratio factor R = 10Ratio values R(a) = 26 R(b) = 70 R(c) = 47Sum ratio values S = 143Correction values C(a) = 117 C(b) = 73 C(c) = 96P U(a) U(b) U(c) Selected queue (i)9 60 137 160* c10 86 207* 64 bQueue values Q(a) = 287 Q(b) = 751 Q(c) = 501Ratio factor R = 10Ratio values R(a) = 29 R(b) = 75 R(c) = 50Sum ratio values S = 154Correction values C(a) = 125 C(b) = 79 C(c) = 104P U(a) U(b) U(c) Selected queue (i)11 112 134* 111 b12 141 55 161* cQueue values Q(a) = 302 Q(b) = 923 Q(c) = 578Ratio factor R = 10Ratio values R(a) = 30 R(b) = 92 R(c) = 58Sum ratio values S = 180Correction values C(a) = 150 C(b) = 88 C(c) = 122P U(a) U(b) U(c) Selected queue (i)13 170* 130 57 a14 20 222* 115 b15 50 134 173* c______________________________________
As may be seen, a change to the initial values affects only the result of the first three calculation cycles (P=1 . . . 3)
A comment such as that made with respect to the choice of the initial values of the urgency factors U(a,b,c) may also be made in relation to the choice of the ratio factor R. A ratio factor R=1 gives the most accurate result; the (measured) queue values are then also the ratio values to be used for the calculation. If, however, the queue values are extremely large and in particular if the nature of the polling table is static, and must therefore (during a period) be stored, for example, in a RAM (with limited buffer capacity), a reduced representation, represented by the ratio values of queue values must be made using a ratio factor >1. An additional problem here is that the maximum transmission speed may not be exceeded (if use is made of queue values which represent the supply of queue elements per time unit). The following is a good solution for the calculation of the ratio values. Assume the following queue values (supply of queue elements per time unit in kbit/sec): 70000, 19000, 18500, 22333, and 8000. The total band width required for this is 137833 kbit/sec. Assume that the maximum transmission band width is 140000 kbit/sec. An initial solution is to carry out an integer division of the remaining band width of 140000137833=2167 by the number of queues (5): 2167 DIV 5=433, and subsequently to divide the various queue growth values by that quotient: 70000 DIV 433=161; 19000 DIV 433=43; 18500 DIV 433=42; 22333 DIV 433=51 and 8000 DIV 433=18.
Preferably, these ratio values are then each incremented by 1, making use of almost the entire transmission capacity of 140000 kbit/sec; the ratio values therefore then become 162, 44, 43, 52 and 19. It should be pointed out that the ratio factor for different queues has a somewhat different value, namely in this case 70000/162=432, 19000/44=431, 18500/43=430, 22333/52=429 and 8000/19=421.
Another solution for the calculation of the optimal reduced representation of the queue values operates as follows. Step 1: add 1 to the odd queue values; these values then become 70000, 19000, 18500, 22333+1=22334 and 8000; the remaining band width now becomes 21671=2166. Step 2: divide the queue values and the remaining band width by 2 and add 1 to the resulting odd values; the new values then become 35000, 9500, 9250, 11167+1=11168, 4000; the new remainder is 1082 (2166/2=1083, from which 1 is subtracted to increase the value of 11167 by 1). Step 2 is repeated until the remaining band width is minimal, that is to say, if step 2 were repeated once more, then the remaining band width would become negative. In this case the following ratio values are the result of repeating step 2 8 times: 137, 38, 37, 44 and 16; the remaining band width is 1 (kbit/sec).
The above methods for calculating optimal ratio values from the queue values, which ratio values in turn then form the input for the calculation of the optimal polling sequence, achieve maximum use of the (total) band widththus maximising the transmission speed of the queue elementswithout exceeding that band width. In this way, the aspects discussed ensure that the queue elements from the various queues are read out (polled) in a regular sequence and sufficiently frequently, (that is to say so frequently that the queue does not overflow), and that transmission speed of these elements, eg. of ATM cells from subscribers in a passive optical subscriber network, is maximised, without however allowing the permissible transmission speed (bit rate) to be exceeded.
Claims (4)
Priority Applications (4)
Application Number  Priority Date  Filing Date  Title 

NL9201668A NL9201668A (en)  19920925  19920925  Method for converting a polling frequency table in a polling sequence table. 
NL9201668  19920925  
US12201693 true  19930915  19930915  
US08561551 US5623668A (en)  19920925  19951121  Method in a polling system for transmitting queue elements from multiple input queues to a single output with improved queue service performance 
Applications Claiming Priority (1)
Application Number  Priority Date  Filing Date  Title 

US08561551 US5623668A (en)  19920925  19951121  Method in a polling system for transmitting queue elements from multiple input queues to a single output with improved queue service performance 
Related Parent Applications (1)
Application Number  Title  Priority Date  Filing Date  

US12201693 Continuation  19930915  19930915 
Publications (1)
Publication Number  Publication Date 

US5623668A true US5623668A (en)  19970422 
Family
ID=19861308
Family Applications (1)
Application Number  Title  Priority Date  Filing Date 

US08561551 Expired  Lifetime US5623668A (en)  19920925  19951121  Method in a polling system for transmitting queue elements from multiple input queues to a single output with improved queue service performance 
Country Status (7)
Country  Link 

US (1)  US5623668A (en) 
EP (1)  EP0592027B1 (en) 
JP (1)  JP2668817B2 (en) 
DE (2)  DE69322583D1 (en) 
DK (1)  DK0592027T3 (en) 
ES (1)  ES2127242T3 (en) 
NL (1)  NL9201668A (en) 
Cited By (12)
Publication number  Priority date  Publication date  Assignee  Title 

US5870629A (en) *  19960321  19990209  Bay Networks, Inc.  System for servicing plurality of queues responsive to queue service policy on a service sequence ordered to provide uniform and minimal queue interservice times 
US5937205A (en) *  19951206  19990810  International Business Machines Corporation  Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue 
US5938749A (en) *  19960603  19990817  Whittaker Communications Inc.  Queue measurement apparatus and methodology 
US6124878A (en) *  19961220  20000926  Time Warner Cable, A Division Of Time Warner Enterainment Company, L.P.  Optimum bandwidth utilization in a shared cable system data channel 
US6317416B1 (en) *  19951011  20011113  Alcatel Canada Inc.  Fair queue servicing using dynamic weights (DWFQ) 
US20020039369A1 (en) *  20000930  20020404  Lg Electronics Inc.  Adaptive polling method for router 
US6546014B1 (en)  20010112  20030408  Alloptic, Inc.  Method and system for dynamic bandwidth allocation in an optical access network 
US6654374B1 (en) *  19981110  20031125  Extreme Networks  Method and apparatus to reduce Jitter in packet switched networks 
US20030227651A1 (en) *  20020610  20031211  Sharp Laboratories Of America, Inc.  Method to move queued data back to the network to make room in the device to complete other jobs 
US20040010551A1 (en) *  20020711  20040115  ChiaChu Dorland  Method and apparatus for automated network polling 
US6732209B1 (en) *  20000328  20040504  Juniper Networks, Inc.  Data rate division among a plurality of input queues 
US7006441B1 (en) *  19991216  20060228  At&T Corp.  Link state network having weighted control message processing 
Families Citing this family (3)
Publication number  Priority date  Publication date  Assignee  Title 

DE19542911A1 (en) *  19951117  19970522  Deutsche Telekom Ag  Procedures for issuing broadcast licenses 
FR2758681A1 (en)  19970122  19980724  Canon Kk  Allocation of an access permissions plurality of elements has a Shared Resource 
US7953047B2 (en)  20050124  20110531  Qualcomm Incorporated  Parser for multiple data streams in a communication system 
Citations (4)
Publication number  Priority date  Publication date  Assignee  Title 

US4543626A (en) *  19821206  19850924  Digital Equipment Corporation  Apparatus and method for controlling digital data processing system employing multiple processors 
US4933935A (en) *  19840713  19900612  British Telecommunications Plc  Communications systems 
US4972314A (en) *  19850520  19901120  Hughes Aircraft Company  Data flow signal processor method and apparatus 
US5048013A (en) *  19900406  19910910  At&T Bell Laboratories  Transmission congestion control method and apparatus 
Family Cites Families (4)
Publication number  Priority date  Publication date  Assignee  Title 

JPH0279536A (en) *  19880916  19900320  Nippon Telegr & Teleph Corp <Ntt>  Polling selecting device 
JP2724372B2 (en) *  19890612  19980309  オムロン株式会社  Polling control unit 
JPH0412054A (en) *  19900427  19920116  Kasei Optonix Co Ltd  Production of alumina ceramic 
JPH04172032A (en) *  19901106  19920619  Nec Corp  Polling control system 
Patent Citations (4)
Publication number  Priority date  Publication date  Assignee  Title 

US4543626A (en) *  19821206  19850924  Digital Equipment Corporation  Apparatus and method for controlling digital data processing system employing multiple processors 
US4933935A (en) *  19840713  19900612  British Telecommunications Plc  Communications systems 
US4972314A (en) *  19850520  19901120  Hughes Aircraft Company  Data flow signal processor method and apparatus 
US5048013A (en) *  19900406  19910910  At&T Bell Laboratories  Transmission congestion control method and apparatus 
NonPatent Citations (4)
Title 

Gagan L. Choudhury, "Polling With A General Service Order Table: Gated Service", IEEE Infocom '90: The Conference on Computer Communications, Jun. 1990, pp. 268276. 
Gagan L. Choudhury, Polling With A General Service Order Table: Gated Service , IEEE Infocom 90: The Conference on Computer Communications, Jun. 1990, pp. 268 276. * 
Karlsson et al., "Adaptive polling schemes for an ATM bus with bursty arrivals", Computer Networks and ISDN Systems, vol. 24, Mar. 1992, pp. 93103. 
Karlsson et al., Adaptive polling schemes for an ATM bus with bursty arrivals , Computer Networks and ISDN Systems, vol. 24, Mar. 1992, pp. 93 103. * 
Cited By (20)
Publication number  Priority date  Publication date  Assignee  Title 

US20020044529A1 (en) *  19951011  20020418  Natalie Giroux  Fair queue servicing using dynamic weights (DWFQ) 
US6317416B1 (en) *  19951011  20011113  Alcatel Canada Inc.  Fair queue servicing using dynamic weights (DWFQ) 
US7023866B2 (en) *  19951011  20060404  Alcatel Canada Inc.  Fair queue servicing using dynamic weights (DWFQ) 
US5937205A (en) *  19951206  19990810  International Business Machines Corporation  Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue 
US5870629A (en) *  19960321  19990209  Bay Networks, Inc.  System for servicing plurality of queues responsive to queue service policy on a service sequence ordered to provide uniform and minimal queue interservice times 
US5938749A (en) *  19960603  19990817  Whittaker Communications Inc.  Queue measurement apparatus and methodology 
US6124878A (en) *  19961220  20000926  Time Warner Cable, A Division Of Time Warner Enterainment Company, L.P.  Optimum bandwidth utilization in a shared cable system data channel 
US6654374B1 (en) *  19981110  20031125  Extreme Networks  Method and apparatus to reduce Jitter in packet switched networks 
US7006441B1 (en) *  19991216  20060228  At&T Corp.  Link state network having weighted control message processing 
US7548514B1 (en) *  19991216  20090616  At&T Corp  Link state network having weighted control message processing 
US6732209B1 (en) *  20000328  20040504  Juniper Networks, Inc.  Data rate division among a plurality of input queues 
US20020039369A1 (en) *  20000930  20020404  Lg Electronics Inc.  Adaptive polling method for router 
US6996119B2 (en) *  20000930  20060207  Lg Electronics Inc.  Adaptive polling method for router 
EP1371189A4 (en) *  20010112  20050817  Alloptic Inc  Method and system for dynamic bandwidth allocation in an optical access network 
US6546014B1 (en)  20010112  20030408  Alloptic, Inc.  Method and system for dynamic bandwidth allocation in an optical access network 
EP1371189A2 (en) *  20010112  20031217  Alloptic, Inc.  Method and system for dynamic bandwidth allocation in an optical access network 
US20030227651A1 (en) *  20020610  20031211  Sharp Laboratories Of America, Inc.  Method to move queued data back to the network to make room in the device to complete other jobs 
US7019863B2 (en)  20020610  20060328  Sharp Laboratories Of America, Inc.  Method to move queued data back to the network to make room in the device to complete other jobs 
US20040010551A1 (en) *  20020711  20040115  ChiaChu Dorland  Method and apparatus for automated network polling 
US7047531B2 (en) *  20020711  20060516  HewlettPackard Development Company, L.P.  Method and apparatus for automated network polling 
Also Published As
Publication number  Publication date  Type 

DE69322583D1 (en)  19990128  grant 
DK0592027T3 (en)  19990823  grant 
ES2127242T3 (en)  19990416  grant 
JPH06268660A (en)  19940922  application 
JP2668817B2 (en)  19971027  grant 
NL9201668A (en)  19940418  application 
EP0592027A1 (en)  19940413  application 
DK592027T3 (en)  grant  
EP0592027B1 (en)  19981216  grant 
DE69322583T2 (en)  19990610  grant 
Similar Documents
Publication  Publication Date  Title 

Chung et al.  Computing approximate blocking probabilities for large loss networks with statedependent routing  
Kelly et al.  Rate control for communication networks: shadow prices, proportional fairness and stability  
US5467348A (en)  Bandwidth allocation system of virtual path in asynchronous transfer mode  
Stiliadis et al.  Efficient fair queueing algorithms for packetswitched networks  
US6452933B1 (en)  Fair queuing system with adaptive bandwidth redistribution  
Zhang et al.  Providing endtoend statistical performance guarantees with bounding interval dependent stochastic models  
Charny et al.  Congestion control with explicit rate indication  
US6438134B1 (en)  Twocomponent bandwidth scheduler having application in multiclass digital communications systems  
US4556972A (en)  Arrangement for routing data packets through a circuit switch  
Zhang  Service disciplines for guaranteed performance service in packetswitching networks  
Imer et al.  Available bit rate congestion control in ATM networks: developing explicit rate control algorithms  
Zhang et al.  Ratecontrolled service disciplines  
US6526062B1 (en)  System and method for scheduling and rescheduling the transmission of cell objects of different traffic types  
US6408005B1 (en)  Dynamic rate control scheduler for ATM networks  
US6477144B1 (en)  Time linked scheduling of cellbased traffic  
US6947996B2 (en)  Method and system for traffic control  
US5771234A (en)  Method and system for ATM cell multiplexing under constant bit rate, variable bit rate and besteffort traffic  
Guerin et al.  Equivalent capacity and its application to bandwidth allocation in highspeed networks  
Turner  Queueing analysis of buffered switching networks  
US5517495A (en)  Fair prioritized scheduling in an inputbuffered switch  
Labourdette et al.  Blocking probabilities in multitraffic loss systems: insensitivity, asymptotic behavior, and approximations  
Bruneel et al.  Discretetime models for communication systems including ATM  
US20010026535A1 (en)  Method and apparatus for packet scheduling in network  
US5818839A (en)  Timing reference for scheduling data traffic on multiple ports  
US5757771A (en)  Queue management to serve variable and constant bit rate traffic at multiple quality of service levels in a ATM switch 
Legal Events
Date  Code  Title  Description 

FPAY  Fee payment 
Year of fee payment: 4 

FPAY  Fee payment 
Year of fee payment: 8 

FPAY  Fee payment 
Year of fee payment: 12 