Memory Controller Aliased Memory Data Copy Elimination

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory systems face inefficiencies in data management between volatile and nonvolatile memory, particularly in creating aliases between memory blocks for optimized data access and storage, which can lead to issues like unnecessary data copying and alias management during power loss.

Innovation Solution

A memory controller is used to create and manage aliases between memory blocks, allowing data to be accessed from one block while written to another, with the ability to sever aliases and preserve data during writes, thereby optimizing data access and storage operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If data is copied between volatile and nonvolatile memory blocks, then data accessibility is improved, but system efficiency deteriorates due to unnecessary copying operations

Engineering Contradiction:
Improvedata accessibilityVSAvoidsystem efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent merges volatile and nonvolatile memory blocks into a unified address space through aliasing, allowing the same memory address to reference different physical memory blocks depending on power state. This eliminates the need for manual data copying between memory types while maintaining data accessibility, as the memory controller automatically redirects access to the appropriate memory block.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The memory controller acts as an intermediary between the processor and memory blocks, intercepting memory access requests and redirecting them to the correct physical memory block based on aliasing relationships and power state. This mediator approach transparently handles data accessibility without requiring copying operations, improving system efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If aliases are created between memory blocks for optimized access, then data access speed is improved, but alias management complexity increases

Engineering Contradiction:
Improvedata access speedVSAvoidalias management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The memory controller automatically manages aliasing relationships and access redirection without requiring software or hardware from other components to implement complex management logic. The aliasing metadata and redirection rules are handled self-service by the memory controller, reducing overall system complexity while maintaining fast data access through aliased memory blocks.

Inventive Principle:
Principle #25Self-service

3Reliability

If data is stored in nonvolatile memory to preserve data during power loss, then data integrity is improved, but access speed deteriorates compared to volatile memory

Engineering Contradiction:
Improvedata integrityVSAvoidaccess speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent implements dynamic aliasing where the same virtual memory address can be mapped to different physical memory blocks depending on the power state. When power is available, data is accessed from fast volatile memory blocks. When power is lost, the alias dynamically redirects to nonvolatile memory blocks that preserve data, thus maintaining both data integrity and optimal access speed under different conditions.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3005126B1Storage systems and aliased memory
Publication Date: 2021.03.31 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3005126B1 patent drawingFigure 1
  • EP3005126B1 patent drawingFigure 2
  • EP3005126B1 patent drawingFigure 3

AI summary

Aspects of the subject matter described herein relate to storage systems and aliased memory. In aspects, a file system driver or other component may send a request to a memory controller to create an alias between two blocks of memory. One of the blocks of memory may be used for main memory while the other of the blocks of memory may be used for a storage system. In response, the memory controller may create an alias between the blocks of memory. Until the alias is severed, when the memory controller receives a request for data from the block in main memory, the memory controller may respond with data from the memory block used for the storage system. The memory controller may also implement other actions as described herein.