IP Library Granted Patent US 12,499,041
Granted Patent B2
US 12,499,041 · App. 18/581,505 · Granted Dec 16, 2025

Memory system limiting range of scan in garbage collection

Inventors: Hirotsugu Kajihara (Yokohama, JP); Yu Nakanishi (Yokohama, JP); Kohei Oikawa (Kawasaki, JP); Kazuhiro Hiwada (Kamakura, JP)
Assignee: Kioxia Corporation
G06F12/0246G06F2212/7201G06F2212/7205
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,499,041
App. No.
18/581,505
Granted
Dec 16, 2025
Kind
B2
Abstract

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.

Claims (64)

1 . A memory system comprising:

a nonvolatile memory including a plurality of blocks each of which includes a plurality of physical memory areas; and

a memory controller configured to divide a logical address space into a plurality of banks and associate a block with each of the plurality of banks,

wherein the memory controller is configured to:

identify a first bank among the plurality of banks;

selectively scan a portion related to the first bank 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;

write the first valid data in a second block associated with the first bank,

detect a second physical address corresponding to a second physical memory area in one or a plurality of third blocks associated with the first bank as a result of the scan, the third block being different from the first block;

read second valid data stored in the third block based on the second physical address; and

write the second valid data together with the first valid data in the second block.

2 . The memory system according to claim 1 , wherein the memory controller is configured to cancel an association between the first block and the first bank after the first valid data is written in the second block.

3 . The memory system according to claim 2 , wherein the memory controller is configured to release the first block as a first free block after the first valid data is written in the second block.

4 . The memory system according to claim 3 , wherein the memory controller is configured to associate a second free block with the first bank.

5 . The memory system according to claim 1 , wherein the memory controller is configured to identify a bank to which a block whose number of valid data is equal to or less than a threshold value belongs as a bank that executes the scan.

6 . The memory system according to claim 1 , wherein the memory controller is configured to:

divide the logical address space in a plurality of alignment orders independently of the plurality of banks; and

write the first valid data and the second valid data in the second block in a state where the first valid data and the second valid data are redisposed in the alignment orders.

7 . The memory system according to claim 6 , wherein the memory controller is configured to determine whether to execute reading of the second valid data and writing of the second valid data together with the first valid data to the second block.

8 . The memory system according to claim 7 , wherein, in a case where a ratio of sequential accesses in accesses from a host is equal to or more than a threshold value, the memory controller is configured to read the second valid data and write the second valid data together with the first valid data to the second block.

9 . The memory system according to claim 7 , wherein, in a case where the second physical addresses whose number is equal to or more than a threshold value is detected, the memory controller is configured to:

read the second valid data; and

write the second valid data together with the first valid data in the second block.

10 . The memory system according to claim 9 , wherein, in a case where second physical addresses corresponding to all alignment orders are detected, the memory controller is configured to:

read the second valid data; and

write the second valid data together with the first valid data in the second block.

11 . The memory system according to claim 7 , wherein, in a case where a number of the detected first physical addresses is more than a number of the detected second physical addresses, the memory controller is configured to:

read the second valid data; and

write the second valid data together with the first valid data in the second block.

12 . The memory system according to claim 7 , wherein, in a case where a number of the detected first physical addresses is equal to or less than a number of the detected second physical addresses and a number of the third blocks is equal to or more than a threshold value, the memory controller is configured to:

read the second valid data; and

write the second valid data together with the first valid data in the second block.

13 . A memory system comprising:

a nonvolatile memory including a plurality of blocks each of which includes a plurality of physical memory areas;

a memory controller configured to divide a logical address space into a plurality of banks and associate a block with each of the plurality of banks, and

a buffer including a plurality of buffer units each of which includes a plurality of physical memory areas and that are associated with the plurality of respective banks, wherein

the memory controller is configured to:

identify a first bank among the plurality of banks;

selectively scan a portion related to the first bank 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,

a number of buffer units is equal to a number of banks, and

the memory controller is configured to store valid data stored in a block associated with a corresponding bank in each of the plurality of buffer units.

14 . The memory system according to claim 13 , wherein the memory controller is configured to:

further detect a third physical address corresponding to a third physical memory area in a first buffer unit associated with the first bank as a result of the scan;

read third valid data stored in the first buffer unit based on the third physical address; and

write the third valid data together with the first valid data in the second block.

15 . The memory system according to claim 1 , further comprising a cache including a plurality of cache lines each of which includes a plurality of physical memory areas,

wherein the memory controller is configured to store valid data associated with consecutive logical addresses in each of the plurality of cache lines.

16 . The memory system according to claim 15 , wherein the memory controller is configured to:

further detect a fourth physical address corresponding to a fourth physical memory area in a first cache line associated with the first bank as a result of the scan;

read fourth valid data stored in the first cache line based on the fourth physical address; and

write the fourth valid data together with the first valid data in the second block.

17 . The memory system according to claim 1 , wherein the block is a data erasing unit.

18 . The memory system according to claim 1 , wherein

the memory controller is configured to:

detect the first block associated with the first bank as a block to be garbage collection processed; and

detect the third block associated with the first bank as a block not to be garbage collection processed.

19 . The memory system according to claim 1 , wherein

the memory controller is configured to:

detect the first block as the block to be garbage collection processed in a case where number of valid data in the first block is equal to or less than a threshold value; and

detect the third block as the block not to be garbage collection processed in a case where number of valid data in the third block is more than the threshold value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2024
From: KAJIHARA, HIROTSUGU; NAKANISHI, YU; OIKAWA, KOHEI; HIWADA, KAZUHIRO
To: KIOXIA CORPORATION
Reel/Frame 067190/0465 →
Priority Claims (1)
JP 2023-025377 · Feb 21, 2023 · national
Continuity (1)
Related Publication 20240281370A1 · Aug 22, 2024
References Cited (12)
US 8762627B2 · Sela · 2014 [cited by applicant]
US 11216368B2 · Um · 2022 [cited by applicant]
US 12061792B1 · Yang · 2024 [cited by examiner]
US 20090271562A1 · Sinclair · 2009 [cited by examiner]
US 20120084489A1 · Gorobets · 2012 [cited by examiner]
US 20140068152A1 · Sinclair · 2014 [cited by applicant]
US 20150095546A1 · Bennett · 2015 [cited by examiner]
US 20200117592A1 · Berger · 2020 [cited by examiner]
US 20210089455A1 · Berger · 2021 [cited by examiner]
US 20230089083A1 · Nishino · 2023 [cited by examiner]
US 20230138215A1 · Hiwada et al. · 2023 [cited by applicant]
JP 202366803A · 2023 [cited by applicant]