USB Controller Device Enumeration Timing Adjustment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing USB 3.0 peripheral devices often require nearly the full pre-defined time period to identify themselves, leading to potential mis-enumeration as USB 2.0 devices, which limits data transfer rates and user experience, as they cannot re-enumerate as USB 3.0 devices once incorrectly enumerated.

Innovation Solution

A method and apparatus for detecting device connections over multiple resource controllers, where the controller determines parameters associated with the connection to identify the appropriate communication protocol, waiting an additional duration before enumeration if the device is USB 3.0 capable, ensuring accurate enumeration and supporting both USB 2.0 and USB 3.0 protocols via a single connector.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the controller uses the pre-defined time period for device enumeration, then the enumeration process completes within the specified time limit, but USB 3.0 capable devices may be mis-enumerated as USB 2.0 devices, resulting in reduced data transfer rates

Engineering Contradiction:
Improvedevice enumeration accuracyVSAvoiddevice identification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The controller performs preliminary detection of device capabilities before final enumeration. It checks whether the device is USB 3.0 capable during the detection phase, and based on this preliminary information, adjusts the enumeration timing accordingly. This preliminary action prevents mis-enumeration by ensuring the device is properly identified before the enumeration process begins.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The controller dynamically adjusts the enumeration timing based on device type. For USB 3.0 capable devices, it waits an additional duration beyond the default time period to allow the device to fully identify itself. For USB 2.0 devices, it uses the standard enumeration timing. This dynamic adjustment ensures optimal enumeration accuracy for different device types without unnecessarily extending the process for all devices.

Inventive Principle:
Principle #15Dynamics

2Reliability

If the controller waits for the full pre-defined time period before enumeration, then USB 3.0 capable devices can be correctly identified, but the enumeration process exceeds the pre-defined time limit, causing timing violations

Engineering Contradiction:
ImproveUSB 3.0 device identificationVSAvoidenumeration process duration
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The controller performs preliminary detection of device capabilities before final enumeration. It checks whether the device is USB 3.0 capable during the detection phase, and based on this preliminary information, adjusts the enumeration timing accordingly. This preliminary action prevents mis-enumeration by ensuring the device is properly identified before the enumeration process begins.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The controller changes the time parameter dynamically based on device capabilities. For USB 3.0 capable devices, it extends the waiting duration beyond the default time period to ensure proper identification. For USB 2.0 devices, it maintains the standard enumeration timing. This parameter change allows the system to accommodate different device types without consistently exceeding time limits.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If the controller enumerates devices quickly using the default time period, then the enumeration process is efficient and completes within the time limit, but USB 3.0 capable devices are mis-enumerated as USB 2.0 devices, limiting data transfer rates to approximately 40 MB/s instead of exceeding 400 MB/s

Engineering Contradiction:
Improveenumeration efficiencyVSAvoiddata transfer rate optimization
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The controller performs preliminary detection of device capabilities before final enumeration. It checks whether the device is USB 3.0 capable during the detection phase, and based on this preliminary information, adjusts the enumeration timing accordingly. This preliminary action prevents mis-enumeration by ensuring the device is properly identified before the enumeration process begins.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The controller dynamically adjusts the enumeration timing based on device type. For USB 3.0 capable devices, it waits an additional duration beyond the default time period to allow the device to fully identify itself. For USB 2.0 devices, it uses the standard enumeration timing. This dynamic adjustment ensures optimal enumeration accuracy for different device types without unnecessarily extending the process for all devices.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9747237B2Methods and apparatus for reliable detection and enumeration of devices
Publication Date: 2017.08.29 APPLE INC
  • US9747237B2 patent drawing
  • US9747237B2 patent drawing
  • US9747237B2 patent drawing

AI summary

Methods and apparatus for reliable detection and enumeration of devices. In one embodiment, the controller comprises serialized bus protocol (e.g., a Universal Serial Bus (USB)) controller capable of supporting different bus architectures (e.g., USB 2.0 and USB 3.0) of the USB protocol (e.g., eXtensible Host Controller Interface (xHCI) controller). In one variant, when a USB-compliant device is detected over multiple bus architectures of a controller, the controller waits an additional period to allow the device to properly identify which bus architecture to use. After the time period has elapsed, if the device has been determined to be connected over the USB 3.0 bus architecture, the controller waits an additional period of time before enumerating the device. If the device is still present on the USB 3.0 bus architecture, the device continues to enumerate as a USB 3.0 advice to be made available to a host system.