Claims
- 1. A method of allocating bandwidth for use at a packet switch having a plurality of inputs for switching to specified outputs and a plurality of corresponding input buffers having input-output queues and associated counters, said method comprising the steps of:
dividing time into a plurality of frames of time slots, each frame having a specified integer value of time slots; loading said counters associated with said input-output queues to said negotiated integer value once per said frame; said inputs sequentially selecting available said outputs to which said inputs send packets in specified future time slots, wherein priority is given to input-output queues with said counters having positive values; said selection of outputs by said inputs being done using a pipeline technique, wherein a schedule is calculated within multiple time slots, wherein schedules for multiple future time slots being calculated in each time slot; and decrementing said counters of selected queues by 1.
- 2. A method of allocating bandwidth in a circuit switch having a plurality of inputs for switching to outputs, input tables and input-output counters, said method comprising the steps of:
dividing time into a plurality of (data) frames comprising (data) time slots, and reservation frames comprising reservation time slots, each frame having a specified number of time slots; loading said counters to the difference between the current total number of negotiated credits and the total number of released credits in the previous said reservation frame; said inputs sequentially releasing the time slot reservations for outputs if their corresponding counters are negative; said inputs sequentially reserving time slots for unreserved outputs if their corresponding counters are positive; whenever said input releases an output, the corresponding counter is incremented by 1, and whenever said input releases reserves an output the corresponding counter is decremented by 1; said input tables being updated after all inputs have had a chance to release and reserve outputs for future time slots, storing outputs reserved in each time slot of a frame, and outputs reserved by the corresponding input in each time slot of a frame; and said release, reservation of time slots and table update of outputs by said inputs being done using a pipeline technique, wherein a schedule is calculated within multiple reservation time slots, and schedules for multiple future time slots are calculated in each reservation time slot.
- 3. The method of claim 1, comprising a pipeline technique where input i, i=0,1, . . . , N−1 chooses output for time slot k in time slot k−┌(N−i)/p┐ where p is the number of selections made in one time slot, and ┌x┐ is the smallest integer greater or equal to x.
- 4. The method of claim 1, comprising a pipeline technique where input i, i=0,1, . . . , N−1, chooses an output from group of outputs l,l=0,1 . . . ,p−1, for time slot k in time slot k+((N−i)*p−l) where p is the number of time slots required for one selection.
- 5. The method of claim 2, comprising a pipeline technique where input i releases output for time slot k+mF, m=1,2, . . . in time slot ┌k−(2N−i)/p┐, and input i chooses output for time slot k+mF, m=1,2, . . . in time slot ┌k−(N−i)/p┐, where p is the integer ratio of the time slot duration and the reservation time slot duration, and ┌x┐ is the smallest integer greater or equal to x.
- 6. The method of claim 2, comprising a pipeline technique where input i, i=0,1, . . . ,N−1 releases an output from group of outputs l,l=0,1, . . . , p−1, for time slot k+mF, m=1,2, . . . in time slot k−((N−i)*p−l), and input i chooses an output from group of outputs I for time slot k+mF, m=1,2, . . . in time slot k+((N−i)*p−l) where p is the ratio of the durations of the reservation time slot and (data) time slot.
- 7. The method of claim 2, comprising a pipeline technique wherein input table i is finally updated N reservation time slots after it reserved the output.
- 8. The method of claims 3 and 5, wherein input i loads its counters in time slot k*F+1−┌(N−i)/p┐.
- 9. The method of claims 4 and 6, wherein input i loads its counters for group of outputs l in time slot k*F+1−((N−i)*p−l).
- 10. The method of claim 2, comprising a pipeline technique where input i releases output for time slot k+nF+mpF, k<F, m, n=1,2, . . . in reservation time slot (m−1)F+k−(2N−i), and input i chooses output for time slot k+nF+mpF, m, n=1,2, . . . in reservation time slot (m−1)F+k−(N−i) where p is the integer ratio of the reservation time slot duration and the time slot duration.
- 11. The method of claim 10, wherein input i loads its counters in reservation time slot (m−1)F+1−(2N−i).
- 12. The method of claim 1 further comprising the step of negotiating values of time slots per frame associated with input-output pairs, wherein input-output pair (i,j) can be allocated additional Δαij time slots per frame of length F if it holds that:
- 13. The method of claim 1 further comprising the step of negotiating values of time slots per frame associated with input-output pairs, wherein input-output pair (ij) can be allocated additional Δαij time slots per frame of length F if it holds that:
- 14. The method of claim 2 further comprising the step of updating the number of credits per frame assigned to input-output pair, when its bandwidth request is accepted, or when it releases previously reserved bandwidth:
- 15. The method of claims 12 and 13 wherein steps 3 and 4 of bandwidth allocation method 1 are replaced with any maximal matching algorithm, wherein maximal matching algorithm is the one in which either input will transmit packet or receiver will receive packet in some time slot if there is at least one packet from said input to the said output.
- 16. The methods of claims 12 and 13 wherein steps 3 and 4 of method 1 are replaced with the previously proposed parallel iterative matching algorithm (PIM) which is maximal matching algorithm defined in claim 15.
- 17. The method of claim 3 wherein applied to the bandwidth allocation in wide area network, wherein switches in wide area network advertise to other switches reserved bandwidth on all its input and output links:
- 18. The method of claim 1 implemented for short packet transmission time T wherein new bandwidth can be allocated fast by using methods 12 and 13 within FT even for long frames lengths F, wherein one time slot per frame guarantees bandwidth of B/F by using methods 12 or 13, where B is the line bit-rate and minimum guaranteed bandwidth can be made low by increasing F.
- 19. An apparatus for allocating bandwidth for use at a packet switch having a plurality of inputs for switching to specified outputs and a plurality of corresponding input buffers having input-output queues, said buffers being coupled to said input-output and having associated counters, said method comprising the steps of:
time division means for dividing time into a plurality of frames of time slots, each frame having a negotiated integer value of time slots; loading means for loading said counters associated with said input-output queues to said negotiated integer value once per said frame; wherein said inputs sequentially selecting available said outputs to which said inputs send packets in specified future time slots, wherein priority is given to input-output queues with positive counters; and wherein selection of outputs by said inputs is done using a pipeline technique, and wherein not all inputs select outputs for a specified time slot in the future while other inputs choose outputs for some other future time slots.
- 20. The apparatus of claim 19 further including means for negotiating values of time slots per frame associated with input-output pairs, wherein input-output pair (ij) can be allocated additional Δαij time slots per frame of length F if it holds that:
- 21. The apparatus of claim 20 further including negotiating means for negotiating values of time slots per frame associated with input-output pairs, wherein input-output pair (i,j) can be allocated additional Δαij time slots per frame of length F if it holds that:
REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims priority to Provisional Patent Applications Nos. 60/211,474 filed Jun. 15, 2000; 60/213,250 file Jun. 22, 2000 and 60/260,526 filed Jan. 10, 2001.
Provisional Applications (3)
|
Number |
Date |
Country |
|
60211474 |
Jun 2000 |
US |
|
60213250 |
Jun 2000 |
US |
|
60260526 |
Jan 2001 |
US |