Claims
- 1. A priority scheme for assigning priority to a port assigned to a channel unit in a channel bank, the channel bank communicating packetized data over a communications link, the priority scheme comprising:
- a first bucket having a first water level tracking an amount of preallocated bandwidth unused by the port;
- a second bucket having a second water level tracking an amount of preallocated bandwidth for the port exceeding an overflow level for the first bucket; and
- the priority scheme using the water level of the first bucket to assign priority values in a first high priority band to the port and using the water level of the second bucket to assign priority values in a second low priority band to the port, wherein the first bucket includes a zero midpoint value, the priority value from the high priority band used when the water level of the first bucket is above zero and the priority value from the low priority band used when the water level of the first bucket is below or equal to zero.
- 2. A priority scheme according to claim 1 wherein bandwidth usage on the port reduces the water level of the first bucket when the priority values of the traffic delivered is greater than a midpoint of a total priority range and reduces the water level of the second bucket when the priority of the traffic delivered is less than or equal to the midpoint of the total priority range.
- 3. A priority scheme according to claim 1 wherein the priority value in the high priority band is determined by tracking a percentage of allocated bandwidth used by the port for a predetermined time period, bandwidth utilization over the time period continuously updated by adding any bandwidth utilization occurring during a most recent time increment to a sum and subtracting any bandwidth utilization occurring in a last time increment in the time period from the sum.
- 4. A priority according to claim 3 including using the priority value as an index into an array of discrete priority values where contents of the array provide a final priority value.
- 5. A method for assigning priority to users for communicating over a communications link, the priority scheme comprising:
- tracking a first bandwidth level associated with an amount of unused bandwidth allotted to the users;
- tracking a second bandwidth level tracking an amount the first bandwidth level exceeds an overflow level;
- reducing the first bandwidth level according to bandwidth usage when current priority is greater than a given priority value in a priority value range;
- reducing the second bandwidth level according to bandwidth usage when current priority is less than or equal to a given priority value in the total priority value range;
- assigning a priority value according to the first bandwidth level when the first bandwidth level is above zero; and
- assigning the next priority value according to the second bandwidth level when the first bandwidth level is below or equal to zero.
- 6. A method according to claim 5 wherein the next priority value is determined when the first bandwidth level is above zero as follows:
- tracking a percentage utilization of allocated bandwidth for a running sum of time increments comprising a time period, the running sum continuously modified by adding any bandwidth utilization occurring during a new time increment in the time period to the running sum and subtracting any bandwidth utilization occurring during a last time increment in the time period in the running sum; and
- segmenting the running sum into a given number of priority levels.
- 7. A method according to claim 5 wherein the given priority value is the midpoint of the total priority value range.
- 8. An apparatus for communicating packetized data over a communications link using a channel bank having a time division multiplexing addressing scheme, the communications link including a framing bit and a frame period defined by the framing bit, the apparatus comprises:
- a plurality of channel units for generating packetized data, each piece of packetized data having a packet period corresponding to a sufficient amount of time to communicate the packetized data over the communications link;
- a contention system allocating the communication link to a channel unit that is currently sending data over the communications link for the packet period;
- skipping the framing bit when communicating said packetized data if the framing bit occurs during the packet period;
- allocating the communications link to the channel unit that is a next sender of packetized data after said packet period so that the time division multiplexing addressing scheme of the channel bank is ignored, and the channel bank is communicating packetized data; and
- a priority system determining priority for ports on the channel units for sending packetized data over the communications link according to an amount or a percentage of preallocated bandwidth previously used by the ports.
- 9. The apparatus of claim 8 wherein the priority system includes the following:
- a first bucket having a first water level that tracks an amount of allocated bandwidth unused by the ports on the channel units;
- a second bucket having a second water level that tracks an amount of allocated bandwidth for the ports exceeding an overflow level for the first bucket;
- the priority system using the first water level to assign priority values in a first high priority band to the ports on the channel units using bandwidth below a given bandwidth credit value and using the second water level to assign priority values in a second low priority band to the ports using bandwidth above the bandwidth credit value.
- 10. A method for communicating packetized data over a communications link having a framing bit and a frame period defined by the framing bit, the method comprising:
- generating packetized data by a plurality of channel units, each piece of packetized data having a packet period;
- allocating the communication link to a channel unit that is currently sending data over the communications link for the packet period;
- skipping the framing bit when communicating said packetized data if the framing bit occurs during the packet period;
- determining a priority for ports on the channel units sending data over the communications link according to a leaky bucket priority scheme that determines an amount of allocated bandwidth unused by the ports over a predetermined period of time; and
- allocating the communications link to the channel unit that is the next sender of packetized data after said packet period so that the time division multiplexing scheme of the channel bank is ignored and the channel bank is communicating packetized data.
- 11. The method of claim 10 wherein determining the priority comprises the following:
- tracking a running sum of the percentage of delivered bandwidth for the ports over a predetermined number of time increments comprising a predetermined measurement time period;
- modifying the running sum every new time increment by adding any bandwidth utilization occurring during the new time increment in the running sum and subtracting any bandwidth utilization occurring during a last time increment in the running sum; and
- segmenting the running sum into a given number of priority levels.
- 12. A method for communicating packetized data over a communications link using a channel bank having a plurality of channel units generating packetized data, the method comprising:
- generating priority values for communication links coupled to the channels units, the priority values corresponding to a percentage of allocated bandwidth previously used by the communication links;
- generating a next sender signal for each channel unit indicating the channel unit that is the next sender of packetized data according to the priority signals for each channel unit;
- generating a slot signal indicating a slot address of a channel unit within said channel bank; and
- comparing contention signals from each channel unit to the corresponding contention signals from every other channel unit to determine a next sender of packetized data.
- 13. A method for communicating packetized data over a communications link using a channel bank having a plurality of channel units generating packetized data, the method comprising:
- generating priority values for communication links coupled to the channels units, the priority values corresponding to an amount of allocated bandwidth previously unused by the communication links;
- generating a next sender signal for each channel unit indicating the channel unit that is the next sender of packetized data according to the priority signals for each channel unit;
- generating a slot signal indicating a slot address of a channel unit within said channel bank; and
- comparing contention signals from each channel unit to the corresponding contention signals from every other channel unit to determine a next sender of packetized data.
- 14. A method according to claim 12 wherein the priority scheme for assigning priority to the communication links comprises the following:
- a first bucket having a first water level tracking an amount of preallocated bandwidth unused by the communication links;
- a second bucket having a second water level tracking an amount of preallocated bandwidth for the communication links exceeding an overflow level for the first bucket; and
- the priority scheme using the water level of the first bucket to assign priority values in a first high priority band to the communication links and using the water level of the second bucket to assign priority values in a second low priority band to the communication links.
- 15. A method according to claim 13 wherein the priority values are derived by a mapping function that takes a bit representation of the water level and determines the bit position of the most significant set bit in that representation, the bit position then used as an index into an array of discrete priority values and contents of the array provide the actual priority values delivered to the hardware.
- 16. A method according to claim 13 wherein the priority values are determined by tracking a percentage of allocated bandwidth used by the communication links for a predetermined time period, bandwidth utilization over the time period continuously updated by adding any bandwidth utilization occurring during a most recent time increment to a sum and subtracting any bandwidth utilization occurring in a last time increment in the time period from the sum.
Parent Case Info
This application is a continuation of application Ser. No. 09/063,340 filed Apr. 20, 1998, and a continuation-in-part of Ser. No. 08/735,478 filed Oct. 23, 1996, which is now U.S. Pat. No. 5,805,595.
US Referenced Citations (6)
Number |
Name |
Date |
Kind |
4644532 |
George et al. |
Feb 1987 |
|
5014265 |
Hahne et al. |
May 1991 |
|
5274641 |
Shobatake et al. |
Dec 1993 |
|
5412647 |
Giroux et al. |
May 1995 |
|
5426640 |
Hluchyj et al. |
Jun 1995 |
|
5805595 |
Sharper et al. |
Sep 1998 |
|
Non-Patent Literature Citations (1)
Entry |
Integrated Services Digital Network (ISDN)--Architecture Framework and Service Description for Frame-Relaying Bearer Service--Addendum #1, written by American National Standard for Telecommunications, pp. 1-11. |
Related Publications (1)
|
Number |
Date |
Country |
|
735478 |
Oct 1996 |
|
Continuations (1)
|
Number |
Date |
Country |
Parent |
063340 |
Apr 1998 |
|