Speculative Cache Line Marking for Parallel Store Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional systems face limitations in multiprocessor caching, particularly when dealing with shared cache lines, as they must either wait for all snoops to complete or evict the line, which reduces parallelism and increases latency, while not allowing later loads to access the data.

Innovation Solution

A speculative caching mechanism that marks cache lines with additional bits for transactional state, allowing transactions to be atomically committed or rolled back, enabling permissions acquisition and upgrade management without serially waiting for snoops, and using state machines to track upgrade requests and responses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the system waits for all snoops to complete before allowing the store to complete, then data correctness is maintained, but parallelism is reduced

Engineering Contradiction:
Improvedata correctnessVSAvoidparallelism
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by marking the cache line as speculative and allowing the store to complete before snoop responses are received. The system performs the store operation in advance, then commits or rolls back based on subsequent snoop outcomes, thereby maintaining data correctness while improving parallelism

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic state transitions for cache lines between shared, speculative, and committed states. The cache line state changes based on snoop responses and commit decisions, allowing the system to adaptively balance between data correctness and parallelism execution

Inventive Principle:
Principle #15Dynamics

2Productivity

If the system evicts the shared line to complete the store, then parallelism is improved, but latency increases and data accessibility is lost

Engineering Contradiction:
ImproveparallelismVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

Instead of evicting the cache line, the system performs preliminary action by marking it speculative and allowing the store to complete in place. This avoids the time-consuming eviction process while maintaining parallelism, and the data remains accessible for potential commit

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a speculative copy of the cache line state without physical eviction. The original cache line is marked as speculative and can be either committed or rolled back, effectively copying the state transition behavior without the overhead of actual eviction and re-fetching operations

Inventive Principle:
Principle #26Copying

3Productivity

If the system evicts the shared line, then parallelism is improved, but storage efficiency decreases

Engineering Contradiction:
ImproveparallelismVSAvoidstorage needs
Core Design Contradiction:
ProductivityVSLoss of substance

Solution Approach 1:

The system performs preliminary action by marking the cache line speculative rather than evicting it. This allows the store to complete with improved parallelism while retaining the data in storage, avoiding the storage loss that would occur with eviction

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The cache line serves itself by transitioning to a speculative state that allows store completion without eviction. The data remains in the cache structure, self-managing its state through the speculative marking mechanism, thereby maintaining storage efficiency while achieving parallelism

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9645929B2Speculative permission acquisition for shared memory
Publication Date: 2017.05.09 NVIDIA CORP
  • US9645929B2 patent drawing
  • US9645929B2 patent drawing
  • US9645929B2 patent drawing

AI summary

In a processor, a method for speculative permission acquisition for access to a shared memory. The method includes receiving a store from a processor core to modify a shared cache line, and in response to receiving the store, marking the cache line as speculative. The cache line is then modified in accordance with the store. Upon receiving a modification permission, the modified cache line is subsequently committed.