Network Memory Congestion Control Through Packet Flow Throttling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern network devices experience memory-access congestion due to concurrent processing tasks exceeding the shared memory's access capability, leading to poor Quality-of-Service and potential packet dropping.
Innovation Solution
A memory-network congestion controller identifies and alleviates memory-access congestion by reducing the communication rate of packet flows, either by sending fake Explicit Congestion Notifications to remote devices or modifying packet dropping policies, and prioritizing or throttling lower-priority flows.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple processing tasks concurrently access shared memory to handle packet flows, then processing capability and network throughput are improved, but memory-access congestion occurs when access exceeds memory capability
Solution Approach 1:
The congestion controller implements a feedback mechanism by monitoring memory-access patterns and packet flow rates, then dynamically adjusting packet transmission rates based on detected congestion levels. When memory-access congestion is detected, the controller reduces packet flow rates to alleviate congestion, creating a closed-loop control system that adapts to real-time memory conditions.
Solution Approach 2:
The system dynamically adjusts packet flow transmission rates based on real-time memory congestion conditions. Instead of using fixed transmission rates, the congestion controller continuously modifies packet flow characteristics (such as rate limiting or packet dropping) to adapt to varying memory access capabilities, transforming a static system into a dynamic one that responds to changing conditions.
2Reliability
If memory bandwidth is increased to handle concurrent processing tasks, then memory-access congestion is reduced, but device cost and complexity increase
Solution Approach 1:
Instead of increasing memory bandwidth hardware resources, the system changes operational parameters by dynamically adjusting packet flow transmission rates. The congestion controller modifies traffic characteristics (rate, timing, volume) to match memory access capabilities, achieving reliable memory access through parameter optimization rather than hardware scaling.
Solution Approach 2:
The congestion controller acts as an intermediary layer between packet flows and shared memory access. It mediates the interaction by monitoring memory conditions and adjusting packet flow rates accordingly, preventing direct congestion at the memory interface without requiring increased memory bandwidth capacity.
3Reliability
If packet flow rate is reduced to alleviate memory-access congestion, then memory reliability is improved, but network throughput decreases
Solution Approach 1:
The congestion controller applies partial rate reduction only to specific packet flows that are causing or contributing to memory-access congestion, rather than uniformly reducing all traffic. By selectively throttling problematic flows while allowing others to maintain higher rates, the system achieves sufficient memory relief without excessive overall throughput reduction.
Data Source
AI summary
A network device includes one or more ports, processing circuitry, and a memory-network congestion controller. The ports are to connect to a network. The processing circuitry is to run a plurality of processing tasks that access a shared memory, one or more of the processing tasks including communicating one or more packet flows over the network. The memory-network congestion controller is to (i) identify a memory-access congestion, which is caused by one or more of the processing tasks attempting to access the shared memory in a manner that exceeds an access capability of the shared memory, and (ii) in response to identifying the memory-access congestion, alleviate the memory-access congestion by causing a reduction in a communication rate of at least one outgoing packet flow, among the one or more packet flows, that is sent from the network device to a selected destination.


