Fungible Memory Allocation Across PFEs for Dynamic Packet Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems with static memory allocation for ingress and egress processing in packet forwarding engines (PFEs) are sub-optimal, particularly in dynamic routing and Software-Defined Networking (SDN) environments, where the configuration is not known ahead of time, leading to inefficiencies and resource mismanagement.
Innovation Solution
A single controller manages memory allocations across multiple PFEs, utilizing a fungible memory space that can be dynamically allocated for both ingress and egress instructions, with a master allocator and per-PFE allocators coordinating memory usage through an arbiter system.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If static allocation of memory resources is used for ingress and egress processing in PFEs, then memory management is simple and predictable, but resource utilization efficiency deteriorates and the system cannot adapt to varying traffic demands
Solution Approach 1:
The patent implements dynamic memory allocation where memory blocks are not permanently assigned to specific PFEs but are allocated on-demand from a shared pool. The memory management system continuously monitors traffic demands and reallocates memory blocks between ingress and egress processing as needed, allowing the system to adapt to varying traffic patterns while maintaining manageable complexity through automated allocation algorithms
Solution Approach 2:
The patent creates a universal memory pool that serves multiple PFEs for both ingress and egress processing. Instead of dedicated memory spaces for each function, a single fungible memory resource can be allocated to any PFE requiring it for either ingress or egress operations, maximizing resource utilization while simplifying overall memory management through centralized control
2Productivity
If dedicated memory spaces are allocated for ingress and egress processing in each PFE, then memory access is fast and simple, but resource utilization efficiency deteriorates due to inability to share memory across PFEs
Solution Approach 1:
The patent merges previously separate dedicated memory spaces for ingress and egress processing into a single shared memory pool. Multiple PFEs draw from this common pool, allowing memory blocks to be dynamically allocated to any PFE based on current processing needs. This consolidation dramatically improves resource utilization efficiency while the centralized memory management system handles allocation coordination to maintain system complexity at acceptable levels
Solution Approach 2:
The patent introduces a centralized memory management system that acts as an intermediary between PFEs and the physical memory resources. This mediator receives allocation requests from multiple PFEs, manages the shared memory pool, and distributes memory blocks appropriately. This intermediary layer enables efficient resource sharing across PFEs while abstracting the complexity of coordination from individual PFE operations
3Productivity
If multiple PFEs have independent memory management, then each PFE operates autonomously with fast local access, but overall system resource utilization deteriorates due to lack of coordination
Solution Approach 1:
The patent implements preliminary organization of memory resources into a structured shared pool with predefined blocks that can be quickly allocated. The memory management system pre-processes allocation requests and maintains readiness to grant memory access to multiple PFEs simultaneously. This preliminary structuring enables fast allocation decisions while ensuring efficient system-wide resource utilization through coordinated management of the shared memory pool
Data Source
AI summary
A memory controller and method for controlling the allocation of blocks of a fungible memory for each of a plurality of packet forwarding engines (PFEs) to ingress instructions and/or egress instructions.


