Snoop Control Storage for Multi-Cache Coherency Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multi-processing systems face significant energy consumption issues due to frequent snoop operations performed to maintain cache coherency, especially in systems where the snoop hit rate is low, leading to wasteful energy expenditure and increased latency.
Innovation Solution
A data processing apparatus with a snoop control storage that defines multiple snoop schemes, each comprising phases that can be performed on either a single cache or multiple caches, allowing for flexible snoop processes based on access request properties such as type, priority, and memory address, enabling optimization for both performance and energy efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If snoop operations are performed in all caches to maintain cache coherency, then data coherency is ensured, but energy consumption increases significantly
Solution Approach 1:
The patent segments the snoop operation into multiple phases: a first snoop phase that snoops only a subset of caches (e.g., L2 caches or specific L1 caches based on address mapping), and a second snoop phase that snoops remaining caches if needed. This segmentation reduces energy consumption by avoiding unnecessary snooping of all caches while still ensuring data coherency when required.
Solution Approach 2:
The patent applies partial action by performing snoop operations on only a portion of caches in the first phase rather than all caches. The snoop control storage defines schemes that specify subsets of caches to be snooped based on access request properties, thereby reducing energy consumption while maintaining sufficient coherency checking for most cases.
2Reliability
If snoop operations are performed frequently to ensure up-to-date data, then data freshness is improved, but latency increases
Solution Approach 1:
The patent segments the snoop process into multiple phases that can be executed conditionally. The first snoop phase checks a subset of caches quickly, and only if that phase determines data may be present does the system proceed to the second phase or perform additional snooping. This reduces latency by avoiding unnecessary full-system snooping while still ensuring data freshness when needed.
Solution Approach 2:
The patent performs preliminary snoop operations in the first phase on a subset of caches before committing to more expensive full snooping. The snoop control storage is pre-configured with schemes that identify which caches to check first based on access patterns and address properties, allowing the system to quickly determine if further coherency checking is necessary.
3Use of energy by moving object
If multiple snoop schemes are defined for different access request properties, then energy efficiency is optimized, but device complexity increases
Solution Approach 1:
The snoop control storage structure serves multiple functions: it stores snoop schemes for different access request types, encodes phase information, identifies target caches, and provides conditional execution logic. This multi-functionality allows the patent to optimize energy efficiency across various access scenarios without proportionally increasing device complexity, as a single storage structure handles diverse snoop optimization needs.
Data Source
AI summary
The present invention provides a data processing apparatus and method for managing snoop operations. The data processing apparatus has a plurality of processing units for performing data processing operations requiring access to data in shared memory, with at least two of the processing units having a cache associated therewith for storing a subset of the data for access by that processing unit. A snoop-based cache coherency protocol is employed to ensure data accessed by each processing unit is up-to-date, and when an access request is issued the cache coherency protocol is referenced in order to determine whether a snoop process is required. Snoop control storage is provided which defines a plurality of snoop schemes, each snoop scheme defining a series of snoop phases to be performed to implement the snoop process, and each snoop phase requiring a snoop operation to be performed on either a single cache or multiple caches. When a snoop process is required, a snoop unit is used to reference the snoop control storage in order to identify, having regard to one or more properties of the access request, the snoop scheme to be employed to perform the snoop process. Such an approach provides a great deal of flexibility with regards to how snoop processes are implemented, in particular allowing different snoop schemes to be used dependent on the properties of the access request in question.


