Persistent Memory Read Optimization via Cache Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current non-volatile storage systems face performance bottlenecks due to inefficient data reading processes, particularly in accessing and utilizing the parallelism within the storage system, leading to delays and reduced application performance in electronic devices.

Innovation Solution

Implementing a Persistent Memory Region (PMR) with a cache that shares its structure details with the host, allowing the host to send read requests that take advantage of parallelism by identifying and utilizing cache segments for concurrent data retrieval, thereby improving data reading efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional sequential read requests are sent to non-volatile storage system, then simplicity of host operation is maintained, but data reading speed and system performance deteriorate due to inability to utilize parallelism

Engineering Contradiction:
Improvedata reading speedVSAvoidhost operation complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The storage system divides the cache into multiple cache segments and provides segment information to the host. The host then sends read requests targeted at specific cache segments, enabling parallel processing of multiple requests simultaneously. This segmentation allows the host to efficiently utilize the storage system's parallelism without requiring complex operations.

Inventive Principle:
Principle #1Segmentation

2Productivity

If host sends multiple individual read requests for optimal data retrieval, then data reading efficiency improves, but operation complexity and time management burden increase

Engineering Contradiction:
Improvedata reading efficiencyVSAvoidhost operation ease
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The storage system automatically manages the cache segments and handles read requests efficiently. Once the host sends initial read requests for cache segments, the storage system self-manages the data retrieval and delivery process, reducing the host's operational burden while maintaining high productivity.

Inventive Principle:
Principle #25Self-service

3Loss of time

If storage system processes read requests sequentially, then processing simplicity is maintained, but latency increases and application performance deteriorates

Engineering Contradiction:
Improveread latencyVSAvoidparallelism management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The storage system pre-loads data into cache segments before the host needs it. By maintaining ready-to-use cache segments and providing segment information to the host, the system eliminates wait time and reduces latency without requiring complex parallelism management during actual read operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11656994B2Non-volatile memory with optimized read
Publication Date: 2023.05.23 SANDISK TECHNOLOGIES LLC
  • US11656994B2 patent drawing
  • US11656994B2 patent drawing
  • US11656994B2 patent drawing

AI summary

A non-volatile storage system that is implementing a storage region (e.g., a persistent memory region) which is accessible to a host (e.g., via a PCIe connection) and a cache for the storage region shares details of the structure of the storage region and/or the cache (e.g., cache segment size). With awareness of the shared details of the structure of the storage region and/or the cache, the host arranges and sends out requests to read data from the persistent memory region in a manner that takes advantage of parallelism within the non-volatile storage system. For example, the host may initially send out one read request per cache segment to cause the non-volatile storage system to load the cache. Subsequently, additional read requests are made to the non-volatile storage system, with the data already loaded (or starting to load) in the cache, thereby increasing performance.