U.S. patent application number 10/940081 was filed with the patent office on 2005-02-10 for method for guaranteeing a device minimum bandwidth on a usb bus.
Invention is credited to Bayless, Stephen F., Hanes, David H., Main, John M..
Application Number | 20050033876 10/940081 |
Document ID | / |
Family ID | 24163686 |
Filed Date | 2005-02-10 |
United States Patent
Application |
20050033876 |
Kind Code |
A1 |
Hanes, David H. ; et
al. |
February 10, 2005 |
Method for guaranteeing a device minimum bandwidth on a USB bus
Abstract
A method of guaranteeing a minimum sustained data transfer rate
to a chosen device connected to a USB bus. A set of filter drivers
are inserted in the driver stacks for at least two USB devices.
These filter drivers are controlled by a filter driver controller
that provides and receives information from the filter drivers.
When a particular device needs a minimum sustained bandwidth for a
transaction, the filter driver for that device notifies the filter
driver controller. The filter driver controller then instructs the
filter drivers for at least one other device to start interfering
with USB transactions. This interference prevents the interfered
with devices from using any of the USB bus bandwidth thereby
providing a minimum sustained bandwidth to the non-interfered with
device.
Inventors: |
Hanes, David H.; (Loveland,
CO) ; Main, John M.; (Fort Collins, CO) ;
Bayless, Stephen F.; (Fort Collins, CO) |
Correspondence
Address: |
HEWLETT-PACKARD COMPANY
Intellectual Property Administration
P.O. Box 272400
Fort Collins
CO
80527-2400
US
|
Family ID: |
24163686 |
Appl. No.: |
10/940081 |
Filed: |
September 13, 2004 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10940081 |
Sep 13, 2004 |
|
|
|
09542405 |
Apr 3, 2000 |
|
|
|
6810432 |
|
|
|
|
Current U.S.
Class: |
710/29 |
Current CPC
Class: |
G06F 13/102
20130101 |
Class at
Publication: |
710/029 |
International
Class: |
G06F 003/00 |
Claims
1-23. (cancelled)
24. An apparatus for providing a minimum sustained data rate across
a USB bus, comprising: a bandwidth filter driver associated with a
device; and, a chosen device bandwidth filter driver, wherein said
chosen device bandwidth filter causes said bandwidth filter driver
to transmit at least one signal indicating that said device is not
connected to said USB bus regardless of whether said device is
connected to said USB bus.
25. An apparatus for providing a minimum sustained data rate across
a USB bus, comprising: a bandwidth filter driver associated with a
device; and, a chosen device bandwidth filter driver, wherein said
chosen device bandwidth filter causes said bandwidth filter driver
to transmit at least one signal indicating that an error condition
exists on said device, whether or not an error exists on said
device.
Description
FIELD OF THE INVENTION
[0001] This invention relates generally to the Universal Serial Bus
(USB) and more particularly to ensuring that a minimum amount of
bandwidth is allocated to a particular device.
BACKGROUND OF THE INVENTION
[0002] The Universal Serial Bus (USB) is a peripheral bus
specification developed by personal computer (PC) and
telecommunication industry companies that brings the plug and play
features of computer peripherals outside the PC box. This
eliminates the need to install cards into dedicated computer slots
and reconfigure the system. Personal computers equipped with USB
allow computer peripherals to be automatically configured as soon
as they are physically attached. This eliminates the need to reboot
or run setup software. USB also allows multiple devices to run
simultaneously on a computer, with dedicated hubs and peripherals
such as monitors and keyboards also acting as additional plug-in
sites.
[0003] The Universal Serial Bus is defined in the Universal Serial
Bus Specification, revision 1.1, Sep. 23, 1998 which is hereby
incorporated herein by reference. This document is available from
the USB Implementers Forum web page at http://www.usb.org. Also
under development is USB 2.0 which is intended to be fully
compatible with USB 1.1 and extend performance by up to 40 times
over existing capabilities and use the same cables and
connectors.
[0004] USB is implemented as a "shared" bus. In other words, there
can be multiple active devices connected to the USB bus with each
active device getting a portion of the total available USB
bandwidth. Unfortunately, this characteristic can cause problems
with some types of devices. For example, a writeable compact disc
drive, such as a CD-R or CD-RW drive, may use disc-at-once or
track-at-once recording modes. In a disc-at-once recording mode,
recording never stops until the entire disc has been created. In
track-at-once, recording only stops at track boundaries. The
limited availability of stopping times during recording can cause a
problem called "buffer underrun." A buffer underrun occurs when the
host computer or bus cannot supply data to the drive at a rate at
least equal to the speed that the drive is writing data to the
media. To illustrate, if a drive capable of "4.times." write speed,
it can write data to the media at 600 kilobytes per second
(KB/sec). Therefore, the host computer, and the bus connecting the
computer to the drive, must be able to sustain a 600 KB/sec data
transfer rate to the drive or the drive would require a data buffer
that is too large to be practical. If the host computer and bus
cannot sustain a 600 KB/sec data transfer rate, then the drive may
run out of data when it is not a valid stopping point. This will
cause an error to occur and may ruin the media being written.
[0005] When drives or other devices with these type of limitations
are connected to a USB bus, they may be writing some media in one
of the modes discussed above. If the user begins using another
device on the USB bus, the bandwidth available for the drive is
reduced. If this reduction in bandwidth is large enough, the
bandwidth allocated to the drive may not be enough to maintain the
necessary sustained data transfer rate to the drive and a buffer
underrun error may occur.
[0006] Accordingly, there is a need in the art for a method and
apparatus that guarantees a minimum data transfer rate across a USB
bus to and from certain devices. It is desirable that such method
and apparatus be easy to implement from a user's point of view. It
is also desirable that such method and apparatus work with devices
that conform to the USB device specifications so that existing and
future devices and existing and future USB busses do not need to be
redesigned or altered.
SUMMARY OF THE INVENTION
[0007] In a preferred embodiment, the invention provides a minimum
sustained data transfer rate to a chosen device connected to a USB
bus. A set of filter drivers are inserted in the driver stacks for
at least two USB devices. These filter drivers are controlled by a
filter driver controller that provides and receives information
from the filter drivers. When a particular device needs a minimum
sustained bandwidth for a transaction, the filter driver for that
device notifies the filter driver controller. The filter driver
controller then instructs the filter drivers for at least one other
device to start interfering with USB transactions. This
interference may be to temporarily delay one or more transactions
to one or more of the other devices until more bandwidth is
available. This interference may also take the form of intercepting
transactions from one or more of the other devices and returning an
error condition. This interference may also be implemented by
signaling the host computer that one or more of the other devices
is disconnected from the USB bus. Then when the non-interfered with
device no longer needs the minimum sustained data rate, the host
computer is signaled that the device has been reconnected. This
interference prevents the interfered with devices from using any of
the USB bus bandwidth thereby providing a minimum sustained
bandwidth to the non-interfered with device. Other aspects and
advantages of the present invention will become apparent from the
following detailed description, taken in conjunction with the
accompanying drawings, illustrating by way of example the
principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] FIG. 1 is an illustration of devices connected to a USB bus
including a device that may need guaranteed minimum bandwidth.
[0009] FIG. 2 is an illustration of a set of USB driver stacks that
guarantee minimum bandwidth to a chosen device.
[0010] FIG. 3 is a flowchart illustrating steps taken to guarantee
minimum bandwidth to a chosen device.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] FIG. 1 is an illustration of devices connected to a USB bus
including a device that may need guaranteed minimum bandwidth.
Computer 102 acts as the USB host and also as a hub. A first USB
port of computer 102 is connected to keyboard/hub 108. Keyboard/hub
108 has USB hub functionality so multiple USB devices are connected
to the ports of keyboard/hub 108. The devices connected to the USB
ports on keyboard/hub 108 are speaker 104, speaker 106, and mouse
110. A second USB port of computer 102 is connected to laser
printer/hub device 112. Optical drive/hub device 114 is connected
to a USB port on laser printer/hub device 112. Finally, a modem 116
is connected to a USB port on optical drive/hub device 114.
[0012] As discussed above, one of these devices may need a
guaranteed minimum bandwidth to function properly. For example,
optical drive/hub 114 may be performing a disc-at-once write
operation. If this is the case, and optical drive/hub 114 writes at
600 KB/sec, it will need at least that amount of bandwidth on the
USB bus to avoid buffer underrun. To guarantee this minimum amount
of bandwidth, filter drivers are inserted into the USB driver
stacks running on computer 102. These filter drivers are controlled
by a filter controller that provides and receives information from
the filter drivers.
[0013] FIG. 2 is an illustration of a set of USB driver stacks that
guarantee minimum bandwidth to a chosen device. There is a USB
driver stack corresponding to each device that is connected to the
USB bus. The first driver stack shown comprises USB driver 210,
bandwidth filter driver 220, and USB driver 230. USB driver 210
communicates with bandwidth filter driver 220. Bandwidth filter
driver 220 also communicates with USB driver 230. USB driver 230
also communicates with bus driver 240. Information on how to
construct a filter driver is given in chapter 30 of Developing
Windows NT Device Drivers: a programmer 's handbook by Edward N.
Dekker, Addison Wesley Longman, Inc., copyright 1999, which is
hereby incorporated herein by reference. This book also contains
useful information on the operation of USB and other device
drivers. In particular, chapter 29 relates to the Universal Serial
Bus and is therefore hereby incorporated herein by reference.
[0014] The second driver stack is the driver stack corresponding to
the device that needs a minimum amount of bandwidth. In the case
discussed above, this would be the driver stack that is associated
with optical drive/hub 114. The second driver stack shown comprises
USB driver 212, chosen device filter driver 222, and USB driver
232. USB driver 212 communicates with chosen device filter driver
222. Chosen device filter driver 222 also communicates with USB
driver 232. USB driver 232 also communicates with bus driver 240.
The third driver stack shown comprises USB driver 214, bandwidth
filter driver 224, and USB driver 234. USB driver 214 communicates
with bandwidth filter driver 224. Bandwidth filter driver 224 also
communicates with USB driver 234. USB driver 234 also communicates
with bus driver 240. The fourth driver stack shown comprises USB
driver 216, bandwidth filter driver 226, and USB driver 236. USB
driver 216 communicates with bandwidth filter driver 226. Bandwidth
filter driver 226 also communicates with USB driver 236. USB driver
236 also communicates with bus driver 240.
[0015] Bandwidth filter drivers 220, 224, and 226 all communicate
with and are controlled by bandwidth filter controller 202.
Bandwidth filter controller 202 also communicates with and controls
chosen device filter controller 222.
[0016] FIG. 3 is a flowchart illustrating steps taken to guarantee
minimum bandwidth to a chosen device. In a step 302, the system is
initialized by inserting bandwidth filter drivers, a chosen device
filter driver or drivers, and a bandwidth filter controller into
the operating system driver stacks. After this initialization, in a
step 304, all the filter drivers and the filter driver controller
wait for an operation requiring minimum bandwidth. While they wait,
the filter drivers operate normally and communicate with the other
USB drivers without interfering with the flow of communications
between these drivers. When an operation is requested that needs
minimum bandwidth, a chosen device filter driver controller reports
that need to the bandwidth filter controller in a step 306.
Alternatively, the bandwidth filter controller could determine
itself that a minimum sustained bandwidth is required and notifies
the filter drivers. Another alternative is that an application
program, such as a CD mastering application, determines that a
minimum sustained bandwidth is needed and the application program
reports that need to the bandwidth filter controller directly for
relay to the filter drivers. In a step 308, after receiving this
report, the bandwidth filter controller instructs one or more
bandwidth filter drivers to interfere with transactions. This
interference prevents at least some bus traffic from actually
reaching the USB bus. By reducing this traffic, it guarantees that
a minimum bandwidth is available for the chosen device. The number
of devices that would have their transactions reduced, or blocked,
would depend upon how much bandwidth the various devices are
using.
[0017] One embodiment of the present invention guarantees minimum
bandwidth for the chosen device by interfering with a predetermined
set of the other devices on the USB bus. For example, all of the
devices except for the keyboard and mouse may be interfered with.
This would guarantee most of the available bandwidth to the chosen
device because keyboards and mice generally do not use much
bandwidth and it is desirable that the devices continue to function
at all times. In one embodiment, the interference takes the form of
reporting back to the system that a device has been disconnected
from the bus. This "virtual disconnection" takes place only in the
driver stacks and is accomplished by the bandwidth filter
controllers reporting a disconnect condition even though one does
not actually exist. Since the higher level USB drivers and the
system then believe that the device is no longer present, they will
stop trying to send information to that device across the USB
bus.
[0018] Other forms of interference that may be used are to
temporarily delay one or more transactions to one or more of the
other devices until more bandwidth is available. Another form of
interference that may be used takes the form of intercepting
transactions from one or more of the other devices and returning an
error condition.
[0019] In a step 310, the bandwidth filter controllers continue to
interfere with USB transactions until the minimum bandwidth
operation is complete. During this waiting period, the chosen
device filter controller continues to pass transactions between USB
drivers in a normal manner. This allows the chosen device to use
all of the available bandwidth on the USB bus.
[0020] In a step 312, after the minimum bandwidth operation has
completed, the bandwidth filter driver controller instructs the
bandwidth filter drivers to resume normal operation. In the
embodiment discussed above, the bandwidth filter drivers would then
signal the system that the devices are reconnected and need to be
reset. The system would then take appropriate action to restore
these devices to normal operation. After this step, the system
would return to step 304 and wait for another operation that
requires minimum bandwidth.
[0021] From the foregoing it will be appreciated that the invention
provides a novel and advantageous way of guaranteeing minimum
bandwidth on a USB bus. This system may be configured to provide
some bandwidth to mission critical devices if there is bandwidth to
spare, or may use a dynamic approach that only interferes with
devices that are using too much bandwidth, either alone or in
combination, to coexist with the minimum bandwidth operation.
Finally, this invention may be implemented entirely in software and
can be made transparent to both the operating system and the other
device drivers.
[0022] Although several specific embodiments of the invention have
been described and illustrated, the invention is not to be limited
to the specific forms or arrangements of parts so described and
illustrated. The invention is limited only by the claims.
* * * * *
References