Persistent Memory Validation via Platform Simulator

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Persistent memory systems pose challenges for application developers in ensuring data consistency, as unexpected failures like hardware or power failures can result in data corruption, and existing tools may not adequately address these issues without requiring modifications to the operating system or hypervisor.

Innovation Solution

A computing device with a full platform simulator and test framework that simulates persistent memory operations, generates permutations of memory writes, and simulates power failures to verify the consistency of data using a user-supplied test function, allowing for automated testing without modifying the operating system or hypervisor.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional software development tools are used to verify application correctness, then application quality can be improved, but these tools are insufficient to adequately address data consistency issues in persistent memory systems

Engineering Contradiction:
Improvedata consistencyVSAvoidtool capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a persistent memory region serving as an intermediary between the application and the testing framework. This region acts as a controlled interface where memory operations can be traced and validated, enabling traditional tools to effectively verify data consistency without requiring modifications to the application code or existing toolchains.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a copy of the persistent memory region within the testing framework that mirrors the actual memory operations. This copy allows for replaying and analyzing memory writes without interfering with the actual application execution, enabling comprehensive validation while maintaining the original system's integrity.

Inventive Principle:
Principle #26Copying

2Reliability

If automated testing frameworks are implemented to validate persistent memory operations, then data consistency can be ensured, but the complexity of the testing system increases

Engineering Contradiction:
Improvedata consistencyVSAvoidtesting system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The testing framework is segmented into distinct functional components: a persistent memory region for controlled operations, a testing framework for validation logic, and a platform simulator for controlled execution. This segmentation allows each component to be developed and maintained independently, reducing overall system complexity while enabling comprehensive testing capabilities.

Inventive Principle:
Principle #1Segmentation

3Reliability

If permutations of memory writes are generated and replayed to simulate power failures, then the risk of data corruption can be reduced, but the testing time and computational resources increase

Engineering Contradiction:
Improvedata corruption riskVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary tracing of persistent memory writes during a single application execution pass. This preliminary action captures all memory operations in advance, allowing subsequent permutation and replay operations to work with pre-captured data rather than requiring multiple full application executions, thereby reducing overall testing time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates copies of the traced memory write sequences and replays them in various permutations within the controlled testing environment. This copying approach allows exhaustive testing of failure scenarios without requiring repeated execution of the entire application, significantly reducing testing time while maintaining comprehensive validation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9535820B2Technologies for application validation in persistent memory systems
Publication Date: 2017.01.03 INTEL CORP
  • US9535820B2 patent drawing
  • US9535820B2 patent drawing
  • US9535820B2 patent drawing

AI summary

Technologies for software testing include a computing device having persistent memory that includes a platform simulator and an application or other code module to be tested. The computing device generates a checkpoint for the application at a test location using the platform simulator. The computing device executes the application from the test location to an end location and traces all writes to persistent memory using the platform simulator. The computing device generates permutations of persistent memory writes that are allowed by the hardware specification of the computing device simulated by the platform simulator. The computing device replays each permutation from the checkpoint, simulates a power failure, and then invokes a user-defined test function using the platform simulator. The computing device may test different permutations of memory writes until the application's use of persistent memory is validated. Other embodiments are described and claimed.