Direct Memory Access Engine for Packet Buffering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional packet buffering and handling methods in gigabit passive optical networks suffer from slow response times, high processor overhead, and inefficient bandwidth utilization due to frequent read operations and complex control logic, leading to increased latency and processor inefficiency.

Innovation Solution

The implementation of a direct memory access engine that writes packet descriptors to memory, determines when descriptors are written, and initiates direct memory access transfers to efficiently manage packet buffering and handling, reducing the need for frequent read operations and improving bandwidth utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional descriptor ring architecture with polling is used, then packet buffering can be implemented, but response time increases and processor overhead increases

Engineering Contradiction:
Improvepacket buffering capabilityVSAvoidresponse time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The DMA engine autonomously determines when packet descriptors have been written to memory and initiates direct memory access transfers without requiring host polling or intervention. The system self-manages the descriptor ring by having the DMA engine check write completion status and automatically proceed with packet transfers, eliminating the need for the host to continuously poll for descriptor availability.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The host writes packet descriptors to memory in advance, and the DMA engine is pre-configured to monitor these writes and automatically initiate transfers when descriptors are available. This preliminary preparation of descriptors allows the system to respond immediately when packets arrive, rather than waiting for polling cycles.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If frequent read operations are performed to check descriptor status, then packet buffering can be monitored, but bandwidth utilization decreases due to overhead traffic

Engineering Contradiction:
Improvedescriptor status monitoringVSAvoidbandwidth utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The DMA engine autonomously monitors descriptor write completion by checking memory status directly, eliminating the need for separate host read operations to poll descriptor availability. This self-monitoring capability removes unnecessary overhead traffic while maintaining reliable tracking of descriptor status.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The polling function is extracted from the host processor and transferred to the DMA engine itself. The DMA engine independently checks descriptor availability and initiates transfers without requiring the host to perform read operations, separating the monitoring function from the main processing path and eliminating associated overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If host stops to wait for data return from memory reads, then data can be retrieved, but processing efficiency decreases

Engineering Contradiction:
Improvedata retrievalVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The DMA engine autonomously retrieves packet data from host memory without requiring the host processor to stop and wait. The host writes descriptors and continues processing, while the DMA engine independently monitors descriptor availability and executes memory read operations to transfer packets, allowing host processing to proceed without interruption.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The DMA engine acts as an intermediary between the host processor and memory, handling all data transfer operations independently. The host writes descriptors and continues processing, while the DMA engine mediates the actual packet retrieval from memory, preventing the host from needing to wait for data returns.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If DMA engine constantly changes ownership bits in descriptor ring, then host can be notified of completion, but bus bandwidth is wasted due to unnecessary traffic

Engineering Contradiction:
Improvehost notification of completionVSAvoidbus bandwidth utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The DMA engine autonomously manages the descriptor ring by determining when descriptors are ready and initiating transfers without requiring constant host interaction. Ownership bit changes occur only when necessary to notify the host of actual completion events, rather than through continuous polling traffic.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The continuous polling and ownership bit manipulation function is extracted from the host-DMA interaction and consolidated into autonomous DMA engine operation. The DMA engine independently tracks descriptor status and notifies the host only when actual completion occurs, eliminating unnecessary bus traffic while maintaining reliable completion notification.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8326938B1Packet buffer apparatus and method
Publication Date: 2012.12.04 MARVELL ASIA PTE LTD
  • US8326938B1 patent drawing
  • US8326938B1 patent drawing
  • US8326938B1 patent drawing

AI summary

An apparatus including a first memory, a second memory, and a direct memory access engine. The first memory stores one or more packet descriptors. The second memory stores one or more packets for transmission via a communication link. The direct memory access engine is configured to i) determine when the one or more packet descriptors have been written, by a host, to the first memory, ii) read the one or more packet descriptors from the first memory in response to determining that the one or more packet descriptors have been written to the first memory by the host, iii) determine, using the one or more packet descriptors, one or more respective locations of one or more packets in a host memory, and iv) initiate a direct memory access transfer of the one or more packets from the one or more respective locations in the host memory to the second memory.