USB Controller Data Pulling and Delayed Pushing for Power Savings

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High data transfer rates from I/O devices to system memory result in short periods of idleness, preventing system components from entering a sleeping mode and reducing power consumption, as existing techniques fail to maintain long periods of idleness during data capture.

Innovation Solution

Implementing a method where a USB controller receives descriptors for data chunks from an I/O device buffer, pulls data at a high rate, and stores it in a local buffer, delaying transfer to system memory until just before processing by an application, thereby allowing system components to enter a sleeping mode for longer durations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is pulled from I/O device buffer at a high rate to system memory, then data transfer speed is improved, but system components cannot enter sleeping mode and power consumption increases

Engineering Contradiction:
Improvedata transfer speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The patent segments the data transfer process into two distinct phases: a high-speed pulling phase where data is rapidly transferred from the I/O device buffer to a local buffer, and a delayed pushing phase where data is transferred to system memory only when needed by the application. This segmentation allows the system to decouple the pulling rate from the pushing rate, enabling components to enter sleeping mode during idle periods between pushes while maintaining high data capture speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by pulling data from the I/O device buffer in advance and storing it in a local buffer before the application actually needs it. This allows the system to complete the time-critical pulling operation at high speed while deferring the memory access operation to a later time, creating an idle period that enables power savings through sleeping mode.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If data is transferred to system memory at high rate, then data availability for processing is improved, but idle time between transfers is reduced preventing power savings

Engineering Contradiction:
Improvedata availability timeVSAvoidpower consumption
Core Design Contradiction:
Loss of timeVSUse of energy by stationary object

Solution Approach 1:

The patent introduces a local buffer as an intermediary component between the I/O device buffer and system memory. This local buffer acts as a staging area that decouples the timing of data pulling from data pushing, allowing the system to maintain high data availability by quickly filling the local buffer while delaying system memory access until the application requires the data, thereby creating opportunities for power savings.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12169430B2Reducing system power consumption when capturing data from a USB device
Publication Date: 2024.12.17 ADVANCED MICRO DEVICES INC
  • US12169430B2 patent drawing
  • US12169430B2 patent drawing
  • US12169430B2 patent drawing

AI summary

Systems and methods are disclosed for reducing power consumed by capturing data from an I/O device. Techniques disclosed include receiving descriptors, by a controller of an I/O host of a system, including information associated with respective data chunks to be captured from an I/O device buffer of the I/O device. Techniques disclosed further include capturing, based on the descriptors, the data chunks. The capturing comprises pulling the data chunks from the I/O device buffer at a pulling rate, where the data chunks are transferred to a local buffer of the I/O host, and pushing segments of the pulled data chunks from the local buffer, where each segment is transferred to a data buffer of the system after a respective target time that precedes a time at which the data chunks in the segment are to be processed by an application executing on the system.