Persistent Memory Analysis via Load Dependency Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Persistent memory systems face challenges in ensuring data consistency, leading to potential data corruption during hardware or power failures due to the asynchronous nature of data durability and persistence order, which existing technologies fail to adequately address.

Innovation Solution

A computing device performs a two-phase analysis of persistent memory programs, recording and replaying events to construct a load dependency graph, identifying programming errors, commit points, and atomic store operations, using instructions like CLFLUSHOPT, SFENCE, and PCOMMIT to ensure data integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If persistent memory is used to provide high-performance non-volatile storage, then data persistence and performance are improved, but data consistency and reliability deteriorate due to asynchronous durability and power failure risks

Engineering Contradiction:
Improvememory performanceVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by inserting fence instructions and commit points into the persistent memory program before execution. These preliminary structural modifications ensure that memory operations are properly ordered and committed atomically, preventing data inconsistency during power failures while maintaining high performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses fence instructions (SFENCE, LFENCE, MFENCE) and commit points as intermediary mechanisms between regular memory operations and the persistent memory subsystem. These intermediaries act as synchronization barriers that ensure proper ordering and visibility of memory operations across different cores and cache levels, resolving the reliability issue without sacrificing performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If traditional volatile memory is used, then data consistency is maintained, but data persistence deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoiddata persistence
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The patent merges the characteristics of volatile memory (high speed, byte-addressability) and non-volatile memory (persistence) by implementing persistent memory as a unified memory space that supports both volatile and non-volatile access patterns. The system combines the performance of volatile memory with the persistence of non-volatile memory through hardware-supported atomic operations and fencing mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If persistent memory operations are made atomic to ensure data integrity, then reliability is improved, but device complexity increases due to additional fencing and commit operations

Engineering Contradiction:
Improvedata integrityVSAvoidprogram complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent enables persistent memory operations to be self-service by providing hardware-supported atomic store operations that automatically ensure proper ordering and visibility without requiring complex software management. The memory subsystem itself provides the fencing and commit functionality through dedicated instructions, reducing the burden on application developers.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system changes the parameters of memory operations by introducing new persistent memory-specific instructions (PCOMMIT, CLFLUSHOPT, SFENCE) that alter the behavior of standard load and store operations. These parameter changes enable atomicity and proper ordering without requiring complex software protocols, as the hardware directly supports the new operation modes.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If developers manually ensure data consistency in persistent memory, then reliability is improved, but ease of operation deteriorates due to programming challenges

Engineering Contradiction:
Improvedata consistencyVSAvoidprogramming ease
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent makes persistent memory programming self-service by providing hardware-supported atomic operations and automatic fencing mechanisms that work correctly without requiring developer intervention. The system automatically handles the complexity of ensuring proper ordering and visibility, allowing developers to write simple sequential code that executes correctly in the persistent memory environment.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces fence instructions and commit points as intermediary mechanisms that automatically manage the complexity of persistent memory operations. These intermediaries handle the synchronization and ordering requirements transparently, shielding developers from the underlying complexity while ensuring data consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10540254B2Technologies for analyzing persistent memory programs
Publication Date: 2020.01.21 INTEL CORP
  • US10540254B2 patent drawing
  • US10540254B2 patent drawing
  • US10540254B2 patent drawing

AI summary

Technologies for analyzing persistent memory programs include a computing device having persistent memory. The computing device executes a persistent memory program that includes one or more store operations to the persistent memory. The computing device records persistent memory store events of the persistent memory program and constructs a load dependency graph of the persistent memory program. The persistent memory store events may include persistent memory stores, cache flush events, memory fence events, and persistent memory commit events. The computing device replays the persistent memory store events and analyzes the load dependency graph. The computing device may identify persistency programming errors in the persistent memory program. The computing device may identify persistent memory commit points of the persistent memory program. The computing device may identify groups of persistent memory store operations to persist atomically. Other embodiments are described and claimed.