Flash Memory Data Rearrangement for Lower Random Read Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The performance of memory systems with flash memories, such as SSDs, deteriorates due to clusters being arranged across multiple pages of the flash memory as the memory becomes exhausted, leading to increased error correction code length and longer read latencies.

Innovation Solution

A memory system with a controller that counts the number of random reads and adaptively rearranges data clusters based on this count to minimize the frequency of clusters spanning across two pages, thereby optimizing data placement and reducing performance degradation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data clusters are arranged in flash memory as the memory becomes exhausted, then the storage capacity is utilized, but the performance deteriorates due to clusters spanning across multiple pages

Engineering Contradiction:
Improvestorage capacity utilizationVSAvoidmemory system performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing data rearrangement before the memory becomes completely exhausted. The controller proactively identifies and rearranges clusters that would span across page boundaries during garbage collection operations, preventing performance degradation before it occurs. This is evident in the embodiment where the controller rearranges data during garbage collection to ensure clusters are contained within single pages, rather than waiting until performance issues manifest.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If clusters are arranged across multiple pages to utilize exhausted memory, then storage space is maximized, but read latency increases

Engineering Contradiction:
Improveavailable storage spaceVSAvoidread latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent applies local quality by making the data arrangement adaptive to local conditions. The controller analyzes the specific state of each page and cluster, and makes localized rearrangement decisions based on which clusters are frequently accessed and which pages have available space. This selective, localized rearrangement during garbage collection ensures that clusters requiring fast access are kept within single pages, minimizing read latency while still utilizing exhausted memory space.

Inventive Principle:
Principle #3Local quality

3Quantity of substance

If clusters span across two pages, then more storage regions can be used, but the access frequency increases and performance degrades

Engineering Contradiction:
Improvestorage region utilizationVSAvoiddata access efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent applies preliminary action by proactively preventing clusters from spanning across page boundaries during the garbage collection process. The controller identifies clusters that would cross page boundaries and rearranges them beforehand, ensuring that high-access-frequency clusters are contained within single pages. This preliminary rearrangement maintains data access efficiency while still allowing the system to utilize exhausted storage regions by carefully managing cluster placement.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4524754B1Memory system and data rearrangement method
Publication Date: 2026.03.18 KIOXIA CORP
  • EP4524754B1 patent drawingFigure 1
  • EP4524754B1 patent drawingFigure 2(A)~2(C)
  • EP4524754B1 patent drawingFigure 3(A)~3(C)

AI summary

According to one embodiment, a memory system (1) includes a nonvolatile memory (12) and a controller (11). The controller (11) includes a counter (131) counting a number of accesses of data stored in the nonvolatile memory, in a first unit, the first unit being a unit of access to data from the host. The controller (11) determines whether a read command received from a host is a command for a sequential read or a random read, increments a value of the counter, which corresponds to data specified by the read command, when the read command is the command for the random read, and in a process of moving first data of a first block to a second block, controls rearrangement of the first data of the first block to the second block based on the value of the counter when the first data has a size of the first unit and needs to be arranged across two pages in the second block.