Cache Directory Preserving Invalid Global State During Shared Line Install

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Preserving an invalid global domain indication when installing a shared cache line in a cache is challenging, as it can result in the loss of a shared copy of the cache line, leading to a performance penalty, and adding a specific directory state to encode both shared last and invalid global states is expensive in terms of area and power.

Innovation Solution

The technique involves spawning a castout invalid global command for the shared cache line while installing it in the cache, updating the cache directory to indicate the shared cache line's state, and storing a memory domain bit in main memory to ensure coherency, thereby preserving the invalid global domain indication without increasing the cache directory size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a shared cache line is installed in the cache without preserving the invalid global state, then the cache can accept the shared copy, but the invalid global domain indication is lost leading to performance penalty

Engineering Contradiction:
Improvecache line installation efficiencyVSAvoidinvalid global domain indication
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The cache controller performs preliminary actions by spawning a castout invalid global command before installing the shared cache line. This ensures the invalid global state is preserved and communicated to main memory before the shared copy is installed, preventing loss of coherence information while maintaining installation efficiency

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a specific directory state is added to encode both shared last and invalid global states, then coherency can be maintained, but the cache directory size and power consumption increase

Engineering Contradiction:
Improvecoherency maintenanceVSAvoidcache directory size
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent makes the existing invalid global state serve multiple functions: it both indicates that a copy exists in another node and serves as the basis for generating castout commands. This multi-functional use of the existing state encoding maintains coherency without requiring additional directory states, thus avoiding increased complexity and power consumption

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If the invalid global state is preserved when installing shared cache line, then coherency is maintained, but the shared copy may be discarded due to inability to store two versions

Engineering Contradiction:
Improvecoherency maintenanceVSAvoidshared cache line utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the invalid global indication from the cache line state and handles it separately through castout commands. This allows the shared copy to be installed in the cache while the invalid global state is managed independently via commands sent to main memory, preventing discarding of the shared copy while maintaining coherency

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9483403B2Techniques for preserving an invalid global domain indication when installing a shared cache line in a cache
Publication Date: 2016.11.01 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9483403B2 patent drawing
  • US9483403B2 patent drawing
  • US9483403B2 patent drawing

AI summary

A technique for operating a memory system for a node includes interrogating, by a cache, an associated cache directory to determine whether a shared cache line to be installed in the cache is associated with an invalid global state in the cache. The invalid global state specifies that a version of the shared cache line has been intervened off-node. In response to the shared cache line being in the invalid global state the cache spawns a castout invalid global command for the shared cache line. The shared cache line is installed in the cache. A coherence state for the shared cache line is updated in the associated cache directory to indicate the shared cache line is shared.