Packet Memory Manager Page-Based Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvepacket memory management simplicityVSAvoidpacket memory waste
Core Design Contradiction:
Ease of operationVSLoss of substance

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvebandwidth capacityVSAvoidpacket memory size and cost
Core Design Contradiction:
ProductivityVSQuantity of substance

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvepacket storage simplicityVSAvoidpacket memory management complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9256380B1Apparatus and method for packet memory datapath processing in high bandwidth packet processing devices
Publication Date: 2016.02.09 MARVELL ASIA PTE LTD
  • US9256380B1 patent drawing
  • US9256380B1 patent drawing
  • US9256380B1 patent drawing

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.