Network Processor Memory Management Using Linked List Segmentation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Quantity of substance
If large on-chip buffer space is provided, then data storage capacity is increased, but cost increases
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.
Data Source
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.


