Network Processor Memory Management Using Linked List Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory management in network processors is inefficient due to limited on-chip buffer space and the need for large local memory to store pointers, which restricts queue growth and requires excessive memory resources.

Innovation Solution

A memory management system using a linked list of contiguous memory segments with a slab allocation method, where incoming information units are stored in multiple segments, reducing the need for large on-chip buffers and allowing dynamic queue growth and shrinkage, with a linked list of pointers for efficient memory allocation and deallocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed size memory space is allocated to each queue, then queue management is simplified, but queue length cannot grow beyond a predetermined size

Engineering Contradiction:
Improvequeue length flexibilityVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The memory array is divided into multiple segments that can be dynamically allocated to queues. Each segment can be independently assigned to different queues based on actual needs, allowing queue length to vary beyond predetermined sizes while maintaining manageable complexity through systematic segmentation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The memory management system transitions from static fixed-size allocation to dynamic segment-based allocation. Queues can dynamically acquire and release memory segments as needed, enabling flexible queue length adjustment that adapts to varying network traffic conditions without requiring predetermined size limits.

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If segments are allocated from a list of pointers stored in local memory, then memory space efficiency is improved, but a large number of pointers are required which increases local memory requirements

Engineering Contradiction:
Improvememory space utilizationVSAvoidlocal memory size
Core Design Contradiction:
Quantity of substanceVSArea of stationary object

Solution Approach 1:

The memory structure is segmented into discrete allocatable units with associated pointers stored in local memory. This segmentation allows efficient memory space utilization by allocating only needed segments while keeping the pointer list manageable through systematic organization of memory segments into queues.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple memory segments are merged into queue structures that share common pointer management. By combining segment allocation with queue operations, the system reduces the total number of separate pointers needed while maintaining efficient memory space utilization through unified memory management.

Inventive Principle:
Principle #5Merging (Combining)

3Quantity of substance

If large on-chip buffer space is provided, then data storage capacity is increased, but cost increases

Engineering Contradiction:
Improvedata storage capacityVSAvoidcost
Core Design Contradiction:
Quantity of substanceVSWeight of stationary object

Solution Approach 1:

The system transitions from relying solely on expensive on-chip buffer space to utilizing cost-efficient external storage space through memory segments. By organizing memory in segments that can be allocated from external storage, the system achieves large data storage capacity without requiring proportionally large on-chip buffers, thereby reducing cost.

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

Data Source

PatentUS8312243B2Memory management in network processors
Publication Date: 2012.11.13 MAXLINEAR INC
  • US8312243B2 patent drawing
  • US8312243B2 patent drawing
  • US8312243B2 patent drawing

AI summary

System and method for storing information units is provided. The system includes a memory comprising a plurality of contiguous memory segments, a local memory storing a plurality of pointers, each pointer pointing to one contiguous memory segment, a receiving unit configured to arrange incoming information units into queues and memory control logic configured to allocate pointers to the queues and configured to cause the incoming information units to be written into contiguous memory segments. The incoming information units form at least one queue and wherein pointers form a linked list of pointers if the information units are written into more than one contiguous memory segment.