Memory Data Versioning via Address Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Maintaining multiple versions of data in memory systems increases complexity in control logic for tracking and selecting the appropriate version for use, particularly in scenarios involving transaction requests and error recovery.

Innovation Solution

A memory management unit with an address translator that maps control information from transaction requests to physical resource addresses, allowing selective access to different data versions within the memory, and enabling efficient creation and management of new data versions to support parallel transactions and error recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple versions of data are maintained in memory, then error recovery capability and transaction parallelism are improved, but control logic complexity increases

Engineering Contradiction:
Improveerror recovery capabilityVSAvoidcontrol logic complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces version metadata as an intermediary structure that mediates between the memory controller and multiple data versions. This metadata contains version identifiers and mapping information that automatically directs access to the correct version, eliminating the need for complex control logic to track and manage multiple data versions manually.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the memory space into multiple versioned data regions, each associated with specific version metadata. This segmentation allows independent management of different data versions without requiring the entire memory control logic to handle all versions uniformly, reducing overall control complexity.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple versions of data are maintained in memory, then transaction parallelism is improved, but memory management complexity increases

Engineering Contradiction:
Improvetransaction parallelismVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The version metadata structure serves multiple functions simultaneously: it tracks version identifiers, maps logical addresses to physical versioned locations, and provides access control information. This multi-functionality eliminates the need for separate management mechanisms for each version, reducing memory management complexity while supporting parallel transactions.

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

3Reliability

If selective access to different data versions is enabled, then error recovery efficiency is improved, but access control complexity increases

Engineering Contradiction:
Improveerror recovery efficiencyVSAvoidaccess control complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The version metadata is designed to be self-descriptive, containing all necessary information for the memory controller to automatically determine which data version to access based on transaction requirements. This self-service approach allows the system to automatically select appropriate data versions for error recovery without requiring complex external access control logic.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11073986B2Memory data versioning
Publication Date: 2021.07.27 HEWLETT PACKARD ENTERPRISE DEV LP
  • US11073986B2 patent drawing
  • US11073986B2 patent drawing
  • US11073986B2 patent drawing

AI summary

A memory management unit receives a transaction request to perform an operation with respect to data in memory, the transaction request including control information. The memory management unit identifies, based on the control information, one of a plurality of versions of a given memory data, where the plurality of versions of the given memory data include a first version of the given memory data and a second version of the given memory data that is modified from the first version. The memory management unit accesses the identified version of the given memory data in response to the transaction request.