Descriptor Prefetch Mechanism for High Latency DMA Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High latency environments in DMA systems lead to data bus stalls and inefficiencies due to the need for sequential descriptor fetching and processing, which is not effectively managed by existing DMA controllers.

Innovation Solution

A DMA device with a descriptor prefetch buffer that assumes sequential descriptor storage, prefetches multiple descriptors, and discards non-sequential ones, maintaining a full buffer by requesting additional descriptors whenever possible, and using an aggressive prefetch in high latency conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If descriptors are fetched sequentially from memory in a high latency environment, then the DMA device can process descriptors in order, but data bus stalls occur and transfer efficiency decreases

Engineering Contradiction:
Improvedescriptor processing correctnessVSAvoiddata transfer efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a descriptor prefetch buffer that fetches multiple descriptors from memory in advance before they are needed for processing. The DMA device proactively loads descriptors into the prefetch buffer during idle periods or in parallel with data transfers, so that when a descriptor is needed for processing, it is already available in the buffer rather than waiting for memory fetch. This preliminary action eliminates data bus stalls and maintains continuous operation, resolving the contradiction between processing correctness and transfer efficiency.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the DMA device waits for descriptor memory operations to complete before starting data block moves, then configuration registers are properly updated, but overlapping operations cannot occur and throughput is reduced

Engineering Contradiction:
Improveconfiguration register update accuracyVSAvoidoperational throughput
Core Design Contradiction:
ReliabilityVSPower

Solution Approach 1:

The patent separates the descriptor fetch operation from the data block move operation by introducing a dedicated prefetch buffer. Descriptors are fetched into the buffer independently of the data transfer operations. The DMA device can then process descriptors from the buffer while simultaneously performing data block moves, allowing overlapping of configuration updates and data transfers. This segmentation resolves the contradiction by enabling both reliable register updates and high throughput operations to occur in parallel.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If the DMA device uses a linked list architecture for flexibility, then dynamic descriptor management is enabled, but sequential access assumptions may be violated causing processing delays

Engineering Contradiction:
Improvedescriptor management flexibilityVSAvoidprocessing delay
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The prefetch buffer pre-loads multiple descriptors from the linked list into contiguous buffer slots in advance. Even though the linked list may have non-sequential memory addresses, the prefetch mechanism fetches multiple descriptors proactively before they are needed. This preliminary action compensates for the non-sequential nature of linked lists, ensuring that descriptors are ready for processing without delays. The buffer acts as a buffer against the irregular access patterns inherent in linked list structures, maintaining both flexibility and timing efficiency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7620749B2Descriptor prefetch mechanism for high latency and out of order DMA device
Publication Date: 2009.11.17 MELLANOX TECHNOLOGIES LTD(IL)
  • US7620749B2 patent drawing
  • US7620749B2 patent drawing
  • US7620749B2 patent drawing

AI summary

A DMA device prefetches descriptors into a descriptor prefetch buffer. The size of descriptor prefetch buffer holds an appropriate number of descriptors for a given latency environment. To support a linked list of descriptors, the DMA engine prefetches descriptors based on the assumption that they are sequential in memory and discards any descriptors that are found to violate this assumption. The DMA engine seeks to keep the descriptor prefetch buffer full by requesting multiple descriptors per transaction whenever possible. The bus engine fetches these descriptors from system memory and writes them to the prefetch buffer. The DMA engine may also use an aggressive prefetch where the bus engine requests the maximum number of descriptors that the buffer will support whenever there is any space in the descriptor prefetch buffer. The DMA device discards any remaining descriptors that cannot be stored.