Overview
USB 3.0 is also called as SuperSpeed USB. This is a latest standard aiming at the on bus bit rate of 5Gbps. This is backward compatible with earlier USB standards and retains over all topology as it is. So as to accommodate very high bit rate and reduce bus turn around time limitation, USB 3.0 defines separate dual simplex transmission and reception differential lines. These lines are present parallel to the USB 2.0 lines so as to manage forward and backward compatibility. Hence a new cable and connector standard is developed.
A new Physical Layer is defined for USB 3.0. Mostly it is built over PCIExpress 2.0 Physical Layer. Additionally it has the LFPS (Low Frequency Periodic Signaling) for signal initialization and low power management. It also boasts a lot of Power management feature.
A new layer Link Layer is introduced starting from USB 3.0. This layer helps in traffic management between the two links connected to each other.
Protocol Layer resembles its predecessor barring few changes. Data bursting is allowed and packets sequence number goes from 0 to 31. Separate transmission and reception line is used to improve effective through put.
Many error detection mechanisms are used in USB 3.0. All packets are attached with CRC fields. Based on the size and type of the packet, CRC5, CRC16 and CRC32 are used. Apart from indirect error detections like out of sequence packets are also available. Separate error handling mechanism at Link Layer level and at Protocol Layer level are defined. Hence the communication is more robust even at very high bit rate.
Many power management features are introduced in USB 3.0. A super speed Host doesn't poll an endpoint like its wired predecessor. An endpoint when ready will have to inform Host using notices. These notices are asynchronous in nature. Once an endpoint is not ready for the data transfer, host removes that from the list of active endpoints. Apart from this based on activity of the bus, there are low power states to which the link layer moves into.
Inno-Logic USB 3.0 SuperSpeed Device controller IP compliant with USB3.0 spec1.0 and AXI interface
Topology
SuperSpeed USB retains the familiar concepts and mechanism and support for endpoints, pipes and transfer types. It retains familiar single tiered star bus topology with Hubs playing important role being center or star. Endpoints characteristics are reported in endpoint descriptors. Along with earlier descriptors few SuperSpeed specific companion descriptors are also introduced. As in previous versions of USB even here address triplets are used to identify endpoint.
SuperSpeed hubs are more complex than earlier hubs. SuperSpeed Hubs are not mere repeaters. Unlike earlier Hubs packets arriving at upstream port of a SuperSpeed hub are not broadcasted on all downstream ports. Only those packets that are directed for a particular downstream are sent to that port. This is ensured by having a unique address in each packet, which is used by hubs in the network.
Protocol Overview
Over all SuperSpeed protocol is based on USB 2.0 protocol. However there are many differences also. Few such differences are:
- SuperSpeed uses dual simplex connection. Hence packets arrive and leave at the same time.
- OUT token is removed. Instead it is incorporated with in Data Packet. IN token is replaced by the Handshake packet.
- SuperSpeed supports continuous bursting for all types of functional data transfers.
- SuperSpeed is a dual simplex unicast bus. This allows concurrent IN and OUT transactions.
- Polling mode is replaced by asynchronous notices.
- A new concept of Streaming is introduced for Bulk transfers.
- Isochronous endpoint can also enter low power state. PING wakes the endpoint up just before actual data transaction.
- Bust interval boundary marked using special packets - Isochronous Timestamp Packets. Also there is mechanism where in Bust Interval can be adjusted.
- Error detection and recovery is distributed between end to end level and at link level.
Transfer Types
As in earlier versions of USB standard, USB 3.0 retains all four transfer types namely, Control, Bulk, Interrupt and Isochronous transfers. Control transfer uses message pipe and it is the default pipe. Other transfers uses stream pipe.
Control Transfer is used for the initialization and bus management. The message pipe used for the control transfer should be the default pipe available on each device. Control transfer is used to access device descriptors. SuperSpeed system will make a best effort to support delivery of control transfers between Host and Devices. Maximum payload size for any Control Transfer is 512 bytes and burst size is one. A default Control Pipe must support a maximum sequence value of 32.
Bulk Transfer similar to that was in USB 2.0. Bulk transfer is used to transfer large amount of data with no timing criticality. Bulk Transfer uses any available SuperSpeed bandwidth. Maximum Packet size for a Bulk transfer is 1024 bytes. If the bulk transfer has more data than 1024, then all packets accept the last one must be of 1024 bytes in size. Last packet may have less number of data. Allowable burst size for bulk transfer is 1 to 16 and sequence numbers are 0-31.
Bulk Streams is a new scheme introduced in USB 3.0. A standard Bulk pipe is able to move a single stream of data. A SuperSpeed Streams provides protocol level support for the multi stream data transfer. Each stream is assigned with a Stream ID (SID). Streams extend the number of host buffers accessible by an endpoint from 1 to 65533. There is 1:1 mapping between host buffer and the Stream ID.
Interrupt Transfer used for the high reliable periodic small amount of data between Host and Device. SuperSpeed Interrupt Transfer may have burst size up to 3. If the burst size is more than 1, then the maximum packet size is 1024. If the burst size is 1 then the maximum packet size may be anything equal to or less than 1024 bytes. All SuperSpeed Interrupt endpoint must support all sequence values from 0 to 31. Sequence value continues across the Service Interval.
Isochronous Transfer is used for time critical periodic data transfer. SuperSpeed Isochronous endpoint must support maximum packet size of 1024 for burst size more than one and anything between 0-1024 bytes if the burst size is 1. Maximum allowable burst size is 16. In one service interval maximum of 3 such bursts might be requested. There is no retry of corrupted data packet.
Layers Detail
Physical Layer - It has 2 differential pairs with dual simplex configuration. Support maximum of 3 meter length of cable. It is based on existing similar high speed serial buses - PCIe/SATA. Has Low Frequency Periodic Signaling (LFPS) which is similar to beaconing in PCIe. Rx termination for connect/disconnect detection. This also has 8 to 10 bit encoder/decoder and data scrambler/descrambler for better robustness.
Link Layer - It has the duty of training, controlling and coordination with link partner. It has many redundancies and encoding techniques with retries to minimize undetectable error rate. Header packets are stored and forwarded. Link level retried ensures error free delivery. Data Packets are the compounded packet which always associated with header packets. Link commands are used to handle link level flow control, power state transition, link level packet acknowledgements etc.
Protocol Layer - Preserve USB device model and transaction types. No polling is allowed in SuperSpeed Protocol Layer. This is replaced by the asynchronous notices for coming out of flow control situation. This is backward compatible - existing class drivers continue to work with SuperSpeed devices. Short packet and STALL semantics are retained from the earlier USB standards. IN and OUT tokens don't exist. OUT token information is embedded with in Data Packet and IN token is replaced by Handshake packet. Concurrent IN and OUT transaction is possible due to the availability of separate busses for transmission and reception. ACK packets carry the information of sequence number of the Data Packet and the number of packets that can be received.
Inno-Logic USB 3.0 SuperSpeed Device controller IP compliant with USB3.0 spec1.0 and AXI interface
Power Management Primitives
At every SuperSpeed layer one or the other power conserving methods are used. Few such methods layer wise is listed below -
- Physical Layer
- Dual Simplex connection. No need to turn bus around.
- Low Frequency Periodic Signaling.
- Link Layer
- Low power states are entered when no activity.
- Trade lower power for increased latency.
- U0 - Operational state.
- U1 - Link Idle with fast exit. PLL remains ON.
- U2 - Link Idle with slow exit. PLL may be OFF.
- U3 - Suspend. Very low power consumption.
- Protocol Layer
- Deferring and asynchronous notices.
- Packet pending flag. Helps in entering lower power state.
- Ping/Ping responses.
- ITP Packets. No need to SOF packets.
Conclusion
|