Independent DMA Channel Reset for Network Traffic Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern network interface controller devices with multiple DMA channels lack the ability to independently reset or restart a single DMA channel without impacting other channels, leading to system-wide reboots in case of hardware, driver, or application crashes.
Innovation Solution
A method and system for independently managing network applications by monitoring DMA channels, allowing a specific DMA channel to be disabled and restarted without affecting other channels, enabling graceful recovery and continued operation of other applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If DMA channels share common resources to reduce device complexity, then device complexity is reduced, but the ability to independently reset individual channels is lost
Solution Approach 1:
The patent divides the DMA subsystem into multiple independent channel segments, each with its own control registers and state machines. This segmentation allows individual channels to be reset independently while sharing common resources like the bus interface and memory controller, thus resolving the contradiction between device complexity and independent operation capability.
2Reliability
If a single DMA channel is reset to recover from crashes, then reliability of that channel is improved, but all other DMA channels must be reset causing system-wide disruption
Solution Approach 1:
By segmenting the DMA controller into independently controllable channels with separate reset logic, the system can isolate and reset only the failed channel while keeping other channels operational. This maintains system productivity during recovery operations.
Solution Approach 2:
The patent implements preliminary error detection and isolation mechanisms that prevent a single channel failure from propagating to other channels. Watchdog timers and error flags are configured to detect and contain failures at the individual channel level, preventing system-wide resets.
3Ease of operation
If DMA channels are fully isolated to enable independent reset, then ease of operation is improved, but device complexity increases
Solution Approach 1:
The patent applies local quality by providing each DMA channel with its own control registers and state machines for independent management, while sharing common resources like the bus interface and memory controller. This selective isolation achieves independent channel control without duplicating all components, thus managing device complexity.
Data Source
Figure 1A
Figure 1B
Figure 2
AI summary
A method, computer readable medium, and system independently managing network applications within a network traffic management device communicating with networked clients and servers include monitoring with a network device a plurality of applications communicating over a plurality of direct memory access (DMA) channels established across a bus. In a coherent restart, the interface controller of a network device receives 404 a request, for example by enabling a bit located in DMA packet buffers, from a first application communicating over a first DMA channel in the plurality of DMA channels to restart the first DMA channel. In response to the request, the first DMA channel is disabled 406 with the network device while allowing other executing applications in the plurality of applications to continue 408 to communicate over other DMA channels in the plurality of DMA channels. A state of the first DMA channel is cleared 413 independently from other DMA channels in the plurality of DMA channels, and communications for the first application over the first DMA channel are resumed 414, 416 with the network device. Alternatively, a non-coherent restart is based on the detection of a software crash or a malfunction of an application associated with DMA channels, or any other unexpected event involving the operation of one or more independently resettable DMA channels. In this case, a reboot of the malfunctioning software or application can be a possible solution.