|The original Universal Serial Bus (USB) was driven by the need to provide a user-friendly plug-and-play way to attach external peripherals to a Personal Computer (PC). With the continued trend for more bandwidth driven by larger and faster storage solutions, higher resolution video, and broader use of USB as an external expansion/docking solution, USB 3.1 extends the performance range of USB up to 10GB/s and enhancing data encoding efficiency. USB 3.1 is primarily a performance enhancement to SuperSpeed USB 3.0 resulting in providing more than double the bandwidth for devices such as Solid State Drives and High Definition displays.
Figure 1 shows layered communication architecture of Enhanced SuperSpeed bus
SuperSpeedPlus (USB 3.1) and SuperSpeed (USB 3.0) Comparison:
As it is clear in Figure 1, USB has retained its layered architecture. Let us discuss the enhancements and differences that are introduced in USB3.1 over USB3.0 by dealing them layer wise.
- Data Rate
- SuperSpeedPlus (SSP) support 10Gbps and 5Gbps. SuperSpeed (SS) supports only 5Gbps.
- Data rate negotiation in SSP using LFPS based LBPM communication.
- Data encoding scheme
- SSP uses block data encoding scheme. It uses 128b/132bit encoding. Whereas SS uses 8b/10b encoding scheme.
- Due to this new encoding scheme, bandwidth overhead reduced to 3% from 20%.
- SSP uses new scrambler polynomial.
- SSP introduced new symbols – SKPEND, DPHP & SDS over existing SS symbols.
- In SSP Training sequences are composed of block alignment in addition to bit and symbol alignment.
- SSP uses SYNC OS to determine whether a polarity inversion has occurred. Whereas SS uses TSEQ OS to determine lane polarity inversion.
- Elastic Buffer
- SSP capable of buffering 22 Symbols of data. Whereas SS capable of buffering 8 symbols of data.
- SSP uses SKPEND Symbol to identify the location of the next Block Header in the bit stream.
- Link Training
- SSP transmits SCD1 & SCD2 which is binary representation of PollingLFPS. Whereas SS transmits normal PollingLFPS.
- SSP introduced LBPM, which is LFPS based PWM messaging mechanism.
- Maintains backward compatibility with SS.
- SuperSpeed USB operates at the Gen 1 speed and SusperSpeedPlus USB operates at the Gen 2 speed.
- SSP use block type encoding.
- Two block type defined –
- Control block – to transmit TSEQ, TS1, TS2, SYNC, SDS, and SKP ordered sets
- A data block – to transmit packets, link commands, and Idle Symbols.
- Block structure is given in Figure 2 and Figure 3.
There is a difference in non-deferred DPH packet structure
- Non-deferred SSP DPH is a header packet with its own framing ordered set, and contains a length field replica immediately after the Link Control word. Its shown in Figure 4.
Handling of Premature end of DPP in SSP and SS are different
- In SS USB, any premature termination of a DPP shall end with a DPPABORT ordered set.
- In SSP USB, a port shall always preserve the DPP boundary as specified in length field in DPH.
- Data Payload structure in SSP & SS is depicted in the below Figure 5.
- SSP segregates traffic in two classes. In SS no such segregation exists.
- Type 1 traffic class – includes periodic DPs, TPs, ITPs, and LMPs.
- Type 2 traffic class – includes asynchronous DPs.
- Separate link credits issued for Type 2 class packets and also maintain separate credit timers.
- For SS USB, a special D-Symbol (00h), is defined as Idle Symbol (IS). For SSP USB, a special symbol (5Ah) is defined as Idle Symbol.
- In SSP all ports except upstream port, needs to maintain Link Error Count.
- For SSP operation, upon detecting a Training Sequence error in Polling.Active or Polling.Configuration, the port shall transition to Polling.PortMatch. Whereas in SS the port shall transition to RxDetect (DS) or SSDisabled(US).
- A SSP host may issue simultaneous IN requests, unlike in SS.
- In SSP Packets (DPs and TPs) may be delivered to the intended recipient in out of order.
- Precision Time Measurement (PTM) is introduced in SSP hosts and hubs for precise time measurement. In SS this is sorely missed.
- A new Device Notification TP – Sublink Speed has been added, and it shall be generated by Enhanced SS devices not operating at Gen 1 speed upon entering the Address USB Device State.
- In SSP TPs are given higher priority in during transmission over DPs.
- SSP introduces a new Timers
- tGen2MaxBurstInterval: the time between DPs being bursted from a device endpoint to the host or from the host to a device endpoint.
- tGen2MaxDeviceMultiPacketInterval: Time between DPs being concurrently bursted from different device endpoints to the host.
- tGen2MaxHubMultiPacketInterval: Time between DPs, whether those DPs are for the same or different devices or endpoints.
- SSP hubs and devices shall give higher priority to periodic data packets during transmission.
- SS host is able to accept and send up to 48 DPs per service interval for SS devices. Whereas in SSP host is able to accept and send up to 96 DPs for SSP devices.
- With lot of new features added and also enhanced data rate, SSP will enhanced user experience immensely.
- With the introduction of 128b/132b encoding scheme in SSP over 8b/10b in SS reduces bandwidth overhead from 20% to 3%.
- This enables introduction of many exciting USB products in the market.