USB Transaction Translator Ping-Pong Buffer Bandwidth Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing USB 3.0 transaction translators (U3TT) do not effectively utilize the USB 2.0 bus bandwidth, leading to decreased system performance in bulk data transfers between USB 2.0 devices and USB 3.0 hosts, as most steps in the current IN/OUT bulk transaction methods do not utilize the USB 2.0 bus.
Innovation Solution
A USB 3.0 transaction translator with a device interface, host interface, and ping-pong buffers, where data is pre-fetched and stored in buffers before being sent to the host in IN bulk transactions, and post-written to the device in OUT bulk transactions, optimizing bandwidth usage by alternating data storage between two buffers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the conventional IN/OUT bulk transaction method is used in USB 3.0 host with USB 2.0 device, then the USB 2.0 device can be upgraded to act as a quasi-USB 3.0 device, but the USB 2.0 bus bandwidth is not effectively utilized and system performance decreases
Solution Approach 1:
The transaction translator pre-fetches data from the USB 2.0 device and stores it in buffers before the host actually needs the data. This preliminary data retrieval and buffering allows the host to receive data continuously without waiting for the slow USB 2.0 bus transfers, thereby resolving the contradiction between maintaining USB 2.0 compatibility and achieving high bandwidth utilization.
Solution Approach 2:
The transaction translator acts as an intermediary between the USB 3.0 host and USB 2.0 device, introducing buffers as an intermediate storage layer. This intermediary structure decouples the fast USB 3.0 host interface from the slow USB 2.0 device interface, allowing the host to operate at high speed while the device communicates at USB 2.0 speed, thus resolving the bandwidth utilization issue.
2Reliability
If data is transferred step-by-step in conventional bulk transaction, then data correctness is guaranteed, but transfer speed and bandwidth usage are reduced
Solution Approach 1:
The system performs preliminary data fetching and buffering before the host requests data. By pre-loading data into buffers, the system ensures data is ready for immediate transfer, maintaining reliability while dramatically improving transfer speed. The controller manages this pre-fetching to ensure data correctness is maintained.
Solution Approach 2:
The buffering mechanism enables continuous data transfer from the host perspective, as data is continuously available in buffers rather than being transferred step-by-step. This continuity maintains data correctness through controlled buffering while eliminating transfer speed limitations of sequential USB 2.0 transfers.
3Ease of operation
If multiple steps are executed in IN bulk transaction before data transfer, then protocol requirements are met, but system performance decreases due to non-USB 2.0 bus operations
Solution Approach 1:
The transaction translator executes preliminary buffer filling operations during the IN bulk transaction setup phase, before the actual data transfer begins. This pre-computation of buffer contents allows the subsequent data transfer to proceed rapidly without repeated protocol steps, maintaining protocol compliance while boosting system performance.
Solution Approach 2:
The buffers serve as an intermediary that absorbs the complexity of protocol compliance. The transaction translator manages protocol requirements by pre-processing data into buffers, thereby simplifying the actual data transfer operation and improving system performance while maintaining ease of operation.
Data Source
AI summary
The present invention is directed to a universal serial bus (USB) transaction translator and an associated IN/OUT bulk transaction method. A device interface is coupled to a device via a device bus, and a host interface is coupled to a host via a host bus, wherein the host USB version is higher than the device USB version. At least two buffers configured to store data are disposed between the device interface and the host interface. A controller stores the data in the buffers alternately. In a bulk-IN transaction, before the host sends an IN packet, the controller pre-fetches data and stores the data in the buffers until all the buffers are full or a requested data length has been achieved; the pre-fetched data are then sent to the host after the host sends the IN packet. In a bulk-OUT transaction, the controller stores the data sent from the host in the buffers, and the data are then post-written to the device.


