USB Host Controller Interrupt Polling for Bandwidth Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata reception latencyVSAvoidoverall USB bus throughput
Core Design Contradiction:
Loss of timeVSProductivity

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.

Inventive Principle:
Principle #19Periodic action

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improvedata transfer latencyVSAvoidUSB bandwidth consumption
Core Design Contradiction:
Loss of timeVSQuantity of substance

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.

Inventive Principle:
Principle #19Periodic action

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.

Inventive Principle:
Principle #25Self-service

3Reliability

If polling mechanism is used to ensure data reception, then data transfer reliability is maintained, but host resources are consumed for indeterminate periods

Engineering Contradiction:
Improvedata transfer reliabilityVSAvoidhost resource occupation time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #19Periodic action

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7409485B1Optimized data transfer for a data bus
Publication Date: 2008.08.05 CISCO TECHNOLOGY INC
  • US7409485B1 patent drawing
  • US7409485B1 patent drawing
  • US7409485B1 patent drawing

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.