IP Library Granted Patent US 12,474,857
Granted Patent B2
US 12,474,857 · App. 18/178,422 · Granted Nov 18, 2025

Memory system

Inventors: Akifumi Fukuda (Yokohama Kanagawa, JP); Kenta Yasufuku (Yokohama Kanagawa, JP)
Assignee: Kioxia Corporation
G06F3/0653G06F3/0656G06F3/0658G06F3/0679G06F3/0604
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,474,857
App. No.
18/178,422
Granted
Nov 18, 2025
Kind
B2
Abstract

A memory system includes a non-volatile memory and a controller including a memory having a lower access latency than the non-volatile memory. The controller is configured to track addresses of data stored in the non-volatile memory that were subject to prior wear leveling processes, in a buffer configured in the memory of the controller, perform a current wear leveling process on data stored in the non-volatile memory, and determine whether an address of the data subject to the current wear leveling process is stored in the buffer, and perform a pinning process to disable overwrite of data stored in the memory of the controller and corresponding to the address.

Claims (47)

1 . A memory system comprising:

a non-volatile memory; and

a controller including a memory having a lower access latency than the non-volatile memory, the controller configured to:

temporarily store, in the memory, data to be written into the non-volatile memory and data read from the non-volatile memory;

track logical addresses of data stored in the non-volatile memory that were subject to a first limited number of recent wear leveling processes, in a ring buffer configured in the memory of the controller;

perform a current wear leveling process on first data stored in the non-volatile memory, and determine whether an logical address of the first data subject to the current wear leveling process is included in the tracked logical addresses and whether the first data is stored in the memory; and

upon determining that the logical address of the first data is included in the tracked logical addresses and that the first data is stored in the memory, perform a pinning process to disable overwrite of the first data stored in the memory.

2 . The memory system according to claim 1 , wherein

the memory includes a first memory for unpinned data and a second memory for pinned data, and

the controller is configured to store the first data subject to the current wear leveling process in the first memory until the pinning process, and transfer the data from the first memory to the second memory during the pinning process.

3 . The memory system according to claim 2 , wherein the controller is configured to enable overwrite of the unpinned data in the first memory.

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

maintain an address list of logical addresses of data that are to be subjected to pinning processes; and

add the logical address of the first data subject to the current wear leveling process to the address list.

5 . The memory system according to claim 4 , wherein the controller is configured to:

upon determining that the first data subjected to the current wear leveling process is not stored in the memory, add the logical address of the first data subject to the current wear leveling process to the address list.

6 . The memory system according to claim 4 , wherein the controller is configured to add the logical address of the first data subject to the current wear leveling process to the address list in response to determining that a time period from a most recent one of the first limited number of recent wear leveling processes to the current wear leveling process is less than a threshold.

7 . The memory system according to claim 4 , wherein the controller is configured to:

perform another wear leveling process on second data stored in the non-volatile memory and the memory after the current wear leveling process, and determine that a logical address of the second data subject to the another wear leveling process is not included in the tracked logical addresses; and

perform an unpinning process to enable overwrite of the second data subject to the another wear leveling process.

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

maintain an address list of logical addresses of data that are to be subjected to pinning processes.

9 . The memory system according to claim 8 , wherein the controller is configured to perform an unpinning process to enable overwrite of the first data in the memory subjected to the current pinning process based on an access frequency thereof.

10 . A method of controlling a memory system including a non-volatile memory and a memory having a lower access latency than the non-volatile memory, the method comprising:

temporarily storing, in the memory, data to be written into the non-volatile memory and data read from the non-volatile memory;

tracking logical addresses of data stored in the non-volatile memory that were subject to a first limited number of recent wear leveling processes, in a ring buffer configured in the memory;

performing a current wear leveling process on first data stored in the non-volatile memory, and determining whether an logical address of the first data subject to the current wear leveling process is included in the tracked logical addresses and whether the first data is stored in the memory; and

upon determining that the logical address of the first data is included in the tracked logical addresses and the first data is stored in the memory, performing a pinning process to disable overwrite of the first data stored in the memory.

11 . The method according to claim 10 , wherein

the memory includes a first memory for unpinned data and a second memory for pinned data, and

the method further comprises storing the first data subject to the current wear leveling process in the first memory until the pinning process, and transferring the data from the first memory to the second memory during the pinning process.

12 . The method according to claim 11 , further comprising:

enabling overwrite of the unpinned data in the first memory.

13 . The method according to claim 10 , further comprising:

maintaining an address list of logical addresses of data that are to be subjected to pinning processes; and

adding the logical address of the first data subject to the current wear leveling process to the address list.

14 . The method according to claim 13 , further comprising:

upon determining that the first data subjected to the current wear leveling process is not stored in the memory, adding the logical address of the first data subject to the current wear leveling process to the address list.

15 . The method according to claim 13 , further comprising:

adding the logical address of the first data subject to the current wear leveling process to the address list in response to determining that a time period from a most recent one of the first limited number of recent wear leveling processes to the current wear leveling process is less than a threshold.

16 . The method according to claim 13 , further comprising:

performing another wear leveling process on second data stored in the non-volatile memory and the memory after the current wear leveling process, and determining that a logical address of the second data subject to the another wear leveling process is not included in the tracked logical addresses; and

performing an unpinning process to enable overwrite of the second data subject to the another wear leveling process.

17 . The method according to claim 10 , further comprising:

maintaining an logical address list of addresses of data that are to be subjected to pinning process.

18 . The method according to claim 17 , further comprising:

performing an unpinning process to enable overwrite of the first data in the memory subjected to the current pinning process based on an access frequency thereof.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2023
From: FUKUDA, AKIFUMI; YASUFUKU, KENTA
To: KIOXIA CORPORATION
Reel/Frame 064021/0212 →
Priority Claims (1)
JP 2022-099789 · Jun 21, 2022 · national
Continuity (1)
Related Publication 20230409229A1 · Dec 21, 2023
References Cited (58)
US 6000006A · Bruce · 1999 [cited by examiner]
US 10552085B1 · Chen · 2020 [cited by examiner]
US 10929028B2 · Kim · 2021 [cited by examiner]
US 10990537B1 · Moertl · 2021 [cited by examiner]
US 11704235B2 · Ochiai · 2023 [cited by examiner]
US 20070118688A1 · Lee · 2007 [cited by examiner]
US 20070204128A1 · Lee · 2007 [cited by examiner]
US 20070294490A1 · Freitas · 2007 [cited by examiner]
US 20090128942A1 · Ermolov · 2009 [cited by examiner]
US 20090157950A1 · Selinger · 2009 [cited by examiner]
US 20100064111A1 · Kunimatsu · 2010 [cited by examiner]
US 20100205354A1 · Suzuki · 2010 [cited by examiner]
US 20110072199A1 · Reiter · 2011 [cited by examiner]
US 20110078402A1 · Sato · 2011 [cited by examiner]
US 20110238897A1 · Abe · 2011 [cited by examiner]
US 20110271030A1 · Iaculo · 2011 [cited by examiner]
US 20120030405A1 · Kunimatsu · 2012 [cited by examiner]
US 20120030409A1 · Post · 2012 [cited by examiner]
US 20120030428A1 · Yasufuku · 2012 [cited by examiner]
US 20120135710A1 · Schell · 2012 [cited by examiner]
US 20120290772A1 · Asano · 2012 [cited by examiner]
US 20120290781A1 · Seo · 2012 [cited by examiner]
US 20130080717A1 · Uehara · 2013 [cited by examiner]
US 20130124787A1 · Schuette · 2013 [cited by examiner]
US 20130138870A1 · Yoon · 2013 [cited by examiner]
US 20130275657A1 · Kim · 2013 [cited by examiner]
US 20130346676A1 · Kim · 2013 [cited by examiner]
US 20140052893A1 · Zhang · 2014 [cited by examiner]
US 20140195724A1 · Shin · 2014 [cited by examiner]
US 20140237191A1 · Dong · 2014 [cited by examiner]
US 20150006795A1 · Becker · 2015 [cited by examiner]
US 20150280742A1 · Liu · 2015 [cited by examiner]
US 20160239383A1 · Feng · 2016 [cited by examiner]
US 20160274802A1 · Koo · 2016 [cited by examiner]
US 20160299688A1 · Devendrappa · 2016 [cited by examiner]
US 20170031629A1 · Nakamoto · 2017 [cited by examiner]
US 20170115901A1 · Franke · 2017 [cited by examiner]
US 20170115902A1 · Franke · 2017 [cited by examiner]
US 20170115903A1 · Franke · 2017 [cited by examiner]
US 20170199681A1 · Jain · 2017 [cited by examiner]
US 20170199769A1 · Jain · 2017 [cited by examiner]
US 20170199798A1 · Jain · 2017 [cited by examiner]
US 20180039573A1 · Shung · 2018 [cited by examiner]
US 20180157415A1 · Choi · 2018 [cited by examiner]
US 20180321878A1 · Hong · 2018 [cited by examiner]
US 20190018768A1 · Kim · 2019 [cited by examiner]
US 20190095328A1 · Naeimi · 2019 [cited by examiner]
US 20190102111A1 · Shung · 2019 [cited by examiner]
US 20190303007A1 · Hong · 2019 [cited by examiner]
US 20200104057A1 · Kim · 2020 [cited by examiner]
US 20200159411A1 · Mukaida · 2020 [cited by examiner]
US 20200272538A1 · Manning et al. · 2020 [cited by applicant]
US 20210374065A1 · Wei · 2021 [cited by examiner]
US 20220066938A1 · Kim · 2022 [cited by examiner]
US 20220164286A1 · Jeong · 2022 [cited by examiner]
US 20220188034A1 · Schuh · 2022 [cited by examiner]
H. Nomura, et al. “Proposal of an Adaptive Stubborn Cache Management,” IPSJ Transactions on Computing Systems, vol. 12, No. 3, Jul. 2019, pp. 76-86 (with English translation). [cited by applicant]
H. Nomura, et al. ““Stubborn” Strategy to Mitigate Remaining Cache Misses,” 2016 IEEE 34th International Conference on Computer Design (ICCD), 2016, pp. 388-391. [cited by applicant]