IP Library Granted Patent US 12,067,293
Granted Patent B2
US 12,067,293 · App. 17/746,019 · Granted Aug 20, 2024

Data storage device and method for host multi-command queue grouping based on write-size alignment in a multi-queue-depth environment

Inventors: Amit Sharma (Bengaluru, IN); Dinesh Kumar Agarwal (Bangalore, IN); Abhinandan Venugopal (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F3/0659G06F3/0613G06F3/0688G06F2212/7203
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,067,293
App. No.
17/746,019
Granted
Aug 20, 2024
Kind
B2
Abstract

A data storage device and method are provided for host multi-command queue grouping based on write-size alignment in a multi-queue-depth environment. In one embodiment, a data storage device is provided comprising a memory and a controller. The controller is configured to provide a host with an indication of a required amount of data needed to program a set of multi-level cell blocks in the memory; receive an assurance from the host that the host will be providing the data storage device with the required amount of data; and based on the assurance received from the host, program the set of multi-level cell blocks as data is received from the host but before the required amount of data is received from the host. Other embodiments are possible, and each of the embodiments can be used alone or together in combination.

Claims (38)

1. A data storage device comprising:

a volatile memory;

a non-volatile memory; and

a processor configured to:

provide a host with an indication of a required amount of data needed to program a set of multi-level cell blocks in the non-volatile memory;

receive an assurance from the host that the host will provide the data storage device with the required amount of data; and

based on the assurance received from the host, program the set of multi-level cell blocks in the non-volatile memory as data is received from the host into the volatile memory instead of after all of the required amount of data is received from the host and stored in the volatile memory, since a capacity of the volatile memory is less than the required amount of data.

2. The data storage device of claim 1 , wherein the assurance is received via a special host directive.

3. The data storage device of claim 1 , wherein the data is programmed in the multi-level cell block without first programming the data in a single-level cell block.

4. The data storage device of claim 1 , wherein the indication is provided in response to a request from the host.

5. The data storage device of claim 1 , wherein the indication is provided independent of a request from the host.

6. The data storage device of claim 1 , wherein the processor is further configured to provide the host with an indication of a required amount of data needed to program a second set of multi-level cell blocks in the non-volatile memory.

7. The data storage device of claim 1 , wherein the non-volatile memory comprises a three-dimensional memory.

8. A method comprising:

performing the following in a host in communication with a data storage device, wherein the data storage device comprises a volatile memory and a non-volatile memory:

receiving, from the data storage device, a write-alignment size;

creating a command group to satisfy the write-alignment size;

sending an indication to the data storage device that an amount of data associated with the command group satisfies the write-alignment size; and

sending the amount of data to the data storage device;

wherein:

the data storage device is configured to program the non-volatile memory with the amount of data as the amount of data is received from the host into the volatile memory instead of after all of the amount of data is received from the host and stored in the volatile memory, since a capacity of the volatile memory is less than the amount of data.

9. The method of claim 8 , wherein the indication is sent as a special host directive.

10. The method of claim 8 , wherein the write-alignment size is received in response to a request sent to the data storage device.

11. The method of claim 8 , wherein the write-alignment size is received without first sending a request for the write-alignment size to the data storage device.

12. The method of claim 8 , further comprising receiving, from the data storage device, a second write-alignment size.

13. The method of claim 12 , further comprising dynamically changing the command group based on the second write-alignment size.

14. The method of claim 8 , wherein the command group comprises a plurality of commands from a plurality of applications on the host.

15. The method of claim 14 , wherein the plurality of commands is stored in a queue shared by the plurality of applications.

16. The method of claim 14 , wherein each application of the plurality of applications generates a different workload.

17. The method of claim 14 , further comprising selecting the plurality of commands from a larger set of commands.

18. The method of claim 8 , wherein the non-volatile memory comprises a three-dimensional memory.

19. The method of claim 16 , wherein the different workload comprises a different write load.

20. A data storage device comprising:

a volatile memory;

a non-volatile memory;

means for providing a host with a write-step size for the non-volatile memory;

means for receiving an assurance from the host that the host will provide the data storage device with an amount of data to satisfy the write-step size; and

means for programming the non-volatile memory with the amount of data as the amount of data is received from the host into the volatile memory instead of after all of the amount of data is received from the host and stored in the volatile memory, since a capacity of the volatile memory is less than the amount of data.

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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2022
From: SHARMA, AMIT; AGARWAL, DINESH KUMAR; VENUGOPAL, ABHINANDAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059929/0936 →