Network Interface Controller Lock Offloading for Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for inter-process communication over computer networks rely heavily on locks for synchronization, leading to significant overhead due to lock contention and the need for multiple attempts to acquire locks, especially in remote transactions, which burdens the CPU and incurs network latency.
Innovation Solution
Offloading the functions of checking and acquiring locks to a remote NIC, allowing for local or remote resident locks, thereby reducing network round trips and CPU effort, and enabling efficient lock management through atomic read-modify-write operations and immediate lock release mechanisms.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If locks are used for synchronization in inter-process communication over network, then resource access safety is ensured, but network latency and CPU overhead increase due to multiple lock acquisition attempts
Solution Approach 1:
The patent applies preliminary action by having the initiator NIC perform lock acquisition attempts and status checking before the CPU is involved. The NIC autonomously retries lock acquisition commands when locks are contended, eliminating the need for the CPU to wait for each lock acquisition result. This preliminary handling of lock contention at the NIC level reduces network latency while maintaining resource access safety through proper atomic operations.
Solution Approach 2:
The patent implements self-service by enabling the NIC to autonomously manage lock acquisition without continuous CPU intervention. The NIC independently handles lock contention scenarios by retrying atomic read-modify-write operations, manages lock state tracking, and coordinates with the remote target NIC. This self-service capability reduces CPU overhead and allows the CPU to focus on productive work while the NIC handles synchronization protocol details.
2Reliability
If locks are used for synchronization in inter-process communication over network, then resource access safety is ensured, but CPU overhead increases due to managing lock acquisition and contention
Solution Approach 1:
The patent extracts lock management functions from the CPU and relocates them to the NIC. Specifically, the NIC handles atomic read-modify-write operations for lock acquisition, tracks lock states, and manages retry logic for contended locks. This extraction of lock management responsibilities from the CPU reduces CPU overhead and energy consumption, while the NIC's dedicated hardware resources efficiently handle the synchronization protocol without impacting CPU performance for computational tasks.
3Reliability
If multiple attempts are made to acquire locks in remote transactions, then lock acquisition success rate improves, but network round trips and latency increase
Solution Approach 1:
The patent merges multiple lock acquisition attempts into a single autonomous transaction handled by the NIC. Instead of the CPU initiating separate network round trips for each lock acquisition attempt, the NIC consolidates multiple retry attempts within a single transaction context. The NIC tracks the lock state and automatically retries atomic operations without requiring separate CPU interventions or additional network protocol handshakes, thereby reducing the effective number of network round trips while maintaining high lock acquisition success rates.
Data Source
AI summary
Lock access is managed in a data network having an initiator node and a remote target by issuing a lock command from a first process to the remote target via an initiator network interface controller to establish a lock on a memory location, and prior to receiving a reply to the lock command communicating a data access request to the memory location from the initiator network interface controller. Prior to receiving a reply to the data access request, an unlock command issues from the initiator network interface controller. The target network interface controller determines the lock content, and when permitted by the lock accesses the memory location. After accessing the memory location the target network interface controller executes the unlock command. When the lock prevents data access, the lock operation is retried a configurable number of times until data access is allowed or a threshold is exceeded.


