Multi-core Processor Snoop Filtering via Page Status Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-core central processing units, bus snooping for cache coherence consumes excessive resources and efficiency decreases as the number of processors increases, due to exponential growth in snoop traffic.
Innovation Solution
Implementing a cache memory management system with a page status table that tracks page statuses to determine whether to broadcast snoop requests, thereby reducing unnecessary broadcasts and conserving resources by only sending requests when pages are shared.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If bus snooping is used to maintain cache coherence, then cache coherence is maintained, but resource consumption (power and time) increases and processor efficiency decreases
Solution Approach 1:
The patent applies partial action by selectively broadcasting snoop requests only when necessary. Instead of broadcasting to all processors for every memory access, the system determines whether a page is shared and only sends snoop requests to processors that actually have the page in cache. This reduces unnecessary snoop traffic while maintaining cache coherence for the pages that require it.
Solution Approach 2:
The patent changes the parameter of snoop request broadcasting from a binary all-or-nothing approach to a selective approach based on page sharing status. By tracking page sharing information and using it to determine whether to broadcast, the system dynamically adjusts snoop traffic based on actual cache coherence needs, reducing overall resource consumption.
2Power
If the number of processors in a multi-core system increases, then processing power increases, but snoop traffic increases exponentially reducing system efficiency
Solution Approach 1:
The patent reduces snoop traffic by taking only the partial action necessary - broadcasting snoop requests only to processors that have the requested page in cache. This selective approach prevents the exponential growth of snoop traffic that would occur with full broadcasting to all processors, thereby reducing energy loss while supporting multi-core systems.
Solution Approach 2:
The patent extracts and removes unnecessary snoop traffic from the system by identifying and eliminating broadcasts to processors that do not have the requested page. By tracking which processors have which pages, the system takes out the harmful excessive snoop traffic while retaining the necessary coherence checks.
3Reliability
If snoop requests are broadcast to all processors, then cache coherence is ensured, but time and power resources are consumed
Solution Approach 1:
The patent applies partial action by broadcasting snoop requests only to the extent necessary for maintaining cache coherence. Instead of sending requests to all processors, the system uses page sharing information to determine which processors actually need to be contacted, thereby reducing power consumption while ensuring coherence where required.
Solution Approach 2:
The system uses its own tracked page sharing information to make intelligent decisions about snoop request broadcasting. Each processor can determine from the tracked information whether it has the page in cache and whether it needs to respond to a snoop request, allowing the system to self-regulate snoop traffic based on actual cache contents.
Data Source
AI summary
Systems, methods, and devices for reducing snoop traffic in a central processing unit are provided. In accordance with one embodiment, an electronic device includes a central processing unit having a plurality of cores. A cache memory management system may be associated with each core that includes a cache memory device configured to store a plurality of cache lines, a page status table configured to track pages of memory stored in the cache memory device and to indicate a status of each of the tracked pages of memory, and a cache controller configured to determine, upon a cache miss, whether to broadcast a snoop request based at least in part on the status of one of the tracked pages in the page status table.


