Address Chain Cache Line Arbitration in Multi-Socket Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Concurrent attempts to access the same cache line among threads in multi-socketed computer systems lead to performance issues due to long inter-socket cache line transfer latency, as the order of access grants affects the efficiency of thread execution.
Innovation Solution
A method and system that manage cache lines by using an address chain to process local requests first, setting a state element for serialization acknowledgement, and then inserting foreign requests at the end of the chain, ensuring all local requests are completed before relinquishing the cache line to a foreign thread, thereby reducing latency and improving overall performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If cache lines are transferred between sockets with high priority for foreign requests, then inter-socket communication responsiveness is improved, but local thread performance deteriorates due to premature cache line relinquishment
Solution Approach 1:
The patent applies preliminary action by pre-establishing an address chain structure that anticipates and queues both local and foreign requests before actual cache line transfer occurs. The address chain is prepared in advance with placeholder entries, allowing the system to rapidly insert and process requests without waiting for cache line availability, thus improving inter-socket responsiveness while preserving local thread execution through structured request queuing.
Solution Approach 2:
The address chain serves as an intermediary data structure between local threads and foreign requests. It mediates the conflict by providing a structured queue where local requests are prioritized through head-of-chain positioning, while foreign requests are inserted at appropriate positions based on serialization acknowledgments. This intermediary mechanism resolves the contradiction by enabling fair arbitration without premature cache line relinquishment.
2Loss of time
If cache lines are transferred immediately upon foreign request arrival, then inter-socket latency is reduced, but the number of repeated cache line transfers increases
Solution Approach 1:
The system performs preliminary action by pre-queuing foreign requests in the address chain at the appropriate position determined by serialization acknowledgment, rather than immediately transferring the cache line upon foreign request arrival. This allows the cache line to be retained and served to multiple local threads first, reducing repeated transfers while maintaining low latency through the pre-prepared address chain structure.
Solution Approach 2:
The address chain segments the request processing into distinct phases: local request queuing, serialization acknowledgment, and controlled foreign request insertion. This segmentation allows the system to manage cache line transfers in controlled increments rather than immediate single transfers, reducing the total number of transfers needed while maintaining responsive inter-socket communication.
3Productivity
If local requests are processed before foreign requests, then local thread efficiency is improved, but foreign thread waiting time increases
Solution Approach 1:
The patent applies local quality by giving differentiated treatment to local versus foreign requests within the same address chain structure. Local requests receive head-of-chain priority positioning ensuring efficient local thread processing, while foreign requests are inserted at positions determined by serialization acknowledgments. This localized quality differentiation optimizes local thread efficiency without excessively penalizing foreign threads, as their waiting time is determined by actual serialization needs rather than arbitrary delays.
Solution Approach 2:
The system dynamically changes the insertion position parameter for foreign requests in the address chain based on serialization acknowledgment status. When serialization is complete, foreign requests are inserted closer to the head, reducing their waiting time. When serialization is ongoing, they are positioned appropriately to maintain local priority. This parameter change strategy balances local efficiency with foreign responsiveness.
Data Source
AI summary
A method including: receiving multiple local requests to access the cache line; inserting, into an address chain, multiple entries corresponding to the multiple local requests; identifying a first entry at a head of the address chain; initiating, in response to identifying the first entry and in response to the first entry corresponding to a request to own the cache line, a traversal of the address chain; setting, during the traversal of the address chain, a state element identified in a second entry; receiving a foreign request to access the cache line; inserting, in response to setting the state element, a third entry corresponding to the foreign request into the address chain after the second entry; and relinquishing, in response to inserting the third entry after the second entry in the address chain, the cache line to a foreign thread after executing the multiple local requests.


