Adaptive Range Snoop Filtering for Memory Coherency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory systems face performance limitations due to unnecessary snooping activities, particularly in distributed shared memory systems where I/O agents operate at lower frequencies, leading to increased memory latency and inefficiency, and existing snoop filtering techniques either waste memory space or are not scalable.
Innovation Solution
The implementation of an adaptive range snoop filtering method that uses a range table to track memory addresses and update ranges based on ownership assertions by I/O agents, allowing for efficient filtering of snoops by comparing requested memory line addresses to adaptive ranges, thereby reducing unnecessary snooping and memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If comprehensive snooping is performed on all caches to maintain coherency, then memory coherency is maintained, but memory latency increases and system performance decreases
Solution Approach 1:
The patent extracts the snoop filtering function from the comprehensive snoop process by introducing a snoop filter table that selectively filters snoops based on address ranges. This allows the system to maintain coherency for critical memory regions while skipping unnecessary snoops for other regions, thereby reducing memory latency without sacrificing coherence where needed.
Solution Approach 2:
The patent applies local quality by differentiating between different memory regions through address range filtering. Instead of uniform comprehensive snooping, the system applies selective snooping based on the local characteristics of different memory addresses, allowing faster access for non-critical regions while maintaining coherence for critical regions.
2Reliability
If I/O agents are snooped frequently to maintain coherency, then memory coherency is maintained, but system performance is limited due to lower I/O agent frequencies
Solution Approach 1:
The patent extracts I/O agents from the comprehensive snoop target list by implementing address range filtering that identifies and excludes I/O agent address ranges from snooping operations. This is achieved by tracking I/O agent ownership in the snoop filter table and using this information to filter out unnecessary snoops directed at I/O agents, thereby maintaining coherency while improving system performance.
3Productivity
If I/O agent write cache size is increased to reduce snooping frequency, then system performance improves, but filter size in processors must grow
Solution Approach 1:
The patent segments the memory address space into different ranges and tracks ownership per range rather than requiring complete address tracking. The snoop filter table stores only the relevant ownership information for each range, significantly reducing the filter size requirement compared to tracking every individual address, thus improving performance without proportionally increasing device complexity.
4Productivity
If existing snoop filtering techniques use memory tags for I/O agent tracking, then snoop filtering is achieved, but memory space is wasted
Solution Approach 1:
The patent changes the parameter representation from detailed per-line tags to coarser address range tracking. Instead of using memory tags for each individual memory line to track I/O agent ownership, the system uses address ranges with ownership bits, significantly reducing the memory space required while maintaining effective snoop filtering capability.
Data Source
AI summary
Snoop filtering methods and apparatuses for systems utilizing memory are contemplated. Method embodiments comprise receiving a request for contents of a memory line by a home agent, comparing an address of the memory line to a range in a set of adaptive ranges, and snooping an I/O agent for the contents upon a match of the address within the range. Apparatus embodiments comprise a range table, a table updater, a receiver module, and a range comparator. The range tables allow for the tracking of memory addresses as I/O agents assert ownership of the addresses. Employing a range-based snoop filtering approach may allow home agents to track a collection of addresses, in adaptable ranges, instead of tracking precise addresses which may require large quantities of memory to implement.


