Network Interface Mutex Contention Resolution via Segmented Memory Channels

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Networked computer systems face limitations in scalability and efficiency due to mutex contention, packet processing overhead, and asynchronous interrupt penalties, which hinder the parallelization of network workload and collaboration between computing resources.

Innovation Solution

A network system that enables parallelization of network interfaces by providing multiple memory access channels dedicated to each processing thread, eliminating the need for mutex locks and optimizing packet processing through hierarchical classification and optimistic matching, while supporting stateful and stateless workload associations and virtualization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple processing threads share a common network interface, then resource utilization improves, but mutex contention increases and reduces productivity

Engineering Contradiction:
Improvenetwork processing throughputVSAvoidmutex lock acquisition time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The network interface resources are segmented into multiple dedicated memory access channels, with each channel assigned to a specific processing thread. This segmentation eliminates mutex contention by ensuring that each thread has exclusive access to its designated channel, thereby maintaining high productivity without the overhead of lock acquisition time.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If network interface is parallelized across multiple processors, then scalability improves, but system complexity increases

Engineering Contradiction:
ImprovescalabilityVSAvoidinterface architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The network interface is divided into multiple independent memory access channels that can be distributed across multiple processors. This segmentation enables scalability by allowing each processor to independently utilize its assigned channel while maintaining a relatively simple overall architecture through the use of dedicated, non-shared resources.

Inventive Principle:
Principle #1Segmentation

3Productivity

If multiple processors service a shared network interface, then processing capacity increases, but coordination overhead increases

Engineering Contradiction:
Improvepacket processing rateVSAvoidcoordination mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The coordination mechanism is extracted by dedicating specific memory access channels to specific processors, eliminating the need for complex coordination protocols. Each processor independently accesses its assigned channel without requiring locks or synchronization, thereby increasing packet processing rate while reducing coordination overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

4Reliability

If mutex locks are used to protect shared data structures, then data consistency is maintained, but processing latency increases

Engineering Contradiction:
Improvedata consistencyVSAvoidlock acquisition latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Data structures are segmented and assigned to specific memory access channels, with each channel serving a dedicated processing thread. This eliminates the need for mutex locks to protect shared data, as each thread operates on its own dedicated structures, thereby maintaining data consistency without the latency overhead of lock acquisition.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7664127B1Method for resolving mutex contention in a network system
Publication Date: 2010.02.16 ORACLE AMERICAN INC
  • US7664127B1 patent drawing
  • US7664127B1 patent drawing
  • US7664127B1 patent drawing

AI summary

A method of resolving mutex contention within a network interface unit which includes providing a plurality of memory access channels, and moving a thread via at least one of the plurality of memory access channels, the plurality of memory access channels allowing moving of the thread while avoiding mutex contention when moving the thread via the at least one of the plurality of memory access channels is disclosed.