USB Host Controller Interrupt Polling for Bandwidth Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The USB polling mechanism for network adapters consumes excessive host resources and bandwidth, leading to decreased overall throughput and inefficient operation of other USB devices due to continuous bulk-IN token generation and NAK responses, even when no new data is received.
Innovation Solution
Implementing a communications system where the slave device reports an initial amount of data to be transferred, allowing the host to initiate a data transfer, and using a self-decrementing counter to track unreported packets, with supplemental data reporting appended to bulk-IN data payloads, and employing interrupt polling to minimize host resource consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If continuous bulk-IN polling is used to maintain minimal data transfer latency, then data reception latency is reduced, but host resource consumption and USB bandwidth usage increase excessively
Solution Approach 1:
The patent implements interrupt-driven polling where the host controller polls the USB network adapter at periodic intervals to check for available data packets. This periodic action replaces continuous polling, reducing host resource consumption and USB bandwidth usage while maintaining acceptable data reception latency. The host controller only initiates bulk-IN transfers when data is actually available, rather than continuously polling regardless of data presence.
Solution Approach 2:
The USB network adapter provides feedback to the host controller by setting a bit in a status register to indicate when data packets are available for transfer. This feedback mechanism allows the host to respond only when necessary, eliminating wasteful continuous polling. The host controller checks the status register during periodic interrupts and initiates bulk-IN transfers only when the data available indicator is set, optimizing both latency and resource utilization.
2Loss of time
If continuous bulk-IN tokens are transmitted to poll for packet reception, then data transfer latency is minimized, but USB bandwidth is consumed excessively by NAK responses
Solution Approach 1:
The host controller transmits bulk-IN tokens periodically through interrupt-driven polling rather than continuously. This periodic transmission reduces the quantity of USB bandwidth consumed by tokens and NAK responses, as tokens are only sent when data is actually available. The status register feedback mechanism ensures that bulk-IN tokens are transmitted only when the data available indicator is set, eliminating wasteful bandwidth consumption.
Solution Approach 2:
The USB network adapter autonomously manages its own data availability status by setting the appropriate bit in the status register when packets are received. This self-service approach eliminates the need for the host to continuously poll for data, as the adapter automatically signals when data is ready. The host controller simply responds to these self-generated signals, reducing overall USB bandwidth consumption while maintaining efficient data transfer.
3Reliability
If polling mechanism is used to ensure data reception, then data transfer reliability is maintained, but host resources are consumed for indeterminate periods
Solution Approach 1:
The host controller uses periodic interrupt-driven polling to check for data availability, maintaining reliable data transfer while limiting host resource occupation to specific time intervals. During each periodic interrupt, the host controller checks the status register and initiates bulk-IN transfers only when necessary. This periodic approach ensures data transfer reliability while confining host resource consumption to discrete time periods rather than continuous occupation.
Solution Approach 2:
The status register provides feedback to the host controller about data availability, enabling the host to respond reliably only when needed. This feedback mechanism maintains data transfer reliability by ensuring the host is notified of all available data, while simultaneously reducing host resource occupation time by eliminating unnecessary polling cycles. The host controller processes data transfers in response to actual data availability signals rather than continuous polling.
Data Source
AI summary
A communications system is provided in which a host may receive data from a slave device over a polling bus. The slave device first reports to the host an initial amount of data to be transferred. The host can then initiate a data transfer from the slave device in order to retrieve the specified amount of data. As that initial data is being transferred over the bus, if additional data to be transferred to the host is received by the slave device, the slave device will report that supplemental amount of data to the host along with the initial data. The host may then immediately schedule a supplemental data transfer from the slave device in order to retrieve the additional data. The slave device may utilize a self-decrementing counter in order to keep track of the packets that require transfer but have not yet been reported to the host. The amount of data reported by the slave device to the host device may be provided as a count of packets in which the packets have a predetermined maximum size.


