Inclusive Snoop Directory Memory for Data Coherency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face significant overhead in terms of circuit area and power consumption due to the large storage requirements of snoop filters, particularly exclusive snoop directories, which are needed to maintain data coherence as the number of shared memory locations and consumers increases, leading to geometric increases in snoop request traffic.

Innovation Solution

The implementation of an inclusive snoop directory memory that breaks the one-to-one relationship between directory lines and main cache lines, using directory lines to refer to multiple main cache lines and containing multiple snoop vectors for different memory address sub-regions, allowing for a more compact and efficient design that reduces area and power overhead while maintaining effective data sharing management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If an exclusive snoop directory is used to track all memory addresses, then data coherence is maintained, but circuit area and power consumption increase significantly

Engineering Contradiction:
Improvedata coherenceVSAvoidsnoop directory storage area
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent segments the memory address space into multiple regions, with each region tracked by a separate directory entry. This divides the large exclusive snoop directory into smaller manageable segments, reducing the area required for each directory entry while maintaining coverage of the entire address space through multiple segmented directories.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension to the snoop directory structure by organizing directories in multiple levels. Instead of a flat single-level directory that requires large area, the hierarchical structure allows compact representation by grouping address regions, effectively trading one dimension (area) for another (hierarchy depth).

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If an inclusive snoop directory tracks all shared data, then data sharing is managed, but area and power consumption increase with system size

Engineering Contradiction:
Improvedata sharing managementVSAvoidsnoop directory power consumption
Core Design Contradiction:
ReliabilityVSUse of energy by stationary object

Solution Approach 1:

The patent implements partial tracking by maintaining inclusive snoop directory information only for shared data regions, rather than tracking all memory addresses. This partial action approach reduces power consumption by activating and maintaining directory entries only when needed for shared data,而非 continuously for the entire address space.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If snoop filters are used to reduce snoop request traffic, then coherence overhead is reduced, but circuit area and power consumption increase

Engineering Contradiction:
Improvesnoop request handling efficiencyVSAvoidsnoop filter power consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary anti-action by pre-identifying and marking shared data regions in the inclusive snoop directory before snoop requests occur. This preliminary marking allows the system to preemptively avoid generating snoop requests for non-shared data, thereby reducing snoop traffic and associated power consumption before the actual data access occurs.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS9304923B2Data coherency management
Publication Date: 2016.04.05 ARM LTD
  • US9304923B2 patent drawing
  • US9304923B2 patent drawing
  • US9304923B2 patent drawing

AI summary

A data processing systems employing a coherent memory system comprises multiple main cache memories. An inclusive snoop directory memory stores directory lines. Each directory line includes a directory tag and multiple snoop vectors. Each snoop vector relates to a span of memory addresses corresponding to the cache line size within the main cache memories.