NVMe Companion Namespace for Sub-Block Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory sub-systems face inefficiencies in data transfer due to read and memory amplification caused by accessing data at block levels, which is larger than the required data granularity, leading to increased overhead and latency, particularly in applications with small spatial locality data patterns.

Innovation Solution

Implementing a companion NVMe memory namespace that allows sub block access through a fixed mapping between memory and block namespaces, using a sub block descriptor within NVMe commands to transfer only the required data portion, reducing overhead and latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If block level access is used in conventional memory sub-systems, then data transfer simplicity is maintained, but read amplification and memory amplification occur due to transferring larger data portions than required

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidread amplification
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent introduces sub block level access as a segmentation of the traditional block level access. By dividing blocks into smaller sub blocks, the system can transfer only the necessary data portion rather than the entire block, reducing read amplification and improving data transfer efficiency for applications with small spatial locality data patterns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic data transfer granularity by allowing the memory sub-system to adaptively select between block level and sub block level access based on the actual data access requirements. This dynamic approach enables the system to optimize performance for different workloads, switching from fixed block access to flexible sub block access when needed.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If block level access is used, then memory access simplicity is maintained, but latency increases due to transferring larger data portions than required

Engineering Contradiction:
Improvememory access simplicityVSAvoidaccess latency
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

By segmenting blocks into sub blocks, the system can perform more targeted data transfers that reduce latency. The sub block access mechanism maintains simplicity through a fixed mapping between memory and block namespaces, while achieving faster access by transferring only necessary data portions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a sub block descriptor as an intermediary structure that enables sub block level access. This descriptor contains information about the desired sub block access and works with the fixed mapping between memory and block namespaces to achieve efficient data transfer without complicating the overall access mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If sub block access is implemented with a companion NVMe memory namespace, then data transfer precision is improved, but device complexity increases

Engineering Contradiction:
Improvedata access granularityVSAvoidnamespace mapping complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent implements a companion NVMe memory namespace that provides multi-functionality by supporting both block level access (through the block namespace) and sub block level access (through the memory namespace). This universal approach allows a single system to handle different data access requirements without requiring separate systems, thereby managing complexity while improving precision.

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

Solution Approach 2:

The patent creates a companion memory namespace that copies the structure of the block namespace but operates at a finer granularity. This copying approach allows sub block access to be implemented as a parallel namespace structure, making the complexity manageable through systematic duplication rather than fundamental redesign.

Inventive Principle:
Principle #26Copying

4Adaptability or versatility

If conventional block level access is used, then system compatibility is maintained, but overhead increases due to transferring larger data portions than required

Engineering Contradiction:
ImproveNVMe specification compatibilityVSAvoiddata transfer overhead
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent implements a dynamic access mechanism that can switch between block level and sub block level access based on workload requirements. This dynamic capability maintains compatibility with existing NVMe specifications for block access while adding the ability to reduce overhead through sub block access when needed, thereby adapting to different scenarios without sacrificing compatibility.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

By segmenting the data access mechanism into block level and sub block level interfaces, the patent maintains compatibility with conventional NVMe block access while adding finer-grained access capability. The segmentation allows the system to use simple block access for compatibility-critical scenarios and optimized sub block access when overhead reduction is prioritized.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250383814A1Sub Block Access via Memory Namespace Command Set
Publication Date: 2025.12.18 MICRON TECHNOLOGY INC
  • US20250383814A1 patent drawing
  • US20250383814A1 patent drawing
  • US20250383814A1 patent drawing

AI summary

A memory sub-system, having: a host interface operatable on a computer bus; a non-volatile memory; and a controller. In response to a request to create a first namespace, the controller create the first namespace and a second namespace having a same storage capacity as the first namespace. The first namespace has a first granularity level; and the second namespace has a second granularity level different from the first granularity level. The first namespace and the second namespace represent a storage capacity provided by a same set of storage resources in the memory sub-system. The controller maintains a mapping between logical addresses defined in the first namespace and physical addresses of the set of storage resources, and process access to addresses in the second namespace via the mapping between logical addresses defined in the first namespace and physical addresses of the set of storage resources.