Memory Congestion Control in Network Devices via Packet Flow Throttling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern network devices experience memory-access congestion due to concurrent processing tasks exceeding shared memory access bandwidth, leading to poor Quality-of-Service from excessive latency and 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 prioritizes or throttles lower-priority or less latency-sensitive flows.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple processing tasks access shared memory concurrently, then processing productivity is improved, but memory-access congestion increases causing excessive latency and packet dropping
Solution Approach 1:
The patent implements a feedback mechanism where the shared memory subsystem provides congestion notifications to the congestion controller, which then sends Explicit Congestion Notifications (ECN) back to remote network devices. This closed-loop feedback system enables dynamic adjustment of packet flow rates based on real-time memory access conditions, resolving the contradiction between high processing productivity and reliable memory access.
Solution Approach 2:
The patent changes the communication rate parameter of packet flows dynamically based on memory congestion conditions. By adjusting the transmission rate of packet flows from high to low when congestion is detected, the system maintains high productivity during normal operation while ensuring reliable memory access during congestion events.
2Productivity
If memory bandwidth is increased to handle concurrent processing tasks, then processing capability is improved, but device size and power consumption increase
Solution Approach 1:
The patent introduces dynamic flow control that adjusts packet transmission rates in real-time based on memory subsystem congestion conditions. Instead of requiring static high bandwidth capacity, the system dynamically scales communication rates from high to low, enabling smaller memory bandwidth designs that maintain processing capability only when needed.
Solution Approach 2:
The patent sends Explicit Congestion Notifications to remote network devices before memory access congestion becomes severe. This preliminary action allows remote devices to preemptively reduce their transmission rates, preventing congestion from developing and eliminating the need for oversized memory bandwidth infrastructure.
3Reliability
If packet flow transmission rate is reduced to alleviate memory congestion, then memory-access quality is improved, but network communication throughput decreases
Solution Approach 1:
The patent applies different quality levels to different packet flows based on their priority and sensitivity characteristics. High-priority or latency-sensitive flows maintain higher transmission rates while lower-priority flows are throttled more aggressively. This localized quality adjustment optimizes memory access quality without unnecessarily reducing overall network throughput.
Solution Approach 2:
The patent applies partial throttling rather than complete shutdown when memory congestion is detected. By reducing transmission rates partially rather than eliminating them entirely, the system maintains sufficient memory-access quality while preserving as much network communication throughput as possible.
Data Source
AI summary
A network device includes one or more ports, processing circuitry, and a memory-network congestion controller. The one or more 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 identify a memory-access congestion, which occurs in accessing the shared memory by one or more of the processing tasks, and to alleviate the memory-access congestion by causing a reduction in a communication rate of at least one of the packet flows.


