Packet Memory Manager Page-Based Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High bandwidth packet processing devices face inefficiencies in packet memory management due to the need for large, expensive SRAM to accommodate varying packet sizes and simultaneous packet arrivals, leading to wasted memory resources.
Innovation Solution
Implementing a page-based memory management system where packets are assigned to different pages distributed across pools and banks, with a mapped hierarchy that allows for load distribution and variable page sizing to optimize memory usage and reduce complexity in the packet memory manager.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a fixed maximum packet size is allocated for each packet in packet memory, then packet memory management becomes simple with single pointer allocation, but a large amount of packet memory is wasted since maximum packet size is allocated regardless of actual packet size
Solution Approach 1:
The packet memory is divided into multiple pages of fixed size, and packets are distributed across these pages using a page table. This segmentation allows the system to allocate memory in smaller units rather than allocating the full maximum packet size to each packet, thereby reducing memory waste while maintaining simple management through the page table structure.
2Productivity
If packet memory is made very large to accommodate all simultaneous packets meeting bandwidth demands, then bandwidth requirements are met, but the cost increases significantly due to expensive on-chip SRAM
Solution Approach 1:
The system dynamically allocates and deallocates pages in the packet memory based on actual packet sizes and simultaneous packet arrivals. The page table is updated dynamically to track which pages are in use and which are free, allowing the memory to be allocated only when needed and released when packets are processed, thereby reducing the total memory size required while maintaining bandwidth capacity.
Solution Approach 2:
The system changes the allocation parameter from fixed maximum packet size to variable page-based allocation. By using pages of fixed size and dynamically selecting which pages to allocate based on actual packet requirements, the system achieves both cost efficiency and sufficient bandwidth capacity without requiring the maximum possible memory size.
3Ease of operation
If packets are stored sequentially in packet memory starting from current memory pointer, then packet storage is simple, but packet memory management complexity increases when packets arrive in interleaved fashion with varying sizes
Solution Approach 1:
A page table is introduced as an intermediary data structure between the packet memory and the packet processing logic. The page table maps packet identifiers to their corresponding page locations in the packet memory, allowing the system to handle interleaved packets with varying sizes without complex management. The page table acts as a mediator that simplifies the allocation and tracking of packets across the segmented memory structure.
Data Source
AI summary
A method of processing packets includes receiving packets and assigning the packets to different pages, where each page represents a fixed amount of memory. The different pages are distributed to different pools, where each pool has a unique mapping to banks, and where each bank is a set of memory resources. The different pages from the different pools are assigned to different banks in accordance with the unique mapping.


