DMA Engine Scatter-Gather Data Transfer for PCI Bus Delays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data transfer delays occur in processing systems using PCI buses due to the target device not being ready to transfer data, affecting system performance.

Innovation Solution

A data processing device equipped with a DMA engine that receives data from a bus, processes it using a contiguous scatter-gather list, and writes the configured data back to the bus, optimizing data transfer by acting as a PCI master for faster writes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is read from a device by a PCI master, then data transfer can occur, but the data may be delayed due to the target device not being ready to transfer data

Engineering Contradiction:
Improvedata transfer rateVSAvoiddata transfer delay
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent introduces a DMA engine as an intermediary device between the PCI bus and memory. The DMA engine receives data from the PCI bus and independently manages the data transfer to memory using scatter-gather lists, eliminating the need for the processor to wait for memory readiness. This intermediary handles the data transfer autonomously, resolving the timing mismatch between data production and consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system prepares scatter-gather lists in advance that describe the memory destination structure before data arrives. The DMA engine uses these pre-configured lists to immediately direct incoming data to the appropriate memory locations without waiting for memory readiness signals, thereby eliminating delays caused by target device unavailability.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the processor acts as PCI master to write data to memory, then data transfer can occur, but system performance is affected due to delays

Engineering Contradiction:
Improvesystem performanceVSAvoiddata transfer delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts the data transfer function from the processor by implementing a dedicated DMA engine. The processor is removed from the data transfer path entirely, allowing it to focus on computation while the DMA engine handles all data movement operations. This separation eliminates the processor's involvement in waiting for memory readiness, thereby improving overall system performance.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The DMA engine operates autonomously to manage data transfer without processor intervention. It self-configures using scatter-gather lists and independently executes the data movement to memory, making the system self-sufficient in handling data transfer operations and eliminating delays caused by processor-bus coordination overhead.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If traditional PCI bus configuration is used, then device connectivity is achieved, but data transfer efficiency is reduced due to target device readiness delays

Engineering Contradiction:
Improvedevice connectivityVSAvoiddata transfer rate
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent implements dynamic scatter-gather lists that can be configured at runtime to adapt to different data transfer scenarios. The DMA engine dynamically adjusts data transfer parameters based on the scatter-gather list contents, allowing flexible adaptation to various memory configurations while maintaining high transfer speeds through efficient batched data movement operations.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8446944B1Data processing system and method
Publication Date: 2013.05.21 VERINT AMERICAS INC
  • US8446944B1 patent drawing
  • US8446944B1 patent drawing
  • US8446944B1 patent drawing

AI summary

A data processing device is provided. The data processing device includes a first port configured to receive data from a first bus, and a direct memory access (DMA) engine coupled to the first port. The DMA engine is configured to receive the data from the first bus, receive a contiguous scatter-gather list from a processing device via a second port, configure the data according to the contiguous scatter-gather list, and provide the configured data to the processing device through the second port. The second port is configured to write the configured data to the processing device over a second bus.