DMA Bandwidth Control via Independent Throttle Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional direct memory access (DMA) operations face inefficiencies when transferring data between devices of differing speeds, leading to bandwidth constraints that limit available bandwidth for higher speed devices due to filled request queues.

Innovation Solution

Implementing separate source and destination throttle controls for each DMA job within the DMA unit, allowing for independent throttling of read and write requests to manage bandwidth effectively, thereby preventing slower devices from blocking faster devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If DMA operations transfer information between higher speed and lower speed devices using shared request queues, then data transfer capability is improved, but request queues fill up causing bandwidth constraints for higher speed devices

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidbandwidth availability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the single shared request queue into separate request queues for different devices. Each device has its own dedicated request queue, which prevents slow devices from blocking fast devices. This segmentation allows independent management of data transfer requests for each device, resolving the bandwidth constraint issue while maintaining efficient data transfer capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by providing device-specific request queues with individual throttle control mechanisms. Each request queue can be independently throttled based on the specific device's capabilities and requirements. This allows optimized bandwidth management for each device type, ensuring that fast devices can utilize their full bandwidth capability without being constrained by slow devices.

Inventive Principle:
Principle #3Local quality

2Reliability

If separate source and destination throttle controls are implemented for each DMA job, then bandwidth management is improved, but device complexity increases

Engineering Contradiction:
Improvebandwidth managementVSAvoidthrottle control structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by pre-configuring throttle control parameters in the DMA job description before data transfer begins. The throttle control unit reads these pre-set parameters and applies appropriate throttling without requiring real-time complex calculations or decisions. This preliminary configuration approach simplifies the runtime control mechanism while maintaining effective bandwidth management.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The throttle control unit operates autonomously based on pre-configured parameters, making self-service decisions about when to allow or delay data transfer requests. The system automatically manages bandwidth without requiring external intervention or complex coordination between multiple components, reducing overall system complexity while maintaining reliable bandwidth control.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8447897B2Bandwidth control for a direct memory access unit within a data processing system
Publication Date: 2013.05.21 TAIWAN SEMICONDUCTOR MANUFACTURING CO LTD
  • US8447897B2 patent drawing
  • US8447897B2 patent drawing
  • US8447897B2 patent drawing

AI summary

A method for controlling bandwidth in a direct memory access (DMA) unit of a computer processing system, the method comprising: assigning a DMA job to a selected DMA engine; starting a source timer; and issuing a request to read a next section of data for the DMA job. If a sufficient amount of the data was not obtained, allowing the DMA engine to wait until the source timer reaches a specified value before continuing to read additional data for the DMA job.