IP Library Granted Patent US 12,253,949
Granted Patent B2
US 12,253,949 · App. 18/359,028 · Granted Mar 18, 2025

Processing commands in a sequential write required zone model

Inventors: Rotem Sela (Sunnyvale, CA); Amir Segev (Meitar, IL)
Assignee: Sandisk Technologies, Inc.
G06F12/0855G06F3/0659G06F12/0868G06F12/10G06F2212/1016
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,253,949
App. No.
18/359,028
Granted
Mar 18, 2025
Kind
B2
Abstract

A data storage device implements a Zoned Namespace (ZNS) storage architecture. The data storage device delays the execution of write commands that are received out of sequence instead of rejecting the write commands. The write commands that are received out of sequence are reordered according to a logical block address (LBA) associated with each write command. The data storage device also checks for deadlock conditions that may arise due to the execution of the write commands being delayed and/or due to the write commands being reordered.

Claims (48)

1. A method, comprising:

receiving, from a host device, a sequential zone storage write command;

determining, based at least in part, on a logical block address (LBA) associated with the sequential storage write command, whether the sequential zone storage write command was received in sequence with respect to a previously received sequential zone storage write command; and

based, at least in part, on determining the sequential zone storage write command was received out of sequence with respect to the previously received sequential zone storage write command:

determining an amount of memory needed to store data associated with the sequential zone storage write command and an amount of memory needed to store data associated with one or more intervening sequential zone storage write commands, the one or more intervening sequential zone storage write commands falling in sequence between the sequential storage write command and the previously received sequential zone storage write command;

determining whether a write cache has sufficient memory to store the amount of data associated with the sequential zone storage write command and the amount of data associated with the one or more intervening sequential zone storage write commands;

based, at least in part, on determining the write cache has sufficient memory, determining whether a command completion counter is less than a command queue threshold;

based, at least in part, on determining the command completion counter is less than the command queue threshold, causing the data associated with the sequential zone storage write command to be stored in the write cache.

2. The method of claim 1 , wherein causing the data associated with the sequential zone storage write command to be stored in the write cache comprises causing the data associated with the sequential zone storage write command to be stored at a particular location within the write cache.

3. The method of claim 2 , wherein the particular location is associated with the LBA of the sequential zone storage write command.

4. The method of claim 1 , further comprising updating an available amount of memory of the write cache.

5. The method of claim 1 , further comprising sending a command completion message to the host device based, at least in part, on the data associated with the sequential zone storage write command being stored in the write cache.

6. The method of claim 1 , further comprising sending a re-try response to the host device based, at least in part, on determining the write cache has insufficient memory to store the amount of data associated with the sequential zone storage write command and the amount of data associated with the one or more intervening sequential zone storage write commands.

7. The method of claim 1 , further comprising sending a re-try response to the host device based, at least in part, on determining the command completion counter is greater than the command queue threshold.

8. The method of claim 1 , further comprising:

determining whether the LBA associated with the sequential storage write command is equivalent to a zone write pointer associated with a zone of a memory device; and

based, at least in part, on determining the LBA associated with the sequential storage write command is equivalent to the zone write pointer associated with the zone of the memory device, sending a command completion indication to the host device.

9. The method of claim 8 , further comprising updating the zone write pointer based, at least in part, on a command size of the sequential storage write command.

10. The method of claim 9 , further comprising determining whether an LBA of a sequential storage write command stored in a command queue is equivalent to the updated zone write pointer.

11. The method of claim 10 , further comprising:

retrieving data associated with the sequential storage write command stored in the command queue; and

causing the data associated with the sequential storage write command stored in the command queue to be written to the memory device.

12. The method of claim 8 , further comprising causing the data in the write cache to be written to the memory device.

13. The method of claim 7 , further comprising updating an available amount of memory of the write cache based, at least in part, on a command size of the sequential storage write command.

14. A system, comprising:

a controller;

a sequential write required storage device; and

a memory communicatively coupled to the controller and storing instructions that, when executed by the controller, cause the controller to:

determine, based at least in part, on a logical block address (LBA) associated with a received sequential zone storage write command, whether the sequential zone storage write command was received in sequence with respect to a previously received sequential zone storage write command; and

based, at least in part, on a determination that the sequential zone storage write command was received out of sequence with respect to the previously received sequential zone storage write command:

determine whether a write cache has sufficient memory to store a determined amount of data associated with the sequential zone storage write command and a determined amount of data associated with one or more intervening sequential zone storage write commands;

based, at least in part, on determining the write cache has sufficient memory, determine whether a command completion counter is less than a command queue threshold; and

based, at least in part, on determining the command completion counter is less than the command queue threshold, causing the data associated with the sequential zone storage write command to be stored in the write cache.

15. The system of claim 14 , wherein causing the data associated with the sequential zone storage write command to be stored in write cache comprises causing the data associated with the sequential zone storage write command to be stored at a location that is associated with the LBA of the sequential zone storage write command.

16. The system of claim 14 , further comprising instructions for updating an available amount of memory of the write cache.

17. The system of claim 14 , further comprising instructions for sending a re-try response to a host device based, at least in part, on a determination that the write cache has insufficient memory to store the amount of data associated with the sequential zone storage write command and the amount of data associated with the one or more intervening sequential zone storage write commands.

18. The system of claim 14 , further comprising instructions for sending a re-try response to a host device based, at least in part, on a determination that the command completion counter is greater than the command queue threshold.

19. The system of claim 14 , further comprising instructions for:

determining whether the LBA associated with the sequential storage write command is equivalent to a zone write pointer associated with a zone of the sequential write required storage device; and

based, at least in part, on determining the LBA associated with the sequential storage write command is equivalent to the zone write pointer associated with the zone of the sequential write required storage device, sending a command completion indication to a host device.

20. A system, comprising:

a controller means;

a sequential write required storage means;

means for determining whether a sequential zone storage write command was received in sequence with respect to a previously received sequential zone storage write command; and

based, at least in part, on a determination that the sequential zone storage write command was received out of sequence with respect to the previously received sequential zone storage write command:

means for determining whether a write cache has an amount of memory to store a determined amount of data associated with the sequential zone storage write command and a determined amount of data associated with one or more intervening sequential zone storage write commands;

means for determining whether a command completion counter is less than a command queue threshold; and

means for causing the data associated with the sequential zone storage write command to be stored in the write cache based, at least in part, on determining the command completion counter is less than the command queue threshold and based, at least in part, on determining the write cache has sufficient memory.

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 Jul 26, 2023
From: SELA, ROTEM; SEGEV, AMIR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064387/0040 →
Continuity (2)
Provisional Application 63501260 · May 10, 2023
Related Publication 20240378151A1 · Nov 14, 2024
References Cited (11)
US 9760281B2 · Ramalingam · 2017 [cited by applicant]
US 10884658B2 · Benisty · 2021 [cited by applicant]
US 11269558B2 · Kanno et al. · 2022 [cited by applicant]
US 11269778B1 · Kanteti · 2022 [cited by applicant]
US 20190294376A1 · Park · 2019 [cited by examiner]
US 20200409601A1 · Helmick et al. · 2020 [cited by applicant]
US 20210089217A1 · Bjørling et al. · 2021 [cited by applicant]
US 20210223994A1 · Kanno · 2021 [cited by examiner]
US 20220147283A1 · Kanno et al. · 2022 [cited by applicant]
US 20230161500A1 · Doucette · 2023 [cited by examiner]
US 20240111456A1 · Chen · 2024 [cited by examiner]