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.
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