U.S. patent application number 12/568408 was filed with the patent office on 2010-01-28 for system and method for combining requests for data bandwith by a data source for transmission of data over a communication medium.
This patent application is currently assigned to Broadcom Corporation. Invention is credited to Ajay Chandra V. GUMMALLA, Dolors Sala.
Application Number | 20100020683 12/568408 |
Document ID | / |
Family ID | 27558721 |
Filed Date | 2010-01-28 |
United States Patent
Application |
20100020683 |
Kind Code |
A1 |
GUMMALLA; Ajay Chandra V. ;
et al. |
January 28, 2010 |
System and Method for Combining Requests for Data Bandwith by a
Data Source for Transmission of Data Over a Communication
Medium
Abstract
A method and system for combining requests for data bandwidth by
a data source for transmission of data over a communication medium
is provided. A central node receives one or more bandwidths
requests from one or more data sources via wireless communication.
A scheduler then combines one or more bandwidths requests from the
same data source to create a single data burst bandwidth. The
central node then grants the data burst bandwidth to the
appropriate data source via a communications medium.
Inventors: |
GUMMALLA; Ajay Chandra V.;
(Atlanta, GA) ; Sala; Dolors; (Atlanta,
GA) |
Correspondence
Address: |
STERNE, KESSLER, GOLDSTEIN & FOX P.L.L.C.
1100 NEW YORK AVENUE, N.W.
WASHINGTON
DC
20005
US
|
Assignee: |
Broadcom Corporation
Irvine
CA
|
Family ID: |
27558721 |
Appl. No.: |
12/568408 |
Filed: |
September 28, 2009 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11296485 |
Dec 8, 2005 |
|
|
|
12568408 |
|
|
|
|
09783311 |
Feb 15, 2001 |
6999414 |
|
|
11296485 |
|
|
|
|
09427792 |
Oct 27, 1999 |
6804251 |
|
|
09783311 |
|
|
|
|
60182470 |
Feb 15, 2000 |
|
|
|
60247188 |
Nov 9, 2000 |
|
|
|
60254415 |
Dec 8, 2000 |
|
|
|
60262201 |
Jan 17, 2001 |
|
|
|
60262203 |
Jan 17, 2001 |
|
|
|
Current U.S.
Class: |
370/230 |
Current CPC
Class: |
H04L 47/827 20130101;
H04L 12/6418 20130101; H04L 41/5087 20130101; H04N 21/4788
20130101; H04L 47/2416 20130101; H04N 21/2385 20130101; H04N
21/6168 20130101; H04L 41/509 20130101; H04L 29/06 20130101; H04L
47/824 20130101; H04L 12/2801 20130101; H04N 21/437 20130101; H04M
7/006 20130101; H04L 12/2876 20130101; H04N 7/173 20130101; H04N
7/17309 20130101; H04N 21/42676 20130101; H04L 47/6215 20130101;
H04L 47/2433 20130101; H04W 28/20 20130101; H04L 41/5003 20130101;
H04L 47/50 20130101; H04L 29/06027 20130101; H04N 21/64707
20130101; H04L 47/15 20130101; H04L 47/788 20130101; H04L 41/0896
20130101; H04N 21/44209 20130101; H04N 21/6118 20130101; H04L 65/80
20130101; H04L 47/805 20130101; H04N 21/4396 20130101; H04L 47/35
20130101; H04L 47/521 20130101; H04L 41/5022 20130101; H04L 47/70
20130101; H04N 21/6377 20130101; H04L 12/2856 20130101; H04L
12/2861 20130101; H04L 2012/6481 20130101; H04L 2012/6494
20130101 |
Class at
Publication: |
370/230 |
International
Class: |
H04L 12/24 20060101
H04L012/24 |
Claims
1. A method for combining requests for bandwidth for transmission
of data over a communication medium, comprising: receiving
bandwidth requests from one or more data sources, wherein each
bandwidth request includes a data source identifier, an amount of
required bandwidth, and a priority identifier that identifies a
type of data to be transmitted; combining the amount of required
bandwidth specified by each of the bandwidth requests from the same
associated data source to form a data burst bandwidth; and granting
the data burst bandwidth to the associated data source.
2. The method of claim 1, further comprising: scheduling each
bandwidth request in an order to be serviced based on the priority
identifier associated with each bandwidth request and an order in
which each bandwidth request was received.
3. The method of claim 1, wherein the combining includes combining,
by data source identifier and priority identifier, the amount of
required bandwidth to form the data burst bandwidth; and wherein
the granting includes scheduling the granting of each data burst
bandwidth based on quality of service parameters.
4. The method of claim 3, wherein the quality of service parameters
include at least one of efficiency of transmission and transfer
delay tolerance.
5. The method of claim 3, further comprising: scheduling each
bandwidth request in an order to be serviced based on the priority
identifier associated with each bandwidth request and an order in
which each bandwidth request was received.
6. The method of claim 1, wherein the communications medium
includes at least one of cable, wireless, Internet, intranets and
satellite.
7. A system, comprising: a central node; and a scheduler coupled to
the central node, wherein the scheduler receives bandwidth requests
from one or more data sources, each bandwidth request includes a
data source identifier, an amount of required bandwidth, and a
priority identifier that identifies a type of data to be
transmitted, wherein the scheduler combines bandwidth requests from
the same data source to form a data burst bandwidth, and wherein
the scheduler grants the data burst bandwidth to the associated
data source.
8. The system of claim 7, wherein the scheduler is configured to
schedule each bandwidth request in an order to be serviced based on
the priority identifier associated with each bandwidth request and
an order in which each bandwidth request was received.
9. The system of claim 7, wherein the scheduler is configured to
combine, by data source identifier and priority identifier, the
amount of required bandwidth to form the data burst bandwidth, and
configured to schedule the grant of each data burst bandwidth based
on quality of service parameters.
10. The system of claim 9, wherein the quality of service
parameters include at least one of efficiency of transmission and
transfer delay tolerance.
11. The system of claim 9, wherein the scheduler is further
configured to schedule each bandwidth request in an order to be
serviced based on the priority identifier associated with each
bandwidth request and an order in which each bandwidth request was
received.
12. The system of claim 7, wherein the communications medium
includes at least one of cable, wireless, Internet, intranets and
satellite.
13. A tangible computer-readable medium having stored thereon,
computer-executable instructions that, if executed by a computing
device, cause the computing device to perform a method comprising:
receiving, over a communications medium, bandwidth requests from
one or more data sources, wherein each bandwidth request includes a
data source identifier, an amount of required bandwidth, and a
priority identifier that identifies a type of data to be
transmitted; combining the amount of required bandwidth specified
by each of the bandwidth requests from the same associated data
source to form a data burst bandwidth; and granting the data burst
bandwidth to the associated data source.
14. The tangible computer-readable medium of claim 13, wherein the
method further comprises: scheduling each bandwidth request in an
order to be serviced based on the priority identifier associated
with each bandwidth request and an order in which each bandwidth
request was received.
15. The tangible computer-readable medium of claim 13, wherein the
combining includes combining, by data source identifier and
priority identifier, the amount of required bandwidth to form the
data burst bandwidth; and wherein the granting includes scheduling
the granting of each data burst bandwidth based on quality of
service parameters.
16. The tangible computer-readable medium of claim 15, wherein the
quality of service parameters include at least one of efficiency of
transmission and transfer delay tolerance.
17. The tangible computer-readable medium of claim 15, wherein the
method further comprises: scheduling each bandwidth request in an
order to be serviced based on the priority identifier associated
with each bandwidth request and an order in which each bandwidth
request was received.
18. The tangible computer-readable medium of claim 13, wherein the
communications medium includes at least one of cable, wireless,
Internet, intranets and satellite.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 11/296,485, filed Dec. 8, 2005, now allowed,
which is a continuation of U.S. patent application Ser. No.
09/783,311, filed Feb. 15, 2001, now U.S. Pat. No. 6,999,414,
issued Feb. 14, 2006, which is a continuation-in-part of U.S.
patent application Ser. No. 09/427,792, filed Oct. 27, 1999, now
U.S. Pat. No. 6,804,251, issued Oct. 12, 2004, each of which is are
herein incorporated by reference in their entireties.
[0002] U.S. patent application Ser. No. 09/783,311, filed Feb.
15,2001, claims the benefit of U.S. Provisional Application No.
60/182,470, filed Feb. 15, 2000; U.S. Provisional Application No.
60/247,188, filed Nov. 9, 2000; U.S. Provisional Application No.
60/254,415, filed Dec. 8, 2000; U.S. Provisional Application No.
60/262,201, filed Jan. 17, 2001; and U.S. Provisional Application
No. 60/262,203, filed Jan. 17, 2001, all of which are herein
incorporated by reference in their entireties.
[0003] U.S. patent application Ser. No. 09/783,311, filed Feb. 15,
2001, is related to U.S. patent application Ser. No. 09/783,404,
filed Feb. 15, 2001; U.S. patent application Ser. No. 09/785,020,
filed Feb. 15, 2001; U.S. patent application Ser. No. 09/783,405,
filed Feb. 15, 2001; and U.S. patent application Ser. No.
09/783,403, filed Feb. 15, 2001, all of which are herein
incorporated by reference in their entireties.
BACKGROUND OF THE INVENTION
[0004] 1. Field of the Invention
[0005] The present invention is generally related to increasing the
efficiency of providing requested bandwidth to a data source via a
communications medium.
[0006] 2. Background Art
[0007] The importance to the modem economy of rapid data access and
exchange cannot be overstated. This explains the exponentially
increasing popularity of the data access and exchange via cable
networks (including coaxial cable or Hybrid fiber coaxial cable),
the Internet, intranets, wireless networks, satellites and so forth
(i.e., communication mediums). Rapid data access and exchange is
partly dependent upon how efficiently bandwidth is allocated to a
data provider in order for the data provider to transfer the
requested data to a user via one of the communication mediums
mentioned above.
[0008] One very desirable solution for rapid data access and
exchange is via cable networks and cable modems. Cable modems
provide asynchronous communications on cable networks. In general,
a user connects a cable modem to the TV outlet for his or her cable
TV, and the cable TV operator connects a cable modem termination
system ("CMTS") in the operator's headend. The CMTS is a central
device for connecting the cable network to a data network like the
Internet. The CMTS is a central distribution point for a cable
system. Data flows "downstream" from the CMTS to the cable modem
(i.e., downstream communication). Alternatively, data flows
"upstream" from the cable modem to the CMTS (i.e., upstream
communication).
[0009] A common cable modem standard today is the Data Over Cable
Service Interface Specification ("DOCSIS"). DOCSIS defines
technical specifications for both cable modems and CMTS. DOCSIS
downstream communication is quite restrictive in the way the
control information is conveyed to the data provider (e.g., cable
modem) via a DOCSIS CMTS scheduler. What is needed is to override
the CMTS scheduler of DOCSIS and provide a CMTS scheduler that
reduces the overhead of bandwidth grants via downstream
communication by providing flexibility in the allocation of the
bandwidth.
BRIEF SUMMARY OF THE INVENTION
[0010] The present invention is a system and method for combining
requests for bandwidth by a data source for transmission of data
over a communications medium.
[0011] In particular, a method for combining requests for bandwidth
by a data source for transmission of data over a communications
network is provided. In accordance with this method, bandwidth
requests are received from one or more data sources, each bandwidth
request having a data source identifier, a priority identifier, and
an amount of required bandwidth. Each of the bandwidth requests are
scheduled in an order to be serviced based on the priority
identifier associated with each bandwidth request and an order in
which each bandwidth request was received. The amount of required
bandwidth specified by each of the scheduled bandwidth requests
having the same data source identifier is combined into a data
burst bandwidth. Each data burst bandwidth is granted to a
respective data source over the communications network.
[0012] An alternative method for combining requests for bandwidth
by a data source for transmission of data over a communications
network is also provided. In accordance with this method, bandwidth
requests are received from one or more data sources, each bandwidth
request having a data source identifier, a priority identifier, and
an amount of required bandwidth. The amount of required bandwidth
specified by each of the bandwidth requests having the same data
source identifier and priority identifier is combined into a data
burst bandwidth. The granting of each data burst bandwidth is then
scheduled based on one or more quality of service parameters.
BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES
[0013] The present invention will be described with reference to
the accompanying drawings, wherein:
[0014] FIG. 1 is a block diagram representing an example operating
environment of the present invention according to an embodiment of
the present invention.
[0015] FIG. 2 illustrates an example of granted bandwidth according
to an embodiment of the present invention.
[0016] FIG. 3 is a high level flowchart that describes the process
of combining bandwidth requests according to an embodiment of the
present invention.
[0017] FIG. 4 describes in detail the step of combining bandwidth
requests from the same data provider (e.g., cable modem 104) to
create a data burst bandwidth (step 304 of FIG. 3) according to an
embodiment of the present invention.
[0018] FIG. 5 illustrates multiple queues with example priority
identifiers values according to an embodiment of the present
invention.
[0019] FIG. 6 illustrates an example scheduling that is based on
the example data structure shown in FIG. 5 according to another
embodiment of the present invention.
[0020] FIG. 7 illustrates how the CMTS scheduler utilizes an
example schedule shown in FIG. 6 to combine bandwidth requests from
the same cable modem to create a single data burst bandwidth for
each cable modem according to another embodiment of the present
invention.
[0021] FIG. 8 describes in detail the step of combining bandwidth
requests from the same data provider (e.g., cable modem 104) to
create a data burst bandwidth (step 304 of FIG. 3) according to
another embodiment of the present invention.
[0022] FIG. 9 illustrates a table used by the flowchart in FIG. 8
according to another embodiment of the present invention.
[0023] FIG. 10 illustrates an example computer used to implement
the CMTS, the CMTS scheduler and the cable modem scheduler
according to and embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
A. Overview of the Invention
[0024] For illustration purposes, the present invention is
described in terms of being utilized with a cable network. It
should be understood that the present invention is not limited to
use with a cable network. In fact, the present invention may be
used with any communication medium, including but not limited to,
the Internet, intranets, fiber optic networks, wireless networks
and satellites.
[0025] Data in the present invention includes any type of
information. This includes, but is not limited to, digital, voice,
video, audio, etc.
B. System Architecture Overview
[0026] FIG. 1 is a block diagram representing an example operating
environment of the present invention. It should be understood that
the example operating environment in FIG. 1 is shown for
illustrative purposes only and does not limit the invention. Other
implementations of the operating environment described herein will
be apparent to persons skilled in the relevant art(s) based on the
teachings contained herein, and the invention is directed to such
other implementations. Referring to FIG. 1, a CMTS 102, a cable
modem 104, downstream communication 106 and upstream communication
108, are shown. CMTS 102 further includes a CMTS scheduler 102 and
a data structure 112. Cable modem 104 includes a cable modem
scheduler 116. Each of these components will be briefly described
next.
[0027] In general, cable modem 104 forwards or provides data via
asynchronous communications on cable networks. Cable modem 104
receives data from a user that needs to be transferred via a cable
network. In order to do this, cable modem 104 requests that CMTS
102 grant to it the necessary bandwidth.
[0028] As mentioned, cable modem 104 receives data from a user to
be transferred via a cable network. Different types of data require
different modes of transfer since the importance of timing is
different with different types of data. For example, voice data
cannot tolerate delays in its transfer. Alternatively, the type of
data involved in web surfing can tolerate delays in its
transfer.
[0029] In order to ensure the importance of timing is maintained,
cable modem 104 assigns different priority identifiers to different
types of data. The higher the priority a data has, the less of a
delay that type of data will experience in its transfer via the
cable network. Thus, voice data would be assigned a priority
identifier with a higher priority than data involved in web
surfing.
[0030] Cable modem scheduler 116 is coupled to cable modem 104.
Cable modem scheduler 116 is described in detail in related U.S.
patent application Ser. No. 09/783,404, filed Feb. 15, 2001. In
general, cable modem scheduler 116 is responsible for multiplexing
the internal traffic, (i.e., requesting the necessary bandwidth
that cable modem 116 needs to transfer its current types of data).
Cable modem scheduler 116 must take into consideration the
different priorities given to the current data to be transferred
and to request bandwidth from CMTS 102 accordingly.
[0031] As stated above, DOCSIS is a common cable modem standard
used today. DOCSIS provides standard centralized scheduling
decisions that do not allow for flexibility in terms of deciding
when cable modem 104 requests bandwidth from CMTS 102 in order to
transfer its current data. Cable modem scheduler 116 defines an
architecture that overrules this DOCSIS standard in a seamless
manner. Some of the main differences between the DOCSIS standard
and cable modem scheduler 116 are described next.
[0032] One main difference between the DOCSIS standard and cable
modem scheduler 116 includes the decoupling of the request phase
with the grant phase (i.e., grants of bandwidth received from CMTS
102). Here, cable modem scheduler 116 uses granted bandwidth as
they are received regardless of their size and priority
specification, thereby ignoring the DOCSIS standard. Cable modem
scheduler 116 ignores the priority id of the granted bandwidth.
This means that cable modem scheduler 116 does not have to use the
granted bandwidth in the same order in which it was requested. In
addition, piggyback requests may be separate requests for bandwidth
instead of extended header as done in the DOCSIS standard. How
piggyback requests are handled by the present invention are
described in detail in related U.S. patent application Ser. No.
09/783,404, filed Feb. 15, 2001. Here, it is important to note that
piggybacks requests are treated as separate requests for bandwidth
and may or may not be given a priority identifier. In an
embodiment, the present invention assigns voice data the highest
priority, piggyback requests have the second highest priority and
other types of data (including data required for web surfing) is
given the lowest priority.
[0033] Therefore, cable modem scheduler 116 sends bandwidth
requests to CMTS 102 via upstream communication 108. At a high
level, each bandwidth request may include three fields. The three
fields are a data provider identifier, a priority identifier, and
the amount of required bandwidth. In an embodiment of the present
invention, the bandwidth request does not include the data provider
identifier as a field. Here, the data provider identifier is
implicit (e.g., piggyback requests). These three fields will be
briefly described next.
[0034] Each cable modem 104 has a unique data provider identifier.
CMTS 102 uses this identifier to grant the requested bandwidth to
cable modem 104.
[0035] Priority identifiers indicate the priority given to the data
and thus indicating the type of data that will be transferred over
the cable network via the granted bandwidth. Finally, the last
field is value indicating the amount of required bandwidth needed
to transfer the data. CMTS 102, CMTS scheduler 110 and data
structure 112 will now be described.
[0036] CMTS 102 is a central device for connecting the cable
network to a data network. CMTS scheduler 102 is a bandwidth
manager. CMTS scheduler 102, as a bandwidth manager, decides how to
grant available bandwidth according to the current bandwidth
requests. This grant is done via downstream communication 106 in
such as way as to reduce overhead. This ability to decide how to
grant available bandwidth provides flexibility. This flexibility
allows the present invention to reduce the overhead involved in
granting bandwidth to cable modem 104 via downstream communication.
Data structure 112 is used to organized the received bandwidth
requests in such as way as to take into consideration the type of
data (via the priority identifiers) and the order in which the
requests were received.
[0037] As described above, the way in which the DOCSIS CMTS
scheduler grants bandwidth is quite restrictive, thus creating
unnecessary overhead in downstream communication. The details of
how CMTS scheduler 110 grants bandwidth to cable modem 104 so that
to decrease overhead will be described in detail below. The
overhead in each granted bandwidth will be described next with
reference to FIG. 2.
C. Granted Bandwidth Overhead
[0038] FIG. 2 illustrates an example of granted bandwidth 202. As
shown, granted bandwidth shows overhead 204 including a preamble, a
guard band and a forward error correction ("FEC"). The preamble is
a pattern of bits transmitted at the start of a frame used to
implement transmitter and receiver synchronization. The guard band
is the time left vacant between adjacent transmissions to allow for
detection certainty and clock synchronization inaccuracies in an
asynchronous communication system. The FEC is the process whereby
additional bits are appended to a block of bits so that the
receiver will be able to both detect and correct transmission
errors.
[0039] Overhead 204 may be referred to as the physical layer
overhead. Regardless of the size of granted bandwidth 202, overhead
204 uses approximately the same amount of bytes. Where the preamble
and guard band are typically fixed in size, the FEC is a variable
size that depends on the amount of bandwidth. Therefore, the larger
the granted bandwidth, the greater the efficiency. However, larger
granted bandwidths mean greater end-to-end delay experienced by a
voice call, for example. Thus, when granting bandwidth, end-to-end
delay versus gained efficiency must be taken into
consideration.
[0040] Different systems may reserve different amount of bytes for
overhead 204. How the present invention combines bandwidth requests
from the same cable modem 104 to create a single data burst
bandwidth is described next.
D. Combination of Bandwidth Grants
[0041] As mentioned above, cable modem scheduler 116 may send
different bandwidth requests to CMTS 102, including but not limited
to, voice, piggyback and data for activities such as web surfing.
Thus, at any given time, CMTS 102 may have more than one request
for the same cable modem. This is especially true since cable modem
scheduler 104 piggybacks requests as often as possible. These
requests may have different priority identifiers values or the same
priority identifier value for data that has arrived at CMTS 102 at
different times.
[0042] A goal of the present invention is to combine all pending
bandwidth requests from the same cable modem into one data burst
bandwidth request. Here, instead of individual requests being
granted which would require physical overhead for each grant, the
present invention reduces the physical over to one for all of the
individual requests by combining them. This can be accomplished by
the present invention partly because there is a decoupling of the
request phase (i.e., bandwidth requests from cable modem 104) with
the grant phase (i.e., grants of bandwidth received from CMTS 102),
as mentioned above. CMTS scheduler 110 needs to take into
consideration end-to-end delay verses the gained efficiency. FIG. 3
is a high level flowchart that describes the process of combining
bandwidth requests according to an embodiment of the present
invention.
[0043] In FIG. 3, control starts at step 302. In step 302, CMTS 102
receives one or more bandwidths requests from one or more cable
modems 104 via upstream communication 108. Control then passes to
step 304.
[0044] In step 304, CMTS scheduler 110 combines one or more
bandwidths requests from the same cable modem 104 to create a
single data burst bandwidth. Control then passes to step 306.
[0045] In step 306, CMTS 102 grants the data burst bandwidth to the
appropriate cable modem 104 via downstream communication 106. The
flowchart in FIG. 3 ends at this point. Next, two different
embodiments of step 304 are described. The first embodiment is
described with reference to FIGS. 4-6. Here, bandwidth requests are
scheduled to be serviced based on priority identifiers (i.e., type
of data) and the order in which the requests for bandwidth were
received. The second embodiment of step 304 is described with
reference to FIGS. 8 and 9. Here, bandwidth requests are scheduled
to be serviced based on various quality of service parameters.
[0046] FIG. 4 describes in detail the step of combining bandwidth
requests from the same data provider (e.g., cable modem 104) to
create a data burst bandwidth (step 304 of FIG. 3) according to an
embodiment of the present invention. In FIG. 4, control starts at
step 402. In step 402, as CMTS 102 receives bandwidth requests from
one or more cable modems 104, CMTS scheduler 112 stores each
bandwidth request in data structure 112. In an embodiment of the
present invention, data structure 112 is implemented as one or more
queues and CMTS scheduler 112 is implements as a priority first
come first serve scheduler. Data structure 112 as implemented as
one or more queues is shown in FIG. 5.
[0047] FIG. 5 illustrates multiple queues with priority identifiers
values 1 through n. Queue 502 stores the data request with the
highest priority (i.e., 0). Queue 508 stores the data with the
lowest priority (i.e., n). Queues 504 and 506 store data with
priority values in between the highest and the lowest. In any
event, each queue has its own priority value and all requests
stored in any of the queues must have the same priority identifier
values.
[0048] As illustrated in FIG. 5, queue 502 currently stores three
bandwidth requests, including requests 510-514. Queue 504 stores
two bandwidth request, including requests 516 and 518. Neither
queue 506 or queue 508 are currently storing any bandwidth
request.
[0049] Each bandwidth request is indicated as (n,m), where n is the
data provider identifier and m is the amount of required bandwidth.
As described above, each bandwidth request includes at least three
fields, including the data provider identifier, the priority
identifier, and the amount of required bandwidth. For example,
bandwidth request 510 has a priority identifier value of 0, the
cable modem 104 who sent the request has the data provider
identifier of 1 and it is requesting 5 units of bandwidth. In
addition, bandwidth request 510 arrived at CMTS 102 before
bandwidth request 512, which in turn arrived before bandwidth
request 514, as indicated by their positions in queue 502. It is
important to note that bandwidth request 516 may arrive at CMTS 102
before bandwidth request 514, but bandwidth request 514 is still
likely to be granted bandwidth first due to it having a higher
priority identifier.
[0050] Also illustrated by FIG. 5 is that the cable modem 104 that
has the data provider value of 2 has two bandwidth requests,
including requests 512 and 516. It is important to note that these
two requests are for data that have different priority identifier
values (e.g., requests for voice and piggyback). Control then
passes to step 404.
[0051] In step 404, CMTS scheduler 110 schedules each bandwidth
request stored in data structure 112 in an order to be serviced by
the present invention. Here, bandwidth requests are scheduled to be
serviced based on priority identifiers (i.e., type of data) and the
order in which the requests for bandwidth were received. An example
scheduling that is based on the example data structure shown in
FIG. 5 is shown in FIG. 6 as schedule 602. In schedule 602, request
510 is scheduled first, request 512 is scheduled second, and so
forth. Control then passes to step 406.
[0052] In step 406, CMTS scheduler 110 utilizes schedule 602 to
combine bandwidth requests from the same cable modem 104 to create
a single data burst bandwidth for each cable modem 104 (i.e., data
provider identifier). This is illustrated in FIG. 7. In FIG. 7,
data burst bandwidth 702 is created by combining bandwidth requests
510 and 514. Data burst bandwidth 704 is created by combining
bandwidth requests 512 and 516. Finally, data burst bandwidth 706
is identical to bandwidth request 518. It is important to note that
the conversion between storage units may alter the units of storage
required. For example, this account for why data burst bandwidth
702 is (1,6) and not (1,7). This is for illustration purposes only
and is not meant to limit the present invention.
[0053] At this point, data burst bandwidths 702-706 are ready to be
granted to their appropriate cable modems as accomplished in step
306 (FIG. 3). The flowchart in FIG. 4 ends at this point. The
second embodiment of step 304 will now be described with reference
to FIGS. 8 and 9.
[0054] As mentioned above, bandwidth requests in this embodiment
are scheduled to be serviced based on various quality of service
parameters.
[0055] FIG. 8 describes in detail the step of combining bandwidth
requests from the same data provider (e.g., cable modem 104) to
create a data burst bandwidth (step 304 of FIG. 3) according to
another embodiment of the present invention. In FIG. 8, control
starts at step 802. In step 802, as CMTS 102 receives bandwidth
requests from one or more cable modems 104, CMTS scheduler 112
combines or accumulates the sum of the units of bandwidth requested
per priority identifier and data provider identifier. This sum
represents what will be required to represent the data burst
bandwidths. The accumulation of units of bandwidth requested is
illustrated in FIG. 9.
[0056] In FIG. 9, a table 902 is shown. The columns of table 902
represent the priority identifier (i.e., type of data in the
request). The rows of table 902 represent the data provider
identifiers. The cells of table 902 represent the accumulation of
units of requested bandwidth by priority identifier and data
provider identifier. For illustration purposes, it is assumed that
the same bandwidth requests are received by CMTS 102 as received
and explained with reference to FIG. 5 above. Therefore, an
accumulation 904 (with the value 7) is calculated by bandwidth
request 510 and bandwidth request 514 (requesting 5 and 2 units of
bandwidth, respectively). Control then passes to step 804.
[0057] In step 804, CMTS scheduler 110 schedules each data burst
bandwidth based on quality of service parameters. Quality of
service parameters include efficiency of transmission and transfer
delay tolerance. As stated above, different types of data require
different modes of transfer since the importance of timing is
different with different types of data. For example, voice data
cannot tolerate delays in its transfer. Alternatively, the type of
data involved in web surfing can tolerate delays in its
transfer.
[0058] The priority identifier specified in the request is not
significantly important since the cable modem scheduler does not
use it 104 when transferring data via the bandwidth. For
consistency in all cases is desired, the present invention may
specify that the priority identifier of the data burst bandwidth
gets the lowest priority that contributes to the accumulated
sum.
[0059] Also note that this embodiment may choice to incorporate
scheduling, as shown in FIG. 6 above, and the combination of
bandwidth requests, as shown in FIG. 7 above. At this point, data
burst bandwidths are ready to be granted to their appropriate cable
modems as accomplished in step 306 (FIG. 3). The flowchart in FIG.
8 ends at this point.
E. Example Environment of the Present Invention
[0060] CMTS 102, CMTS scheduler 110 and cable modem scheduler 116
may be implemented using computer 1000 as shown in FIG. 10.
Obviously, more than one of these functional components could be
implemented on a single computer 1000.
[0061] The present invention may be implemented using hardware,
software or a combination thereof and may be implemented in a
computer system or other processing system. In fact, in one
embodiment, the invention is directed toward one or more computer
systems capable of carrying out the functionality described herein.
The computer system 1000 includes one or more processors, such as
processor 1004. The processor 1004 is connected to a communication
bus 1006. Various software embodiments are described in terms of
this example computer system. After reading this description, it
will become apparent to a person skilled in the relevant art how to
implement the invention using other computer systems and/or
computer architectures.
[0062] Computer system 1000 also includes a main memory 1008,
preferably random access memory (RAM), and can also include a
secondary memory 1010. The secondary memory 1010 can include, for
example, a hard disk drive 1012 and/or a removable storage drive
1014, representing a floppy disk drive, a magnetic tape drive, an
optical disk drive, etc. The removable storage drive 1014 reads
from and/or writes to a removable storage unit 1018 in a well known
manner. Removable storage unit 1018, represents a floppy disk,
magnetic tape, optical disk, etc. which is read by and written to
by removable storage drive 1014. As will be appreciated, the
removable storage unit 1018 includes a computer usable storage
medium having stored therein computer software and/or data.
[0063] In alternative embodiments, secondary memory 1010 may
include other similar means for allowing computer programs or other
instructions to be loaded into computer system 1000. Such means can
include, for example, a removable storage unit 1022 and an
interface 1020. Examples of such can include a program cartridge
and cartridge interface (such as that found in video game devices),
a removable memory chip (such as an EPROM, or PROM) and associated
socket, and other removable storage units 1022 and interfaces 1020
which allow software and data to be transferred from the removable
storage unit 1018 to computer system 1000.
[0064] Computer system 1000 can also include a communications
interface 1024. Communications interface 1024 allows software and
data to be transferred between computer system 1000 and external
devices. Examples of communications interface 1024 can include a
modem, a network interface (such as an Ethernet card), a
communications port, a PCMCIA slot and card, etc. Software and data
transferred via communications interface 1024 are in the form of
signals which can be electronic, electromagnetic, optical or other
signals capable of being received by communications interface 1024.
These signals 1026 are provided to communications interface via a
channel 1028. This channel 1028 carries signals 1026 and can be
implemented using wire or cable, fiber optics, a phone line, a
cellular phone link, an RF link and other communications
channels.
[0065] In this document, the terms "computer program medium" and
"computer usable medium" are used to generally refer to media such
as removable storage device 1018, a hard disk installed in hard
disk drive 1012, and signals 1026. These computer program products
are means for providing software to computer system 1000.
[0066] Computer programs (also called computer control logic) are
stored in main memory and/or secondary memory 1010. Computer
programs can also be received via communications interface 1024.
Such computer programs, when executed, enable the computer system
1000 to perform the features of the present invention as discussed
herein. In particular, the computer programs, when executed, enable
the processor 1004 to perform the features of the present
invention. Accordingly, such computer programs represent
controllers of the computer system 1000.
[0067] In an embodiment where the invention is implemented using
software, the software may be stored in a computer program product
and loaded into computer system 1000 using removable storage drive
1014, hard drive 1012 or communications interface 1024. The control
logic (software), when executed by the processor 1004, causes the
processor 1004 to perform the functions of the invention as
described herein.
[0068] In another embodiment, the invention is implemented
primarily in hardware using, for example, hardware components such
as application specific integrated circuits (ASICs). Implementation
of the hardware state machine so as to perform the functions
described herein will be apparent to persons skilled in the
relevant art(s). In yet another embodiment, the invention is
implemented using a combination of both hardware and software.
CONCLUSION
[0069] While various embodiments of the present invention have been
described above, it should be understood that they have been
presented by way of example, and not limitation. It will be
apparent to persons skilled in the relevant art that various
changes in form and detail may be made therein without departing
from the spirit and scope of the invention. This is especially true
in light of technology and terms within the relevant art(s) that
may be later developed. Thus, the present invention should not be
limited by any of the above-described exemplary embodiments, but
should be defined only in accordance with the following claims and
their equivalents.
* * * * *