Cache Metadata for Software Transactional Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current CPU cache systems lack software accessibility to metadata, making it difficult for software programs to efficiently manage cache operations, especially in multiprocessor environments where cache coherence and parallel programming are complex.

Innovation Solution

Introducing software accessible metadata in the CPU cache, including per-addressed data, cache line, and overall cache state, with additional instructions that allow software programs to interact with this metadata, facilitating operations such as transactional memory management and cache line management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If CPU cache is used to reduce memory access time, then memory access speed is improved, but software cannot access cache metadata to manage cache operations efficiently

Engineering Contradiction:
Improvememory access speedVSAvoidsoftware accessibility to cache metadata
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The patent introduces a software-accessible interface (intermediary) that allows software programs to query and manage cache metadata. This intermediary layer enables software to interact with cache operations without exposing the underlying hardware complexity, resolving the contradiction between maintaining fast cache operation and enabling software control.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent enables software programs to autonomously manage cache operations by providing metadata accessibility. Software can independently query cache state, invalidate lines, and optimize caching behavior without requiring hardware intervention or complex external control mechanisms, allowing the system to serve itself.

Inventive Principle:
Principle #25Self-service

2Productivity

If cache lines are invalidated to retain new data, then cache capacity is optimized, but transactional memory operations lose data and require redundant bookkeeping

Engineering Contradiction:
Improvecache capacity utilizationVSAvoidtime for bookkeeping operations
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements feedback mechanisms where software transactional memory operations can query cache metadata to determine the current state of cache lines before and during transactions. This feedback allows the system to detect invalidations, track modified lines, and manage transactional memory bookkeeping efficiently without redundant operations.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent enables software to perform preliminary actions by querying cache metadata before initiating transactional memory operations. Software can pre-check cache line states, anticipate invalidations, and prepare appropriate bookkeeping actions in advance, reducing the time and overhead of post-operation bookkeeping.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple CPUs access shared memory with private caches, then processing parallelism is improved, but cache coherence management becomes complex

Engineering Contradiction:
Improveprocessing parallelismVSAvoidcache coherence management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates a universal software-accessible interface that works across multiple CPUs with different cache configurations. This unified interface allows software to manage cache coherence and transactional memory operations consistently across all processors, simplifying the complexity of maintaining coherence in multiprocessor environments while preserving parallelism.

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

Data Source

PatentUS8898652B2Cache metadata for accelerating software transactional memory
Publication Date: 2014.11.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8898652B2 patent drawing
  • US8898652B2 patent drawing
  • US8898652B2 patent drawing

AI summary

Various technologies and techniques are disclosed for providing a hardware accelerated software transactional memory application. The software transactional memory application has access to metadata in a cache of a central processing unit that can be used to improve the operation of the STM system. For example, open read barrier filtering is provided that uses an opened-for-read bit that is contained in the metadata to avoid redundant open read processing. Similarly, redundant read log validation can be avoided using the metadata. For example, upon entering commit processing for a particular transaction, a get-evictions instruction in an instruction set architecture of the central processing unit is invoked. A retry operation can be optimized using the metadata. The particular transaction is aborted at a current point and put to sleep. The corresponding cache line metadata in the metadata are marked appropriately to efficiently detect a write by another CPU.