Dynamic Memory Allocation for Packet Processing Subsystems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Packet processing devices with independent datapath and control path memories suffer from memory usage inefficiency, as one subsystem may not utilize all its memory while the other subsystem requires more, leading to suboptimal memory allocation and performance.

Innovation Solution

A packet processing system that allows dynamic allocation of a portion of the datapath memory to the control path subsystem or control path memory to the datapath subsystem, enabling the control path subsystem to use datapath memory if needed and vice versa, with a memory allocation element ensuring that both portions are never allocated concurrently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If independent memory partition is used between datapath and control path subsystems, then each subsystem has dedicated memory space, but memory usage efficiency deteriorates when one subsystem does not need all its memory while the other needs more

Engineering Contradiction:
Improvememory availabilityVSAvoidmemory usage efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent implements a memory allocation element that enables memory resources to serve multiple purposes. The datapath memory can be allocated to the control path subsystem and vice versa, allowing the same physical memory resources to fulfill different functional requirements based on system needs, thereby improving overall memory utilization efficiency

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

Solution Approach 2:

The patent introduces dynamic memory allocation through a memory allocation element that can adjust memory distribution between datapath and control path subsystems based on real-time requirements. This dynamic reconfiguration capability allows the system to optimize memory usage efficiency while maintaining adequate memory availability for both subsystems

Inventive Principle:
Principle #15Dynamics

2Device complexity

If fixed memory allocation is used for datapath and control path subsystems, then memory allocation is simple, but system adaptability deteriorates when deployment location changes require different memory configurations

Engineering Contradiction:
Improvememory allocation complexityVSAvoiddeployment flexibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic memory allocation that allows the system to adapt to different deployment scenarios. The memory allocation element can reconfigure memory distribution between subsystems based on whether the device is deployed at network edge or core, providing deployment flexibility without requiring complete hardware redesign

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The memory allocation element serves as a universal interface that manages memory resources for both datapath and control path subsystems. This universal memory management approach allows the same memory pool to be dynamically assigned to different subsystems based on deployment requirements, enhancing system versatility

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

Data Source

PatentUS10061513B2Packet processing system, method and device utilizing memory sharing
Publication Date: 2018.08.28 MARVELL ASIA PTE LTD
  • US10061513B2 patent drawing
  • US10061513B2 patent drawing
  • US10061513B2 patent drawing

AI summary

A packet processing system having a control path memory of a control path subsystem and a datapath memory of a datapath subsystem. The datapath subsystem stores packet data of incoming packets and the control path subsystem performs matches of a subset of packet data, or a hash of the packet data, against the contents of a the control path memory in order to process the packets. The packet processing system enabling a portion of the datapath memory to be used by the control subsystem if needed or a portion of the control path memory to be used by the datapath subsystem if needed.