Pre-Allocated Shared Memory for Parallel Packet Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing malloc libraries face inefficiencies due to lack of persistent memory support, enumeration support, inflexible CPU utilization, and synchronous processing, leading to memory inaccuracies, lock contentions, and reduced throughput.

Innovation Solution

The PmemMalloc library provides pre-allocated, partitioned shared memory blocks with enhanced enumeration support, enabling parallel processing across multiple CPU cores, equal CPU distribution, and asynchronous programming to prioritize and defer computations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If existing malloc libraries are used for memory allocation, then memory can be dynamically allocated with OS integration, but processing time increases and computational efficiency decreases due to lack of enumeration support and serial processing requirements

Engineering Contradiction:
Improveprocessing timeVSAvoidcomputational efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent pre-allocates memory blocks before packet processing begins, eliminating the need for dynamic memory allocation during packet processing. This preliminary action removes memory allocation overhead and enables parallel enumeration operations across multiple CPU cores, directly reducing processing time while improving computational efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments memory into fixed blocks that can be independently allocated and processed. This segmentation allows different CPU cores to work on different memory blocks simultaneously, enabling parallel processing and enumeration operations that reduce overall processing time while maintaining high computational efficiency

Inventive Principle:
Principle #1Segmentation

2Reliability

If existing malloc libraries allocate memory dynamically with OS integration, then memory management is flexible, but data persistence is lost when applications restart or OS overwrites allocated data

Engineering Contradiction:
Improvedata persistenceVSAvoidmemory management flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent pre-allocates memory blocks and maintains them across application restarts and OS operations. By establishing memory blocks before processing and preserving them throughout system operations, the patent ensures data persistence while maintaining flexible memory management through controlled allocation and deallocation mechanisms

Inventive Principle:
Principle #10Preliminary action

3Productivity

If enumeration operations are restricted to a single CPU core with existing malloc libraries, then memory allocation is simplified, but CPU utilization becomes unequal and processing throughput decreases

Engineering Contradiction:
Improveprocessing throughputVSAvoidCPU utilization
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments enumeration operations across multiple CPU cores, with each core handling specific memory blocks or packet processing tasks. This segmentation enables parallel enumeration operations, improving processing throughput while achieving equal CPU utilization across all available cores

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions enumeration from a single-dimensional serial process on one CPU core to a multi-dimensional parallel process across multiple CPU cores. This dimensional change enables simultaneous enumeration operations on different memory blocks, significantly improving throughput and CPU utilization

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

4Loss of time

If existing malloc libraries use synchronous programming models, then packet processing follows strict ordering, but processing time increases due to O(N) computations and inability to defer operations

Engineering Contradiction:
Improveprocessing timeVSAvoidprogramming model simplicity
Core Design Contradiction:
Loss of timeVSEase of operation

Solution Approach 1:

The patent performs memory allocation and initial packet processing setup in advance, before the main processing loop begins. This preliminary action eliminates the need for O(N) computations during packet processing and allows operations to be deferred to appropriate times, reducing processing time while maintaining operational simplicity through structured processing phases

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12625729B2Packet processing computations utilizing a pre-allocated memory function
Publication Date: 2026.05.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12625729B2 patent drawing
  • US12625729B2 patent drawing
  • US12625729B2 patent drawing

AI summary

The present disclosure relates to systems, methods, and computer-readable media for utilizing a new memory allocation function library called PmemMalloc. For example, the PmemMalloc library allocates pre-allocated, partitioned, and fixed shared memory blocks. In addition, by utilizing the PmemMalloc library, the memory allocation system described herein overcomes problems with persistence and enumeration that encumber existing malloc libraries. Indeed, the PmemMalloc library enables the memory allocation system to perform servicing computation in parallel across multiple CPU cores/threads, distribute computation equally among threads, prioritize servicing, among other improvements. Notably, the PmemMalloc library provides major constructs (e.g., persistence, enumeration, and debuggability) not available existing malloc libraries. Additionally, as detailed in this disclosure, the PmemMalloc library migrates various computations out of application-based packet processing to memory block-based deferred enumeration, which improves both packet processing and efficient use of CPU cores on a computing device.