Packet Processing Queue Manager Memory Latency Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Packet processing systems face challenges in managing queues due to limited, high-cost memory close to the processing core and larger, higher-latency memory farther away, which can lead to overloading and data unit drops during bursts of high traffic, necessitating a solution to efficiently utilize both memory types for queue management.
Innovation Solution
A packet processing system with a queue manager that selectively pushes new data units to a second, higher-latency memory and transfers queued data units from this memory to a first, lower-latency memory before popping, maintaining a linked queue structure across both memory types to prevent overloading and optimize storage capacity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If memory size is increased to handle high traffic bursts, then queue capacity is improved, but cost and power consumption increase
Solution Approach 1:
The queue is segmented into two portions: a first portion in low-latency memory and a second portion in high-latency memory. This segmentation allows the system to use only the necessary amount of low-latency memory for active queue operations while storing less frequently accessed queue elements in high-latency memory, thereby reducing overall power consumption while maintaining adequate queue capacity.
Solution Approach 2:
Different memory locations are assigned different latency characteristics appropriate to their function. The first portion of the queue in low-latency memory maintains high performance for active processing, while the second portion in high-latency memory provides cost-effective capacity expansion. This local quality differentiation optimizes the balance between performance and energy efficiency.
2Quantity of substance
If high-latency memory is used for queue storage, then cost is reduced, but access speed deteriorates
Solution Approach 1:
The queue is divided into two segments stored in different memory types. The first segment in low-latency memory holds elements requiring fast access, while the second segment in high-latency memory provides additional capacity. This segmentation ensures that critical queue operations maintain high speed while utilizing the cost benefits of high-latency memory for extended capacity.
Solution Approach 2:
The queue manager acts as an intermediary that manages data unit transfers between the two memory portions. It selectively pushes new data units to appropriate memory portions and transfers data units from the second portion to the first portion when needed, thereby mediating between the speed requirements of the processor and the capacity advantages of high-latency memory.
3Quantity of substance
If low-latency memory size is increased, then queue capacity is improved, but cost increases
Solution Approach 1:
The queue capacity is segmented across two memory types, with only the essential portion residing in expensive low-latency memory. This segmentation allows the system to achieve the required total queue capacity without proportionally increasing the size and power consumption of the low-latency memory component.
Solution Approach 2:
The system uses a combination of expensive low-latency memory for critical operations and cheaper high-latency memory for extended capacity. This approach prioritizes keeping only the most actively accessed queue elements in the expensive memory, effectively using the cheaper memory as a supplemental storage that reduces reliance on expanding the expensive memory.
Data Source
AI summary
A packet processing system and method for processing data units are provided. A packet processing system includes a processor, first memory having a first latency, and second memory having a second latency that is higher than the first latency. A first portion of a queue for queuing data units utilized by the processor is disposed in the first memory, and a second portion of the queue is disposed in the second memory. A queue manager is configured to push new data units to the second portion of the queue and generate an indication linking a new data unit to an earlier-received data unit in the queue. The queue manager is configured to transfer one or more queued data units from the second portion of the queue to the first portion of the queue prior to popping the queued data unit from the queue, and to update the indication.


