Method of regulating a flow of data in a communication system and apparatus therefor
First Claim
1. A method of regulating a flow of data in a communication system, said method comprising:
- a) establishing a source data rate greater than zero in a data source;
b) establishing a sink data rate greater than zero in a data sink;
c) transmitting said data at said source data rate by said data source;
d) writing said data into a buffer at said source data rate, wherein said writing activity d) increases a level of said data within said buffer;
e) reading said data from said buffer at said sink data rate, wherein said reading activity e) decreases said buffer data level;
f) receiving said data at said sink data rate by said data sink;
g) monitoring a fill rate of said buffer and said buffer data level, wherein said fill rate is a difference of said source data rate less said sink data rate; and
h) dispatching a rate-control signal to adjust said source data rate when said monitoring determines one of said fill rate is negative and said buffer data level is less than or equal to a lower data-level threshold and said fill rate is positive and said buffer data level is greater than or equal to an upper data-level threshold.
3 Assignments
0 Petitions
Accused Products
Abstract
A flow of data (26) is regulated in a communication system (20). A data rate is established in each of a data source (24) and a data sink (28). The data (26) is transmitted by the data source (24) and written into a buffer (32) at the source data rate, then read from the buffer (32) and received by the data sink (28) at the sink data rate. The level (62) of data (26) in the buffer (32) is monitored, and a rate-control signal (74) is dispatched to either the data source (24) or sink (28) when it is determined the buffer data level (62) is decreasing or increasing while at a lower or upper data-level threshold (66, 68), respectively. One of the data rates is adjusted in response to a rate-control signal (74).
-
Citations
21 Claims
-
1. A method of regulating a flow of data in a communication system, said method comprising:
-
a) establishing a source data rate greater than zero in a data source;
b) establishing a sink data rate greater than zero in a data sink;
c) transmitting said data at said source data rate by said data source;
d) writing said data into a buffer at said source data rate, wherein said writing activity d) increases a level of said data within said buffer;
e) reading said data from said buffer at said sink data rate, wherein said reading activity e) decreases said buffer data level;
f) receiving said data at said sink data rate by said data sink;
g) monitoring a fill rate of said buffer and said buffer data level, wherein said fill rate is a difference of said source data rate less said sink data rate; and
h) dispatching a rate-control signal to adjust said source data rate when said monitoring determines one of said fill rate is negative and said buffer data level is less than or equal to a lower data-level threshold and said fill rate is positive and said buffer data level is greater than or equal to an upper data-level threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
dispatching said rate control signal to adjust said sink data rate, when said monitoring determines one of said said fill rate is negative and said buffer data level is less than or equal to said lower data-level threshold and said buffer fill rate is positive and said buffer data level is greater than or equal to an upper data level threshold. -
3. A data-flow regulation method as claimed in claim 2 wherein:
-
said establishing activity a) initially establishes said source data rate substantially equal to a predetermined data rate; and
said establishing activity b) initially establishes said sink data rate substantially equal to said predetermined data rate.
-
-
4. A data-flow regulation method as claimed in claim 3 wherein:
said dispatching said rate control signal to adjust said source data rate is configured to adjust said source data rate to within fifty percent of said predetermined data rate.
-
5. A data-flow regulation method as claimed in claim 2, wherein, when said monitoring determines said fill rate is negative and said buffer data level is less than or equal to said lower data-level threshold, one of said dispatching said rate control signal to adjust said source data rate and dispatching said rate control signal to adjust said sink data rate adjusts one of said source and sink data rates so that said source data rate is greater tan said sink data rate.
-
6. A data-flow regulation method as claimed in claim 2, wherein, when said monitoring determines said fill rate is positive and said buffer data level is greater than or equal to said upper data-level threshold, one of said dispatching said rate control signal to adjust said source data rate and dispatching said rate control signal to adjust said sink data rate adjusts said one of source and sink data rates so that said sink data rate is greater than said source data rate.
-
7. A data-flow regulation method as claimed in claim 2 wherein:
-
said lower data-level threshold is a first lower data-level threshold;
said upper data-level threshold is a first upper data-level threshold;
said buffer has a second lower data-level threshold between said first lower data-level threshold and said first upper data-level threshold;
said buffer has a second upper data-level threshold between said second lower data-level threshold and said first upper data-level threshold;
said rate-control signal containing a first rate-change request when said monitoring determines that said fill rate is negative and said buffer data level is less than or equal to said second lower data-level threshold and said fill rate is positive and said buffer data level is greater than or equal to said second upper data-level thresholds;
said rate-control signal containing a second rate-control change request when said monitoring determines that said fill rate is negative and said buffer data level is less than or equal to said first lower data-level threshold and said fill rate is positive and said buffer data level is greater than or equal to said second upper data-level thresholds;
said source and sink data rates configured for adjustment by a first amount when said rate-control signal contains said first rate-change request and by a second amount when said rate-control signal contains said second rate-change request wherein said second amount is greater than said first amount.
-
-
8. A data-flow regulation method as claimed in claim 1 wherein:
-
said transmitting activity c) substantially continuously transmits said data; and
said receiving activity f) substantially continuously receives said data.
-
-
9. A data-flow regulation method as claimed in claim 8 wherein:
-
said writing activity d) substantially continuously writes said data into said buffer; and
said reading activity e) substantially continuously reads said data from said buffer.
-
-
10. A data-flow regulation method as claimed in claim 1 wherein said reading activity e) is delayed until said buffer data level reaches an initial data-level threshold, said initial data-level threshold lying between said lower and upper data-level thresholds.
-
11. A data-flow regulation method as claimed in claim 1 wherein:
-
said transmitting activity c) transmits said data as discrete packets of said data having an average source data rate substantially equal to said source data rate; and
said receiving activity f) receives said data as a substantially continuous stream of said data at said sink data rate.
-
-
12. A data-flow regulation method as claimed in claim 1 wherein:
-
said transmitting activity c) transmits said data as a substantially continuous stream of said data at said source data rate; and
said receiving activity f) receives said data as discrete packets of said data having an average sink data rate substantially equal to said sink data rate.
-
-
13. A data-flow regulation method as claimed in claim 1 wherein said reading activity e) is delayed a timed amount such that said buffer data level reaches an initial data-level threshold, said initial data-level threshold lying between said lower and upper data-level thresholds.
-
-
14. An apparatus for regulating a flow of data between portions of a communication system, said apparatus comprising:
-
a first controller-readable portion configured as a buffer;
a second controller-readable memory portion configured to contain a control program;
a data source configured to transmit said data at a source data rate greater than zero;
an input function coupled between said data source and said first memory portion, configured to receive said data from said data source at said source data rate, and configured to add to a level of said data within said buff by writing said data to said buffer at said source data rate;
an output function coupled between said first memory portion and said data sink, configured to subtract from said buffer data level by reading said data from said buffer at a sink data rate greater than zero, and configured to transmit said data to said data sink;
a data sink configured to receive said data at said sink data rate; and
a controller coupled to said first and second memory portions, coupled to said input and output functions, and configured to;
monitor a fill rate of said buffer and said buffer data level in response to said control program, said fill rate being a difference of said source data rate less said sink data rate; and
dispatch a rate-control signal to adjust said source data rate when said monitoring determines one of said fill rate is negative and said buffer data level is less than or equal to a lower data-level threshold and said fill rate is positive and said buffer data level is greater than or equal to an upper data-level threshold. - View Dependent Claims (15, 16, 17, 18, 19, 20)
said controller is further configured to dispatche said rate-control signal to adjust said sink data rate when one of said fill rate is negative and said buffer data level is less than or equal to a lower data-level threshold and said fill rate is positive and said buffer data level is greater than or equal to an upper data-level threshold. -
16. A data-flow regulation apparatus as claimed in claim 15 wherein:
-
when said controller determines said fill rate is negative and said buffer data level is less than or equal to said lower data-level threshold, said controller is configured to dispatch said rate-control signal to adjusts said source data rate so that said source data rate is greater than said sink data rate;
when said controller determines said fill rate is positive and said buffer data level is greater than or equal to said upper data-level threshold, said controller is configured to dispatch said rate-control signal to adjusts said source data rate so that said source data rate is less than said sink data rate.
-
-
17. A data-flow regulation apparatus as claimed in claim 16 wherein:
-
when said controller determines said fill rate is negative and said buffer data level is less than or equal to a lower inner data-level threshold between said lower data-level threshold and said upper data-level threshold, said controller is configured to dispatch said rate-control signal to adjusts source data rate so as to add a positive component to said fill rate;
when said controller determines said buffer fill rate is positive and said buffer data level is greater than or equal to an upper inner data-level threshold between said lower inner data-level threshold and said upper data-level threshold, said controller is configured to dispatch said rate-control signal to adjusts said source data rate so that a negative component is added to said fill rate.
-
-
18. A data-flow regulation apparatus as claimed in claim 14 wherein:
-
said data-source initially establishes said source data rate substantially equal to a predetermined data rate; and
said data-sink initially establishes said sin data rate substantially equal to said predetermined data rate.
-
-
19. A data-flow regulation apparatus as claimed in claim 14 wherein:
-
said data source substantially continuously transmits said data;
said input function substantially continuously receives said data from said data source and substantially continuously writes said data to said buffer;
said output function substantially continuously reads said data from said buffer and substantially continuously receives said data; and
one of said data source and said data sink repetitively adjusts one of said source data rate and said sink data rate, respectively, in response to said controller so as to substantially maintain said buffer data level between said lower and, upper data-level thresholds.
-
-
20. A data-flow regulation apparatus as claimed in claim 14 wherein one of said first and second memory portions shares a common address space with one of said data source and said data sink.
-
-
21. A method of regulating flow of data in a communication system, said method comprising:
-
establishing, in a data source, a source data rate substantially equal to a predetermined data rate greater than zero;
establishing, in a data sink, a sink data rate substantially equal to said predetermined data rate;
adjusting said source data rate in response to a rate-control signal, wherein, when said source data rate is less than said sink data rate and a level of said data within a buffer is less than or equal to a lower data-level threshold of said buffer, said adjusting activity adjusts said source data rate to be greater than said sink data rate, and wherein, when said source data rate is greater than said sink data rate and said buffer data level is greater than or equal to an upper data-level threshold of said buffer, said adjusting activity adjusts said source data rate to be less than said sink data rate;
transmitting said data at said source data rate by said data source;
writing said data into said buffer at said source data rate, wherein said writing activity increases said buffer data level;
reading said data from said buffer at said sink data rate, wherein said reading activity decreases said buffer data level;
receiving said data at said sink data rate by said data sink;
monitoring said buffer data level; and
dispatching, when said monitoring activity determines that said buffer data level is one of decreasing and increasing while at less than or equal to said lower data-level threshold and greater than or equal to said upper data-level thresholds, respectively, said rate-control signal to said data source.
-
Specification