Over the years, certain communication protocols have included a special class of traffic, called isochronous, that provides Quality of Service (QoS). Unlike file transfers in computer systems, isochronous data transfers do not need guaranteed delivery, but they do need guaranteed service opportunities. Typical examples of isochronous traffic are audio and video streams where the synchronization of the two must be strictly maintained and the latency must be kept to a minimum, but a slight glitch in either one does not result in devastating data corruption.
Since its introduction in 1996, the USB specification has defined the isochronous transfer type as providing QoS by having "guaranteed bandwidth" with "bounded latency." Because the host performs all of the transfer scheduling in USB, most of the responsibility for delivering on these promises depends on the host in ways that span software, hardware, and the USB protocol.
However, each time the USB protocol is enhanced with a new speed but keeps backward compatibility, modifications are often necessary in hosts and hubs. For example, when the USB 2.0 specification added "High Speed" to existing "Low/Full Speed" devices, the specification also changed the way isochronous transfers were scheduled to maintain the guaranteed bandwidth and latency. USB 2.0 hubs needed a "Transaction Translator" to bridge the gap between a High Speed upstream port and a Low/Full Speed downstream port. Hosts were forced to split their requests to Low/Full Speed devices behind these hubs in order to not affect the bandwidth and latency requirements of isochronous endpoints on High Speed devices.
The same is true with 10G USB 3.1, which offers the first USB specification where two separate speeds of devices will coexist in the same topology on the USB 3.x wires. As shown in Figure 1, significant changes are needed to continue the promise of guaranteed bandwidth and bounded latency, including the following:
- Hub buffering and prioritization rules which can result in packet reordering
- Hosts, hubs, and devices include the transfer type in packet headers
- Additional link layer credit type (Type 1 vs. Type 2) to support the separation of asynchronous (bulk and control) and periodic (interrupt and isochronous) traffic
- Pipelined acknowledgements for isochronous IN traffic
In this article, we explain how each piece of the USB 3.1 topology needs to be modified to support isochronous traffic in a mixed speed environment.