草榴社区

USB 3.1: Physical, Link, and Protocol Layer Changes

By Matthew Myers, Sr. Staff R&D Engineer, and Kuyil Shanmugasundaram, Sr. Corporate Applications Engineer, 草榴社区

 

With USB 3.1 products expected to start hitting the market in early to mid 2015, many SoC designers are already ensuring that their customers have access to the features offered with the new specification. While the specification may seem to be a simple upgrade from USB 3.0's 5 Gbps to USB 3.1's 10 Gbps speeds, changes to the physical layer, link layer, and protocol layer are critical to the successful implementation of this specification. This article will provide an overview of the changes in USB 3.1, including the enhancements in the various layers.

Why USB 3.1?

The USB 3.1 specification supersedes the USB 3.0 specification, so one specification describes both protocols. It is backward compatible with USB 3.0 and it is also backward compatible with USB 2.0 and 1.1. Most importantly, there are no changes expected in the software stack, so the existing host drivers can take advantage of USB 3.1 speeds.

Applications including media storage, flash drives, hard drives, media creators such as video cameras or digital cameras, wireless, set top boxes, digital TVs, tablets and smartphones, and docking stations will all benefit from the 10 Gbps speeds offered with USB 3.1. As shown in Table 1, a 25 GB movie could be transferred from a USB 2.0 hard drive in 14 minutes. With USB 3.0, that same movie requires about 70 seconds, and USB 3.1 (SuperSpeedPlus) needs only thirty five seconds.

Table 1: Comparison of four USB generations

Physical Layer Changes for USB 3.1

USB 3.1 brings changes in every layer for both the host and device, including hubs that are in-between. But one of the ideas in USB 3.1 is to not require changes to the software, so a hardware-based, enhanced SuperSpeed device notification mechanism was introduced so that devices can communicate with hosts at a lower layer and report that they are operating at this higher rate. New SuperSpeedPlus host controllers must utilize this extra bandwidth without requiring changes to the existing host drivers.

Type-C Connector

The new USB 3.1 physical layer supports a 10 Gbps data rate which requires some electrical enhancements to the connector and to the cables. The new rate is backward-compatible with USB 3.0 connectors but also can use the new Type-C connector, which has the same shape for both host and device and also supports the ability to flip either the connector or the cable.

The Type-C Connector is smaller and thinner than the existing connectors. The Vbus has been increased from 5.25V to 5.5V and it also has more than twice as many pins to support the ability to flip the cable or the connector. USB Power Delivery (along with its ability to provide power up to 20V at 100W which works well for docking stations) is also supported with Type-C connectors and cables using a separate configuration channel.

Repeaters

The higher frequency involved with the 10 Gbps data rate means that there is a good chance that system designers will need to include repeaters. If the host or device loss is greater than 7dB at 5GHz, a repeater may be necessary on both the host and the device to travel across the cable.

These repeaters cannot be simple. Analog redrivers and bit-level retimers are out of scope for the specification, so they must comply with the transmitter and receiver specifications the same as the host or device. They have to implement elastic buffers, skip insertion and removal, and also have to support LPM commands, LFPS, and the new speed negotiation that happens in LPBM. Every repeater must also be backward-compatible with the Gen1 link training state machine (LTSSM).

Link Layer Changes for USB 3.1

The new SuperSpeedPlus link layer tries to preserve the SuperSpeed link layer architecture with minimal changes. There are extensions in link flow control but they use similar packet framing and a similar LTSSM structure. The goal of SuperSpeedPlus is to match or exceed the SuperSpeed error performance.

Encoding

SuperSpeed posed a problem because a single bit error could cause the link to go into recovery in two cases: with skip ordered sets or with start link commands. This caused an error rate of up to 5.7^-15.

SuperSpeed Plus offers a new encoding scheme called 128b/132b. In SuperSpeed, the symbol encoding was using 8b/10b, and that meant that every symbol was represented by 10 bits. This also meant that normal data bytes were represented by 10 bits, and this caused a 20% overhead. SuperSpeedPlus encoding has 128 bits that are represented by 132 bits on the line. This results in only a 3% bandwidth overhead. As you can see in Figure 1, a 132 bit block has 128 bits of payload and a 4-bit header that notes whether it's a data block or a control block.

Figure 1: USB 3.1 128b/132b encoding reduces bandwidth overhead 

USB 3.1 uses two block types: a control block with the header set to 1100, and a data block with the header set to 0011. With four bits, if one of the bits gets flipped, the design can actually correct that flip. A 1-bit-error situation is self-correctable and does not go to recovery. However, if 2 bits flip, the design can detect that problem and go to recovery.

One interesting note is that other protocols such as PCI Express use 128/130 encoding. If USB 3.1 had used the same encoding, the error rates due to 1-bit error would go all the way to 1.4^-14, which is about 2.6X worse than SuperSpeed.

The SuperSpeedPlus packet structure starts with the data packet header. The data packet header has two different encodings, depending on whether it's a deferred or non-deferred packet. In all of these data packet headers, the length field is actually replicated to create two copies of the same length field. The data packet payload cannot be truncated.

In SuperSpeed, 8b/10b encoding enabled designers to detect framing symbols very easily because every byte had four different possibilities. However, in 128b/132b, there are no distinctive symbols for the framing ordered sets. To avoid detecting these framing ordered sets within a packet, the payload length must match the size mentioned in the packet header. If the transmitter cannot provide all of the data, it is required to pad the rest with Logical Idle symbols (0x5A in SSP) until it matches that length field.

Traffic Classes

The link layer of USB 3.1 includes two traffic classes, whereas in SuperSpeed there is only one. Type 1 traffic refers to transaction packets, link management packets, isochronous time-stamped packets, periodic data packets and deferred data packet headers. Type 2 is only for asynchronous data packets so that Type 1 traffic can have a higher priority over Type 2 traffic. This is one way that SuperSpeedPlus helps to make sure that isochronous transactions can meet their bandwidth requirements.

In SuperSpeed, the buffer credits that covered the data packet headers now cover the data packet headers plus the payload, replacing the header buffer credit from SuperSpeed. This helps with payload flow control and it actually represents the amount of receive buffer in a receiver that can store a single data packet.

Start-up Speed Negotiation Protocol

USB 3.1 introduces a new start-up speed negotiation protocol. The goal of this protocol is to get the link up to the highest rate supported by both devices. The way this works is that it uses the low frequency periodic signal (LFPS) that was introduced in USB 3.0 and it changes it slightly to turn into a pulse width modulation message, called the LFPS-Based PWM Messaging (LBPM).

The LBPM works by the transmitter driving its LFPS for about a quarter of a period to say that this is a "logic 0." It drives its LFPS for about three quarters of the period to say that it is a "logic 1." With this zero/one encoding, the transmitter and receiver can actually talk to each other before the link has even trained to either the 5 Gbps or the 10 Gbps rate.

Inside of the LTSSM is a new set of states to support this protocol. During the states the two sides are negotiating to try to find out what is the highest rate that the two sides can support.

The differences between SuperSpeed and SuperSpeedPlus on the link layer are summarized in Table 2.

Table 2: Summary of link layer changes

Protocol Layer Changes for USB 3.1

The most important change to the protocol layer is the addition of Multiple IN support. Multiple INs allow hubs to maximize the throughput and adds ordering rules. In addition, the protocol layer:

  • Added Precision Time Management (USB 3.0 ECN)
  • Added a new field for Transfer Type
  • Enhanced the Route String field to include a weight for device-to-host DPs
  • Increased isochronous maximum bandwidth
  • Removed NumHP, Link Speed fields in configuration LMPs, and bus Interval Adjustments

Multiple INs

Multiple INs represent one of the most important changes in USB 3.1 because it allows designers to take advantage of the SuperSpeedPlus bandwidth. The goal of Multiple INs is to maximize the bandwidth utilization. Figure 2 shows a SuperSpeedPlus host connected to a SuperSpeedPlus hub. Downstream from that hub is an existing SuperSpeed device that runs at 5 Gbps and a new SuperSpeedPlus device that runs at 10 Gbps. Without Multiple INs, a lot of bandwidth is wasted while the 5 Gbps device is transmitting upstream. With Multiple INs, the hosts sends an IN request to both devices and the hub buffers up the data that it is coming in at a slower rate from the 5 Gbps device, and transmits it whenever there is space on the upstream port, making full use of the available bandwidth. One of the side effects is that the hubs need more buffering because they need to hold that packet before they transmit it upstream.

Figure 2: Multiple INs allow systems to take advantage of 10 Gbps USB 3.1 speeds 

More information on Multiple INs available in the article Achieving 10 Gbps Data Rates in USB 3.1 Using Multiple INs and Hub Payload Buffering

Transaction Packet Labeling

Another addition to the protocol layer is transaction packet labeling. In addition to the link layer using different types of traffic classes to describe asynchronous and periodic, the protocol layer uses transfer type labels which will actually identify the packet as belonging to control, isochronous, interrupt, or bulk.

Hub Changes for USB 3.1

Maximizing the upstream bandwidth usage by SuperSpeedPlus hubs is accomplished by using Multiple INs, extra buffering, and adding store-and-forward. The hub is responsible for arbitrating packets. It prioritizes the periodic packets over the asynchronous packets. For example, periodic data packets have a higher priority than asynchronous data packets. Also, within the periodic or asynchronous data packets it performs round robin arbitration. Last, the hub always prioritizes transaction packets over data packets and in this way there may be a reordering that happens in the hub. This is a significant change from SuperSpeed, where there is no reordering.

Hub Depth Aware Arbitration

Packet forwarding in SuperSpeedPlus hubs is required to allow fair arbitration between devices even if they exist in the lower layer of the topology. Figure 3 shows some devices at the very bottom that are connected through three layers of hubs and the weighted sum algorithm that hubs use is meant to allow all of the devices in this topology fair access to the host. Each packet gets a weight and ports with heavier weights get more turns in the arbitration algorithm.

The initial weight of the packet depends on the speed of the packet. For example, the weight for a Gen1 packet is 4 and a Gen2 packet is 8. The weight of the packet from the hub is the sum of all weights of all the active downstream devices. Using this algorithm, devices at the lowest layer still get fair access to the bandwidth on the host.

Figure 3: Weighted sum algorithm gives every device fair access to the host 

Transaction Packet Labeling

The transaction packet labeling that was added in SuperSpeedPlus needs some help from SuperSpeedPlus hubs because SuperSpeed devices and SuperSpeed hubs don't add this new transfer type. SuperSpeedPlus hubs have to remember whenever there is a transfer going downstream to a SuperSpeed device or a SuperSpeed hub, and when the response comes back upstream, it needs to attach this transfer type label so that the rest of the hierarchy knows what type of transfer this packet is for.

Increased Buffer Requirements

The increased buffer requirements for SuperSpeedPlus hubs are a significant change for SuperSpeedPlus. Figure 4 shows a SuperSpeedPlus hub that is connected to a Gen1 device on one port, and a Gen2 device on another port. Because we are performing Multiple INs to these two devices, the data packets are coming upstream at the same time. However, because the Gen1 device is taking so much longer to send its packets they need to be buffered up in the hub. On the upstream link of the hub, you can see that it is switching back and forth between the Gen2 device and the Gen1 device. Because the Gen1 device is inserting its packets every three rounds, the hub actually needs to buffer up one extra packet from the SuperSpeedPlus device. In general for the upstream flow per downstream facing port, the SuperSpeedPlus hub needs an extra 16KB of buffer for asynchronous packets, an extra 16KB of buffer for periodic packets, and enough space for sixteen data packet headers. Per hub for the downstream flow, the hub needs 18K asynchronous, 18K for the periodic and 18 header buffers.

Figure 4: SuperSpeedPlus hub buffering upstream packets 

Summary

With 10 Gbps data rates and the new Type-C connector, the changes in the USB 3.1 specification will bring an enhanced user experience to the market. Designers must be aware of the physical layer, link layer, and protocol level changes to comply with the new standard and take advantage of the increased bandwidth available.

For more information visit: