Dynamic Buffer Allocation for Nonvolatile Memory Zones

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory systems with nonvolatile memory, such as SSDs using NAND flash memory, require significant memory resources to manage a large number of zones due to the need for one-to-one correspondence between zones and buffers, leading to high memory usage.

Innovation Solution

Implementing a memory system with a controller that manages a smaller number of buffers than zones by dynamically allocating zones to buffers based on availability and last update time, allowing data to be distributed across multiple buffers and reducing the need for dedicated buffers for each zone.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the same number of buffers as zones is prepared for buffering data in a zoned namespace, then data can be buffered zone by zone, but a large amount of memory resources are required when a large number of zones need to be managed

Engineering Contradiction:
Improvedata buffering capabilityVSAvoidmemory resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies universality by enabling a single buffer to serve multiple zones through dynamic allocation. Instead of dedicating one buffer per zone, the controller allocates buffers to zones as needed, allowing the same buffer to be reused across different zones at different times. This multi-functional approach significantly reduces the total number of buffers required while maintaining the ability to buffer data for multiple zones simultaneously.

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

Solution Approach 2:

The patent implements dynamics through dynamic buffer allocation and zone assignment. The controller continuously monitors buffer availability and zone states, dynamically assigning zones to available buffers and reassigning buffers between zones based on current needs. This dynamic approach allows the system to adapt to varying data buffering requirements without requiring a fixed one-to-one mapping between buffers and zones.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If a large number of zones are managed in the memory system, then the zoned namespace can handle more data, but more memory resources are needed for buffers

Engineering Contradiction:
Improvezone management capabilityVSAvoidmemory resources
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent enables universality by designing buffers that can be dynamically assigned to multiple zones rather than being dedicated to a single zone. The controller manages a pool of buffers that can be allocated to any zone that needs buffering, allowing the same physical buffer resources to support a larger number of logical zones. This multi-functional buffer design decouples the number of zones from the number of required buffers.

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

Solution Approach 2:

The patent applies parameter changes by dynamically altering buffer-to-zone assignments based on system state. The controller changes which zones are assigned to which buffers depending on available memory resources, current data buffering needs, and zone activity. This dynamic reconfiguration allows the system to manage more zones with the same buffer resources by changing the allocation parameters rather than increasing buffer quantity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11520520B2Memory system and method of controlling nonvolatile memory
Publication Date: 2022.12.06 KIOXIA CORP
  • US11520520B2 patent drawing
  • US11520520B2 patent drawing
  • US11520520B2 patent drawing

AI summary

According to one embodiment, a controller receives from a host a first command for writing data sequentially to a first zone. When buffers include a first buffer to which the first zone is allocated, the controller stores the first data in the first buffer. When the buffers do not include the first buffer but include a free buffer, the controller allocates the first zone to a second buffer that is the free buffer and stores the first data in the second buffer. When the buffers include neither the first buffer nor a free buffer, the controller additionally allocates the first zone to a third buffer of which last update for storing data is the oldest among the buffers, and stores the first data in the third buffer to which the first zone is additionally allocated.