IP Library Granted Patent US 11,941,273
Granted Patent B2
US 11,941,273 · App. 17/743,295 · Granted Mar 26, 2024

Variable capacity Zone Namespace (ZNS) flash storage data path

Inventors: Oleg Kragel (San Jose, CA); Vijay Sivasankaran (Dublin, CA); Mikhail Palityka (Oakville, CA); Lawrence Vazhapully Jacob (Folsom, CA)
Assignee: Western Digital Technologies, Inc.
G06F3/064G06F3/0607G06F3/0635G06F3/0679
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 11,941,273
App. No.
17/743,295
Granted
Mar 26, 2024
Kind
B2
Abstract

Variable Capacity Zone Namespace (ZNS) Flash Storage Data Path. In one example, a data storage device including an electronic processor that, when executing a variable capacity scheme, is configured to determine whether a special indication regarding a particular zone in a ZNS is received, delay an association of a final flash block with the particular zone, receive and stage host data for the particular zone in a staging area, receive a zone close request, compact the host data with other host data for storage in other zones into second host data, and move the second host data to the final flash block that is associated with the particular zone and the other zones. The compaction of the host data with the other host data into the second host data reduces or eliminates padding in the final flash block, and consequently, reduces overhead in the data storage device.

Claims (100)

1. A data storage device comprising:

a memory including a plurality of zones in a Zone Namespace (ZNS); and

a data storage controller including an electronic processor and a data storage controller memory that includes a variable capacity scheme, the electronic processor, when executing the variable capacity scheme, is configured to:

determine whether a special indication is received from a host regarding a particular zone in the ZNS,

delay an association of a final flash block for the particular zone in response determining that to the special indication is received from the host regarding the particular zone in the ZNS,

receive host data from the host for storage in the particular zone,

stage the host data in a staging area in response to receiving the host data from the host,

receive a zone close request regarding the particular zone from the host, and

perform a folding algorithm, the folding algorithm includes

compacting the host data for storage in the particular zone with other host data for storage in other zones into second host data, and

moving the second host data from the staging area to the final flash block that is associated with the particular zone and the other zones.

2. The data storage device of claim 1 , wherein, compacting the host data for storage in the particular zone with the other host data for storage in the other zones into the second host data, the electronic processor is further configured to:

determine whether a final utilized capacity of the particular zone is less than a storage space of the final flash block in response to receiving receive the zone close request,

internally mark the particular zone as requiring folding into a location of the final flash block in response to determining the final utilized capacity of the particular zone is less than the storage space of the final flash block,

identify the second host data of two or more reduced capacity zones in the staging area that fit into the storage space of the final flash block in response to internally marking the particular zone as requiring folding into the location of the final flash block, the second host data including some or all of the host data for the storage in the particular zone, and

associate the two or more reduced capacity zones with the final flash block in response to identifying the second host data.

3. The data storage device of claim 2 , wherein the electronic processor is further configured to:

determine whether the final utilized capacity of the particular zone is equal to or greater than the storage space of the final flash block in response to receiving receive the zone close request,

associate the particular zone with the final flash block in response to determining the final utilized capacity of the particular zone is equal to the storage space of the final flash block, and

move the host data from the staging area to the final flash block that is associated with the particular zone in response to associating the particular zone with the final flash block.

4. The data storage device of claim 3 , wherein the electronic processor is further configured to:

associate the particular zone with a first flash block in response to determining the final utilized capacity of the particular zone is greater than the storage space of the final flash block,

move a first portion of the host data from the staging area to the first flash block that is associated with the particular zone in response to associating the particular zone with the first flash block, and

maintain a second portion of the host data in the staging area in response to associating the particular zone with the first flash block.

5. The data storage device of claim 1 , wherein the electronic processor is further configured to:

associate the particular zone with the final flash block in response to determining that to the special indication is not received from the host regarding the particular zone in the ZNS,

receive the host data from the host for storage in the particular zone,

stage the host data in the staging area in response to receiving the host data from the host,

determine whether the staging of the host data in the staging area for the particular zone is complete by determining whether the host data is approximately equal to or greater than a storage space of the final flash block, and

write a portion of the host data from the staging area for the particular zone to the final flash block that is associated with the particular zone in response to determining that the staging of the host data in the staging area for the particular zone is complete.

6. The data storage device of claim 5 , wherein the electronic processor is configured to:

add padding to the host data in response to determining that the staging of the host data in the staging area for the particular zone is not complete, and

writing the padding and the host data from the staging area for the particular zone to the final flash block that is associated with the particular zone in response to adding the padding to the host data,

wherein an amount of the padding and the host data is equal to the storage space of the final flash block.

7. The data storage device of claim 1 , wherein an amount of the second host data is equal to a storage space of the final flash block that is associated with the particular zone and the other zones.

8. A method comprising:

determining, with a data storage controller, whether a special indication is received from a host regarding a particular zone in a Zone Namespace (ZNS);

delaying, with the data storage controller, an association of a final flash block for the particular zone in response to determining that the special indication is received from the host regarding the particular zone in the ZNS;

receiving, with the data storage controller, host data from the host for storage in the particular zone;

staging, with the data storage controller, the host data in a staging area in response to receiving the host data from the host;

receiving, with the data storage controller, a zone close request regarding the particular zone from the host; and

performing, with the data storage controller, a folding algorithm, the folding algorithm includes

compacting the host data for storage in the particular zone with other host data for storage in other zones into second host data, and

moving the second host data from the staging area to the final flash block that is associated with the particular zone and the other zones.

9. The method of claim 8 , wherein compacting the host data for storage in the particular zone with the other host data for storage in the other zones into the second host data further includes

determining whether a final utilized capacity of the particular zone is less than a storage space of the final flash block in response to receiving receive the zone close request;

internally marking the particular zone as requiring folding into a location of the final flash block in response to determining the final utilized capacity of the particular zone is less than the storage space of the final flash block;

identifying the second host data of two or more reduced capacity zones in the staging area that fit into the storage space of the final flash block in response to internally marking the particular zone as requiring folding into the location of the final flash block, the second host data including some or all of the host data for the storage in the particular zone, and

associating the two or more reduced capacity zones with the final flash block in response to identifying the second host data.

10. The method of claim 9 , further comprising:

determining whether the final utilized capacity of the particular zone is equal to or greater than the storage space of the final flash block in response to receiving receive the zone close request;

associating the particular zone with the final flash block in response to determining the final utilized capacity of the particular zone is equal to the storage space of the final flash block; and

moving the host data from the staging area to the final flash block that is associated with the particular zone in response to associating the particular zone with the final flash block.

11. The method of claim 10 , further comprising:

associating the particular zone with a first flash block in response to determining the final utilized capacity of the particular zone is greater than the storage space of the final flash block;

moving a first portion of the host data from the staging area to the first flash block that is associated with the particular zone in response to associating the particular zone with the first flash block; and

maintaining a second portion of the host data in the staging area in response to associating the particular zone with the first flash block.

12. The method of claim 8 , further comprising:

associating the particular zone with the final flash block in response to determining that to the special indication is not received from the host regarding the particular zone in the ZNS;

receiving the host data from the host for storage in the particular zone;

staging the host data in the staging area in response to receiving the host data from the host;

determining whether the staging of the host data in the staging area for the particular zone is complete by determining whether the host data is approximately equal to or greater than a storage space of the final flash block; and

writing a portion of the host data from the staging area for the particular zone to the final flash block that is associated with the particular zone in response to determining that the staging of the host data in the staging area for the particular zone is complete.

13. The method of claim 12 , further comprising:

adding padding to the host data in response to determining that the staging of the host data in the staging area for the particular zone is not complete; and

writing the padding and the host data from the staging area to the final flash block that is associated with the particular zone in response to adding the padding to the host data,

wherein an amount of the padding and the host data is equal to the storage space of the final flash block.

14. The method of claim 8 , wherein an amount of the second host data is equal to a storage space of the final flash block that is associated with the particular zone and the other zones.

15. An apparatus comprising:

means for determining whether a special indication is received from a host regarding a particular zone in a Zone Namespace (ZNS);

means for delaying an association of a final flash block for the particular zone in response to determining that the special indication is received from the host regarding the particular zone in the ZNS;

means for receiving host data from the host for storage in the particular zone;

means for staging the host data in a staging area in response to receiving the host data from the host;

means for receiving a zone close request regarding the particular zone from the host; and

means for performing a folding algorithm, the folding algorithm includes

means for compacting the host data for storage in the particular zone with other host data for storage in other zones into second host data, and

means for moving the second host data from the staging area to the final flash block that is associated with the particular zone and the other zones.

16. The apparatus of claim 15 , wherein means for compacting the host data for storage in the particular zone with the other host data for storage in the other zones into the second host data further includes

means for determining whether a final utilized capacity of the particular zone is less than a storage space of the final flash block in response to receiving receive the zone close request;

means for internally marking the particular zone as requiring folding into a location of the final flash block in response to determining the final utilized capacity of the particular zone is less than the storage space of the final flash block;

means for identifying the second host data of two or more reduced capacity zones in the staging area that fit into the storage space of the final flash block in response to internally marking the particular zone as requiring folding into the location of the final flash block, the second host data including some or all of the host data for the storage in the particular zone; and

means for associating the two or more reduced capacity zones with the final flash block in response to identifying the second host data.

17. The apparatus of claim 16 , further comprising:

means for determining whether the final utilized capacity of the particular zone is equal to or greater than the storage space of the final flash block in response to receiving receive the zone close request;

means for associating the particular zone with the final flash block in response to determining the final utilized capacity of the particular zone is equal to the storage space of the final flash block; and

means for moving the host data from the staging area to the final flash block that is associated with the particular zone in response to associating the particular zone with the final flash block.

18. The apparatus of claim 17 , further comprising:

means for associating the particular zone with a first flash block in response to determining the final utilized capacity of the particular zone is greater than the storage space of the final flash block;

means for moving a first portion of the host data from the staging area to the first flash block that is associated with the particular zone in response to associating the particular zone with the first flash block; and

means for maintaining a second portion of the host data in the staging area in response to associating the particular zone with the first flash block.

19. The apparatus of claim 15 , further comprising:

means for associating the particular zone with the final flash block in response to determining that to the special indication is not received from the host regarding the particular zone in the ZNS;

means for receiving the host data from the host for storage in the particular zone;

means for staging the host data in the staging area in response to receiving the host data from the host;

means for determining whether the staging of the host data in the staging area for the particular zone is complete by determining whether the host data is approximately equal to or greater than a storage space of the final flash block; and

means for writing a portion of the host data from the staging area for the particular zone to the final flash block that is associated with the particular zone in response to determining that the staging of the host data in the staging area for the particular zone is complete.

20. The apparatus of claim 19 , further comprising:

means for adding padding to the host data in response to determining that the staging of the host data in the staging area for the particular zone is not complete; and

means for writing the padding and the host data from the staging area to the final flash block that is associated with the particular zone in response to adding the padding to the host data,

wherein an amount of the padding and the host data is equal to the storage space of the final flash block.

Assignments (8)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
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 LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2022
From: KRAGEL, OLEG; SIVASANKARAN, VIJAY; PALITYKA, MIKHAIL; VAZHAPULLY JACOB, LAWRENCE
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060381/0392 →
Continuity (1)
Related Publication 20230367500A1 · Nov 16, 2023