Thread Page Directory Tables for NUMA Access Delay Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In NUMA systems, as the number of nodes increases, the delay for processors to access remote memory nodes grows, affecting system performance, especially when multiple threads across different nodes try to access frequently accessed data like kernel code and read-only data, leading to bandwidth limitations.
Innovation Solution
Creating a thread page directory table for each thread with a special entry that points to locally stored data copies, allowing threads to access data without remote access delays and reducing bandwidth consumption by modifying the special entry to point to the correct node's data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If data is copied to memory of each node, then access delay is reduced and bandwidth consumption is reduced, but device complexity increases
Solution Approach 1:
The patent segments the page directory table into process-level and thread-level components. The process page directory table maintains the original single-copy structure, while thread page directory tables are created only for threads that need local access to frequently accessed data. This segmentation allows the system to reduce access delay for specific threads without requiring all threads or all processes to use the complex multi-copy structure.
Solution Approach 2:
The patent applies local quality by creating thread page directory tables with local data copies only for threads that require frequent access to specific data on their local node. Not all threads receive local copies, and not all data is replicated to all nodes. This selective approach reduces the overall complexity compared to universal data replication while still achieving the benefit of reduced access delay for the threads that need it.
2Speed
If kernel code and read-only data are copied to each node, then access speed is improved, but memory usage increases
Solution Approach 1:
The patent implements partial replication by creating local data copies only for threads that require frequent access to kernel code or read-only data on their local node. Instead of copying all kernel code and read-only data to all nodes (excessive action), the system selectively creates local copies only where needed, thereby improving access speed for specific threads while minimizing the additional memory consumption.
3Stability of the object's composition
If multiple threads access data from a single node, then memory consistency is maintained, but bandwidth limitations and access delays increase
Solution Approach 1:
The patent applies preliminary action by pre-creating thread page directory tables with local data copies for threads that are expected to frequently access kernel code or read-only data. When threads are scheduled to execute on specific nodes, their page directory tables are already configured to point to local data copies, eliminating the need for runtime data copying and ensuring both memory consistency and high system performance from the outset.
Data Source
AI summary
A method and a device for multithread to access multiple copies. The method includes: when multiple threads of a process are distributed to different nodes, creating a thread page directory table whose content is the same as that of a process page directory table of the process, where each thread page directory table includes a special entry which points to specific data and a common entry other than the special entry, each thread corresponds to a thread page directory table, and the specific data is data with multiple copies at different nodes; and when each thread is scheduled and the special entry in the thread page directory table of the each thread does not point to the specific data stored in a node where the thread is located, modifying, based on a physical address of the specific data, the special entry to point to the specific data.


