IP Library › Granted Patent US 12,265,733
Granted Patent B2
US 12,265,733 · App. 18/449,428 · Granted Apr 1, 2025

Segregating large data blocks for data storage system

Inventors: Niles Yang (Mountain View, CA); Daniel J. Linnen (Limestone, TN); Judah Gamliel Hahn (Ofra, IL)
Assignee: Sandisk Technologies, Inc.
G06F3/0658G06F3/064G06F3/0683G06F3/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,265,733
App. No.
18/449,428
Filed
Aug 14, 2023
Granted
Apr 1, 2025
Kind
B2
Art Unit
2137
USPC
711/154
Abstract

Methods and apparatus for efficiently handling large data files and their updates in NAND memory. In one example, provided is a data-storage system configured to reduce the frequency of data relocations by segregating a large data file into a plurality of subfiles. The size of such subfiles is appropriately selected to reduce the probability of occurrence for host-relocation conflicts and the magnitude of write amplification, thereby enabling the data-storage system to provide better quality of service while substantially maintaining acceptable levels of other pertinent performance characteristics. In some examples, a sequence of host read-modify-write commands is handled by generating a copy of implicated subfiles in a data buffer, applying subfile updates to the copy in the data buffer in accordance with the sequence, and relocating the implicated subfiles in the NAND memory using the updated versions thereof from the data buffer.

Claims (50)

1. A data storage device, comprising:

a nonvolatile memory to store data;

a second memory to store a logical-to-physical (L2P) table and a subfile mapping table; and

a controller coupled to the nonvolatile memory and the second memory and configured to:

in response to a host command to write a large data file to the nonvolatile memory, segregate the large data file into a plurality of subfiles, the large data file having a file size larger than a first fixed size, each subfile of the plurality of subfiles having a respective size smaller than or equal to the first fixed size;

store a first mapping of the plurality of subfiles in the subfile mapping table, the first mapping including, for each subfile of the plurality of subfiles, a respective word-line physical address;

cause the plurality of subfiles to be written to the nonvolatile memory based on the first mapping; and

access the L2P table and the subfile mapping table to control a memory operation on the large data file in the nonvolatile memory,

wherein, in response to a sequence of host read-modify-write (RMW) commands, the controller is further configured to:

generate a copy of one or more implicated subfiles of the plurality of subfiles in a data buffer;

apply subfile updates corresponding to the sequence of host RMW commands to the copy; and

in response to re-allocation of the data buffer, cause relocation of the one or more implicated subfiles in the nonvolatile memory.

2. The data storage device of claim 1 , wherein the first fixed size is a meta-block word-line capacity or a jumbo-block word-line capacity, the jumbo-block word-line capacity being an integer multiple of the meta-block word-line capacity, the meta-block word-line capacity being a combined data capacity of NAND memory blocks connected to a same word line in a single physical die of the nonvolatile memory or an integer multiple of said combined data capacity in one or more physical dies of the nonvolatile memory.

3. The data storage device of claim 1 , wherein the controller is further configured to:

in response to a host command to write a small data file to the nonvolatile memory, store a mapping of the small data file in the L2P table, the small data file having a file size smaller than the first fixed size; and

cause the small data file to be written to the nonvolatile memory based on said mapping of the small data file.

4. The data storage device of claim 3 , wherein the first mapping causes the plurality of subfiles to be interleaved with a plurality of small data files in the nonvolatile memory.

5. The data storage device of claim 1 , wherein the controller is further configured to update the first mapping in the subfile mapping table in accordance with the relocation.

6. The data storage device of claim 1 , wherein the controller is configured not to apply the subfile updates corresponding to the sequence of host RMW commands to the one or more implicated subfiles in the nonvolatile memory until the relocation.

7. The data storage device of claim 1 , wherein the first mapping causes an individual subfile of the plurality of subfile to occupy, in the nonvolatile memory, an array of NAND memory blocks connected to a single word line in a single physical die of the nonvolatile memory or two or more instances of said array in one or more physical dies of the nonvolatile memory.

8. The data storage device of claim 7 ,

wherein at least one NAND memory block in the array of NAND memory blocks has stored therein both a smaller subfile of a first large data file and a smaller subfile of a second large data file; and

wherein the smaller subfile of the first large data file and the smaller subfile of a second large data file have a combine size equal to the first fixed size.

9. The data storage device of claim 1 , wherein the first mapping causes an individual subfile of the plurality of subfiles to occupy, in the nonvolatile memory, a first array of NAND memory blocks connected to a first word line in a physical die of the nonvolatile memory and a second array of NAND memory blocks connected to a second word line in the physical die of the nonvolatile memory.

10. The data storage device of claim 1 , wherein the first mapping causes the plurality of subfiles to be interleaved with a plurality of other data files or other subfiles in the nonvolatile memory.

11. A method performed by a data storage device, the method comprising:

in response to a host command to write a large data file to a nonvolatile memory, segregating, via a controller, the large data file into a plurality of subfiles, the large data file having a file size larger than a first fixed size, each subfile of the plurality of subfiles having a respective size smaller than or equal to the first fixed size;

storing, via the controller, a first mapping of the plurality of subfiles in a subfile mapping table, the first mapping including, for each subfile of the plurality of subfiles, a respective word-line physical address;

causing, via the controller, the plurality of subfiles to be written to the nonvolatile memory based on the first mapping;

accessing, via the controller, a logical-to-physical (L2P) table and the subfile mapping table to control a memory operation on the large data file in the nonvolatile memory;

receiving, via the controller, a sequence of host read-modify-write (RMW) commands;

generating, via the controller, a copy of one or more implicated subfiles of the plurality of subfiles in a data buffer, the one or more implicated subfiles being implicated by the sequence of host RMW commands;

applying, via the controller, subfile updates corresponding to the sequence of host RMW commands to the copy; and

in response to re-allocation of the data buffer, causing, via the controller, relocation of the one or more implicated subfiles in the nonvolatile memory.

12. The method of claim 11 , wherein the first fixed size is a meta-block word-line capacity or a jumbo-block word-line capacity, the jumbo-block word-line capacity being an integer multiple of the meta-block word-line capacity, the meta-block word-line capacity being a combined data capacity of NAND memory blocks connected to a same word line in a single physical die of the nonvolatile memory.

13. The method of claim 11 , further comprising:

in response to a host command to write a small data file to the nonvolatile memory, storing, via the controller, a mapping of the small data file in the L2P table, the small data file having a file size smaller than the first fixed size; and

causing, via the controller, the small data file to be written to the nonvolatile memory based on said mapping of the small data file.

14. The method of claim 11 , wherein the controller is configured to update the first mapping in the subfile mapping table in accordance with the relocation.

15. The method of claim 11 , wherein the controller is configured not to apply the subfile updates corresponding to the sequence of host RMW commands to the one or more implicated subfiles in the nonvolatile memory until the relocation.

16. The method of claim 11 , wherein the first mapping causes an individual subfile of the plurality of subfiles to occupy, in the nonvolatile memory, a first array of NAND memory blocks connected to a first word line in a physical die of the nonvolatile memory and a second array of NAND memory blocks connected to a second word line in the physical die of the nonvolatile memory.

17. A data storage device, comprising:

means for segregating a large data file into a plurality of subfiles in response to a host command to write the large data file to a nonvolatile memory, the large data file having a file size larger than a first fixed size, each subfile of the plurality of subfiles having a respective size smaller than or equal to the first fixed size;

means for storing a first mapping of the plurality of subfiles in a subfile mapping table, the first mapping including, for each subfile of the plurality of subfiles, a respective word-line physical address;

means for causing the plurality of subfiles to be written to the nonvolatile memory based on the first mapping;

means for accessing a logical-to-physical (L2P) table and the subfile mapping table to control a memory operation on the large data file in the nonvolatile memory;

means for receiving a sequence of host read-modify-write (RMW) commands;

means for generating a copy of one or more implicated subfiles of the plurality of subfiles in a data buffer, the one or more implicated subfiles being implicated by the sequence of host RMW commands;

means for applying subfile updates corresponding to the sequence of host RMW commands to the copy; and

means for causing relocation of the one or more implicated subfiles in the nonvolatile memory in response to re-allocation of the data buffer.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065657/0158 →
PATENT COLLATERAL AGREEMENT- A&R Recorded Nov 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 065656/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2023
From: YANG, NILES; LINNEN, DANIEL J.; HAHN, JUDAH GAMLIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064594/0224 →
Continuity (2)
Provisional Application 63386938 · Dec 12, 2022
Related Publication 20240192886A1 · Jun 13, 2024
References Cited (16)
US 10101909B2 · Song · 2018 [cited by applicant]
US 10223022B2 · Syu et al. · 2019 [cited by applicant]
US 10762000B2 · Chang et al. · 2020 [cited by applicant]
US 10776049B2 · Kim · 2020 [cited by applicant]
US 20150169228A1 · Sivasankaran · 2015 [cited by examiner]
US 20150347026A1 · Thomas · 2015 [cited by applicant]
US 20170109371A1 · Zheng · 2017 [cited by examiner]
US 20180121135A1 · Lee · 2018 [cited by examiner]
US 20180267706A1 · Li et al. · 2018 [cited by applicant]
US 20180321874A1 · Li et al. · 2018 [cited by applicant]
US 20190056866A1 · Kang · 2019 [cited by examiner]
US 20190272118A1 · Jin · 2019 [cited by applicant]
US 20200233610A1 · Sun et al. · 2020 [cited by applicant]
US 20210064292A1 · Choi · 2021 [cited by examiner]
US 20240103739A1 · SeyedzadehDelcheh · 2024 [cited by examiner]
Kim et al. “Improving Performance and Lifetime of Large-Page NAND Storages Using Erase-Free Subpage Programming,” DAC '17: Proceedings of the 54th Annual Design Automation Conference 2017, Jun. 2017, Article No. 24, pp.… [cited by applicant]