External Memory Multi-Buffer Partitioning for Network Packet Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network devices face challenges in efficiently managing external memory for packet storage, leading to memory waste and latency in network traffic, as existing methods do not effectively distribute packet data across multiple memory devices without significant latency or inefficiency.
Innovation Solution
The method involves partitioning a memory space into multi-buffers that span multiple external memory devices, dividing packets into packet chunks, and storing these chunks in consecutive buffer chunks across multiple memory devices, allowing for efficient memory utilization and load balancing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If packets are stored in external memory devices using traditional memory management methods, then memory capacity is sufficient to store packet data, but memory waste increases and retrieval latency is introduced
Solution Approach 1:
The patent divides the external memory space into multiple multi-buffers, each spanning several memory devices. Each multi-buffer is further partitioned into buffer chunks that are distributed across the memory devices. Packets are segmented into packet chunks that are stored in consecutive buffer chunks within a multi-buffer. This segmentation enables efficient memory utilization while maintaining fast retrieval through localized access patterns.
Solution Approach 2:
The patent introduces a multi-dimensional memory organization structure where memory is arranged in multi-buffers that span multiple memory devices. This creates additional dimensions for data organization (multi-buffer index, buffer chunk offset) beyond traditional linear memory addressing. This dimensional approach allows parallel access to different packet chunks across multiple memory devices, reducing retrieval latency while improving overall memory utilization.
2Quantity of substance
If packet data is distributed across multiple memory devices, then memory utilization improves, but system complexity increases
Solution Approach 1:
The memory management system is segmented into hierarchical levels: memory devices are grouped into multi-buffers, which are divided into buffer chunks. This segmentation creates a manageable structure where each level handles specific aspects of memory management, reducing overall system complexity while improving utilization.
Solution Approach 2:
The patent implements self-service mechanisms where the memory controller automatically manages packet chunk allocation to buffer chunks, handles concurrency control, and performs load balancing across memory devices. This automation reduces the complexity of manual memory management while achieving high utilization efficiency.
3Productivity
If traditional memory allocation methods are used, then implementation is simple, but bandwidth efficiency decreases
Solution Approach 1:
Packet data is segmented into chunks that are stored in consecutive buffer chunks within multi-buffers. This segmentation enables the memory system to service multiple packet requests in parallel by accessing different buffer chunks simultaneously across multiple memory devices, thereby improving bandwidth efficiency while maintaining manageable complexity through the structured chunk-based approach.
Solution Approach 2:
The patent ensures continuous useful action by maintaining packet chunks in consecutive buffer chunks within multi-buffers, enabling sequential access patterns that maximize memory bandwidth utilization. The memory controller can continuously retrieve packet chunks without gaps or idle periods, improving overall productivity while the structured organization keeps management complexity reasonable.
Data Source
AI summary
In a method for storing packets in a network device, a memory space spanning a plurality of external memory devices is partitioned into a plurality of multi-buffers. Each multi-buffer spans multiple memory devices in the plurality of external memory devices. Each multi-buffer is partitioned into a plurality of buffer chunks and the plurality of buffer chunks are distributed among the multiple memory devices Further, a packet is divided into one or more packet chunks including at least a first packet chunk. The one or more packet chunks are stored in one or more consecutive buffer chunks of at least a first multi-buffer of the plurality of multi-buffers.


