DMA Resource Pool for Packet Buffer Chain Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional network and storage systems in cloud computing architectures face performance and administrative bottlenecks, particularly in managing packet processing and buffer utilization, especially in virtualized environments with limited CPU and memory resources.

Innovation Solution

A system utilizing a direct memory access (DMA) resources pool with a thread scheduling engine that allocates DMA resources on-demand, allowing multiple software threads to access packet buffers through pre-assigned thread keys, and utilizing linked lists or linear arrays for buffer chains to optimize packet processing without the need for mutex locks or semaphores.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional network and storage systems are used in cloud computing architectures, then system stability is maintained, but performance bottlenecks and administrative overhead increase

Engineering Contradiction:
Improvepacket processing speedVSAvoidadministrative overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements self-service through automated resource allocation where the DMA resource pool automatically assigns DMA resources to software threads based on packet processing needs, eliminating manual administrative intervention and reducing operational overhead while maintaining high packet processing speeds

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The DMA resource pool serves multiple functions simultaneously: it manages packet buffers, allocates DMA resources to multiple software threads, handles memory access, and coordinates packet processing operations, thereby reducing the need for separate specialized components and administrative management

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If multiple software threads access packet buffers simultaneously, then packet processing throughput increases, but resource contention and performance penalties increase

Engineering Contradiction:
Improvepacket processing throughputVSAvoidsoftware performance penalties
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The DMA resource pool acts as an intermediary between multiple software threads and the packet buffers in memory. It manages concurrent access by coordinating thread keys with buffer chains, eliminating the need for threads to directly compete for buffer access and reducing performance penalties associated with resource contention

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the buffer management by creating separate buffer chains that can be associated with different DMA resources and thread keys. This segmentation allows multiple software threads to process packets concurrently with reduced contention, as each thread can operate on its assigned buffer chain without blocking other threads

Inventive Principle:
Principle #1Segmentation

3Productivity

If buffer chains are implemented using linked lists or linear arrays, then buffer utilization efficiency increases, but memory overhead and access complexity increase

Engineering Contradiction:
Improvebuffer utilization efficiencyVSAvoiddata structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically selects between linked list and linear array implementations for buffer chains based on specific operational requirements. This dynamic approach allows the system to optimize for either memory efficiency (linked lists) or access speed (linear arrays) depending on the workload, thereby improving overall buffer utilization while managing complexity through adaptive structure selection

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9858241B2System and method for supporting optimized buffer utilization for packet processing in a networking device
Publication Date: 2018.01.02 ORACLE INT CORP
  • US9858241B2 patent drawing
  • US9858241B2 patent drawing
  • US9858241B2 patent drawing

AI summary

A system and method can support efficient packet processing in a network environment. The system can comprise a direct memory access (DMA) resources pool that comprises one or more of DMA resources. Furthermore, the system can use a plurality of packet buffers in a memory, wherein each said DMA resource can point to a chain of packet buffers in the memory. Here, the chain of packet buffers can be implemented based on either a linked list data structure and/or a linear array data structure. Additionally, each said DMA resource allows a packet processing thread to access the chain of packet buffers using a pre-assigned thread key.