Scatter Gather Cache for DMA Address Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current DMA technologies face inefficiencies due to the need to traverse scatter-gather lists for non-contiguous memory fragments, leading to performance degradation and error risks, particularly when handling arbitrarily sized and aligned fragments across multiple memory spaces.

Innovation Solution

A scatter-gather cache module that pre-fetches and stores SG element context, allowing backward traversal and error recovery, by modifying and compressing SG element information and using a cache to present a contiguous buffer view to the DMA master.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the DMA controller traverses scatter-gather lists to handle non-contiguous memory fragments, then it can support arbitrary fragment sizes and alignments, but performance degrades due to the traversal overhead

Engineering Contradiction:
Improvesupport for arbitrary fragment sizes and alignmentsVSAvoidDMA transfer performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent pre-calculates and stores cumulative offset values in the scatter-gather list entries during list construction. This preliminary action eliminates the need for runtime traversal and cumulative calculations, allowing the DMA controller to directly compute fragment addresses using the pre-stored offset data, thus resolving the performance degradation caused by traversal overhead while maintaining support for arbitrary fragment sizes and alignments

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If the scatter-gather list is stored in memory, then it can accommodate multiple descriptors, but access time increases due to memory latency

Engineering Contradiction:
Improvemultiple descriptor supportVSAvoiddescriptor access time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements a hierarchical structure where descriptor tables are nested within memory spaces, and scatter-gather lists are nested within descriptors. This nesting allows the system to organize multiple descriptors efficiently in memory while providing direct access paths through the hierarchical structure, reducing memory access latency compared to flat memory storage

Inventive Principle:
Principle #7Nested doll (Nesting)

3Speed

If the scatter-gather list is modified to include cumulative offsets, then address calculation becomes faster, but the element size increases

Engineering Contradiction:
Improveaddress calculation speedVSAvoidscatter-gather element size
Core Design Contradiction:
SpeedVSLength of stationary object

Solution Approach 1:

The patent changes the parameter representation in scatter-gather elements by storing cumulative offsets instead of individual fragment offsets. This parameter transformation enables direct address calculation through simple subtraction operations, significantly improving address calculation speed. The increase in element size is accepted as a trade-off for the substantial performance improvement in address computation

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8176252B1DMA address translation scheme and cache with modified scatter gather element including SG list and descriptor tables
Publication Date: 2012.05.08 MICROSEMI SOLUTIONS US INC
  • US8176252B1 patent drawing
  • US8176252B1 patent drawing
  • US8176252B1 patent drawing

AI summary

A scatter gather element based caching system is provided along with a modified scatter gather element, that supports efficient logical to physical address translation for arbitrarily aligned and arbitrarily sized fragment (segment) based memory management schemes. This is different from modern CPU implementations with MMUs that support page-based implementations. A primary application of embodiments of the present invention is in DMA applications. The system enables frequent switching of contexts between I/Os using a novel caching technique. An embodiment of the present invention also includes the modification of the conventional scatter-gather element used in DMA for supporting multiple memory spaces, backward list traversals, better error recovery and debugging.