The invention provides quality-of-service (QoS) delivery services over a
computer bus having isochronous data transfer capabilities. A
transmitting node on the bus transmits a message to an intended recipient
indicating a requested bandwidth for a connection. If the intended
recipient has sufficient resources, it allocates an isochronous data
channel on the bus and notifies the transmitter of the allocated channel.
Thereafter, the transmitter transmits the data on the allocated channel.
If the recipient cannot allocate a channel, it does not respond, and the
transmitter thereafter detects a time-out condition and begins
transmitting using a "best efforts" scheme (i.e., non-guaranteed time
delivery). In a second variation, a receiving node detects that it is
receiving large quantities of data from a transmitting node. In response,
the receiving node allocates an isochronous data channel on the bus and
notifies the transmitter of the allocated channel. Thereafter, the
transmitter transmits using the allocated isochronous channel. In a third
variation, multiple receiving nodes that need to receive streaming data
from a single transmitting node share a common isochronous data channel.
In any of these variations, each receiver can periodically transmit a
"deadman" timer message on a broadcast channel to indicate that it is
still receiving on a given channel. If a transmitter detects that the
deadman timer has expired, it reverts to transmitting data using a
"best-efforts" scheme. A transmitter can transmit both to receivers that
can handle QoS services and those that cannot explicitly support QoS
services.