Node Controller Lock Allocation for Multi-CPU Contention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-CPU computing devices, the lock contention process involves significant packet transmission and processing overhead, leading to delays due to the need for multiple CPUs to send and receive listening requests to determine lock invalidation status.
Innovation Solution
A lock allocation method and apparatus that utilize node controllers (NCs) with local and remote queues to manage lock requests, allowing CPUs to obtain locks without sending listening requests and reducing packet transmission by using migration queues to allocate locks in a first-in-first-out sequence.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If CPUs use traditional lock contention process with listening requests, then lock access control is ensured, but packet transmission overhead and processing delay increase significantly
Solution Approach 1:
The patent introduces node controllers (NCs) as intermediary components between CPUs and shared resources. Each NC manages local and remote queues for lock requests, acting as a mediator that handles lock allocation without requiring direct CPU-to-CPU communication. This eliminates the need for listening requests between CPUs, reducing packet transmission overhead while maintaining reliable lock control through the NC's queue management mechanism.
Solution Approach 2:
The system segments lock management functions by distributing local queues and remote queues across different node controllers. Each NC independently manages its own queues, dividing the centralized lock contention process into distributed segments. This segmentation allows lock requests to be processed locally without requiring global coordination through listening requests, thereby reducing communication overhead and acquisition delay.
2Measurement precision
If multiple CPUs send and receive listening requests to determine lock invalidation, then lock status is accurately tracked, but processing overhead increases
Solution Approach 1:
The node controllers perform self-service by autonomously managing lock request queues and determining lock allocation without requiring other CPUs to send listening requests. Each NC independently tracks lock status through its local and remote queues, eliminating the need for inter-CPU verification messages. This self-service approach maintains accurate lock status tracking while significantly reducing processing overhead associated with listening request handling.
Data Source
AI summary
A lock allocation method and apparatus, and a computing device to resolve a problem of lock contention, where the method includes a first node controller (NC) receives a first migration queue from a second NC, allocates a first target lock to a first central processing unit (CPU) associated with the first NC, deletes the first lock request at the queue head in the first migration queue when receiving a request for releasing the first target lock from the first CPU, changes a lock flag bit of a second lock request to a lock flag bit indicating a locked state when the first migration queue is not empty, determines a third NC sending the second lock request, and sends the first migration queue to the third NC.


