Memory Controller Bank Mapping for Limited GC Table Scans

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory systems face inefficiencies in garbage collection processes, leading to decreased writeable memory areas due to fragmented data management and excessive access loads on the L2P table.

Innovation Solution

The memory controller divides the logical address space into banks and associates blocks with these banks, selectively scanning a portion of the L2P table to identify valid data, allowing for efficient garbage collection and defragmentation processes, reducing the scan range and access load.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the memory controller scans the entire L2P table to identify valid data during garbage collection, then all valid data can be found, but the access load on the L2P table increases and writeable memory area decreases

Engineering Contradiction:
Improvecompleteness of valid data identificationVSAvoidwriteable memory area
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The L2P table is divided into multiple banks, and the garbage collection process selectively scans only the bank containing the target block rather than the entire table. This segmentation reduces the scan range from the full L2P table size to just one bank's size, decreasing access load while maintaining the ability to find all valid data through targeted scanning

Inventive Principle:
Principle #1Segmentation

2Productivity

If the memory controller scans a limited portion of the L2P table to reduce access load, then writeable memory area is maintained, but the risk of missing valid data increases

Engineering Contradiction:
Improvewriteable memory areaVSAvoidcompleteness of valid data identification
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Before garbage collection, valid data locations are preliminarily identified and stored in the L2P table with their bank information. During GC, the system uses this pre-stored bank information to directly target the relevant bank for scanning, ensuring no valid data is missed while limiting the scan to only the necessary portion

Inventive Principle:
Principle #10Preliminary action

3Duration of action of stationary object

If the L2P table is stored in nonvolatile memory to preserve data, then data persistence is improved, but the complexity of address mapping and scan operations increases

Engineering Contradiction:
Improvedata persistenceVSAvoidaddress mapping complexity
Core Design Contradiction:
Duration of action of stationary objectVSDevice complexity

Solution Approach 1:

The L2P table is segmented into multiple banks stored in nonvolatile memory, with each bank managing a specific portion of the address space. This segmentation simplifies the mapping complexity by allowing the controller to work with smaller, organized units rather than a monolithic table, reducing the complexity of scan and access operations

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12499041B2Memory system limiting range of scan in garbage collection
Publication Date: 2025.12.16 KIOXIA CORP
  • US12499041B2 patent drawing
  • US12499041B2 patent drawing
  • US12499041B2 patent drawing

AI summary

According to one embodiment, a memory system includes: a nonvolatile memory including blocks each of which includes physical memory areas; and a memory controller dividing a logical address space into a plurality of banks and associating a block with each of the plurality of banks. The memory controller is configured to: selectively scan a portion related to a first bank among the plurality of banks in a table in which a physical address corresponding to a physical memory area in which valid data is stored is mapped on the logical address space; detect a first physical address corresponding to a first physical memory area in a first block associated with the first bank as a result of the scan; read first valid data stored in the first block based on the first physical address; and write the first valid data in a second block associated with the first bank.