Region Probe Filter Directory for Distributed Memory Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed data processing systems with non-uniform memory access (NUMA) architecture, the bandwidth limitations and storage requirements for maintaining cache coherency lead to performance issues, particularly with large numbers of processors and frequent probes, which can be exacerbated by the need for large probe filter storage and potential clock cycle delays.
Innovation Solution
The implementation of a probe filter with a region probe filter directory and a line probe filter directory, which efficiently determines whether to issue probes based on memory access requests, particularly for read-only access, reducing unnecessary probe transmissions and storage needs by using a controller to access these directories and suppress probe generation for read-only requests.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a probe filter is used to reduce bandwidth requirements and access latency, then network traffic is reduced and performance is improved, but a large amount of storage space is required to maintain the state of all cache lines
Solution Approach 1:
The probe filter directory is divided into two separate directories: a region probe filter directory that stores information about regions of memory (grouping multiple cache lines), and a line probe filter directory that stores information about individual cache lines. This segmentation allows the system to track only modified cache lines in the line directory while using the region directory to cover read-only regions, significantly reducing total storage requirements while maintaining probe filtering functionality.
2Productivity
If the size of the memory that needs to be looked up is too large, then the probe filter can reduce system traffic, but it adds a clock cycle delay between an access request and the determination that no probe needs to be issued
Solution Approach 1:
The lookup process is segmented into two stages: first, the region probe filter directory is accessed to determine if the memory access falls within a read-only region; second, if not, the line probe filter directory is accessed to check individual cache lines. This segmentation enables early termination of the lookup process for read-only region hits, reducing the average clock cycle delay while maintaining comprehensive probe filtering.
Solution Approach 2:
The region probe filter directory is checked first before the line probe filter directory because region checks can quickly eliminate read-only memory accesses that don't require probes. This preliminary action filters out a large portion of memory accesses before performing more detailed line-by-line checks, reducing overall lookup time.
Data Source
AI summary
A probe filter determines whether to issue a probe to at least one other processing node in response to a memory access request, and includes a region probe filter directory, a line probe filter directory, and a controller. The region probe filter directory identifies regions of memory for which at least one cache line may be cached in a data processing system and a state of each region, wherein a size of each region corresponds to a plurality of cache lines. The line probe filter directory identifies cache lines cached in the data processing system and a state of each cache line. The controller accesses at least one of the region probe filter directory and the line probe filter directory in response to a memory access request to determine whether to issue the probe, and does not issue any probe in response to a read-only request.


