IP Library Granted Patent US 11,733,914
Granted Patent B2
US 11,733,914 · App. 17/514,441 · Granted Aug 22, 2023

Direct write operation for quad-level cell based data storage devices

Inventors: Raviraj Raju (Bangalore, IN); Sridhar Prudvirag Gunda (Bangalore, IN)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0656G06F3/064G06F3/0619G06F3/0631G06F3/0652G06F3/0659G06F3/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,733,914
App. No.
17/514,441
Granted
Aug 22, 2023
Kind
B2
Abstract

A QLC based data storage device leverages a host memory buffer (HMB) to achieve QLC direct write that increases performance of the QLC data storage device and reducing or eliminating disadvantages associated with a QLC folding approach. In one example, the QLC based data storage device includes a controller configured to receive a request to write data to a non-volatile memory, determine whether the request is a sequential write operation, determine whether a HMB of the data storage device is enabled, determine whether a HMB allocation is successful for a quad-level cell direct write, and responsive to determining that the request is not the sequential write operation, the HMB of the data storage device is enabled, and the HMB allocation is successful for the quad-level cell direct write, perform a direct write operation in a quad-level cell block of the non-volatile memory.

Claims (99)

1. A data storage device comprising:

a non-volatile memory; and

a controller configured to:

receive a request to write data to the non-volatile memory,

determine whether the request to write the data is a sequential write operation,

determine whether a host memory buffer of the data storage device is enabled,

determine whether a host memory buffer allocation is successful for a quad-level cell direct write, and

responsive to determining that the request to write the data is not the sequential write operation, the host memory buffer of the data storage device is enabled, and the host memory buffer allocation is successful for the quad-level cell direct write,

perform a direct write operation in a quad-level cell block of the non-volatile memory,

wherein the controller is further configured to:

responsive to determining that the host memory buffer is not enabled, perform a write operation to a single-level cell sequential block of the non-volatile memory.

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

responsive to determining that the write request is the sequential write operation, perform a write operation to a single-level cell random block of the non-volatile memory.

3. A data storage device comprising:

a non-volatile memory; and

a controller configured to:

receive a request to write data to the non-volatile memory,

determine whether the request to write the data is a sequential write operation,

determine whether a host memory buffer of the data storage device is enabled,

determine whether a host memory buffer allocation is successful for a quad-level cell direct write, and

responsive to determining that the request to write the data is not the sequential write operation, the host memory buffer of the data storage device is enabled, and the host memory buffer allocation is successful for the quad-level cell direct write, perform a direct write operation in a quad-level cell block of the non-volatile memory, wherein the controller is further configured to:

responsive to determining that the host memory buffer allocation is not successful for the quad-level cell direct write operation, perform a write operation to a single-level cell sequential block of the non-volatile memory.

4. A data storage device comprising:

a non-volatile memory; and

a controller configured to:

receive a request to write data to the non-volatile memory,

determine whether the request to write the data is a sequential write operation,

determine whether a host memory buffer of the data storage device is enabled,

determine whether a host memory buffer allocation is successful for a quad-level cell direct write, and

responsive to determining that the request to write the data is not the sequential write operation, the host memory buffer of the data storage device is enabled, and the host memory buffer allocation is successful for the quad-level cell direct write, perform a direct write operation in a quad-level cell block of the non-volatile memory, wherein the controller is further configured to:

detect a graceful shutdown operation has occurred,

responsive to detecting the graceful shutdown operation has occurred, determining that the host memory buffer is enabled, and determining that the host memory buffer allocation is successful for the quad-level cell direct write, perform a direct write operation in an open quad-level cell block of the non-volatile memory.

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

responsive to determining that the host memory buffer is not enabled and the host memory buffer allocation is not successful for the quad-level cell direct write, determine whether the quad-level cell block of the non-volatile memory is open for direct write, and

responsive to determining that the quad-level cell block of the non-volatile memory is open for direct write, performing a write operation in a single-level cell sequential block of the non-volatile memory.

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

responsive to determining that the quad-level cell block of the non-volatile memory is not open for direct write, padding a remainder of the quad-level cell block of the non-volatile memory and closing the quad-level cell block of the non-volatile memory.

7. The data storage device of claim 1 , wherein the controller is further configured to: perform at least one operation selected from a group including:

a quad-level cell foggy program operation,

a quad-level cell fine program operation,

a single-level cell program average operation,

a single-level cell sense operation,

a quad-level cell lower page, middle page, top page (LP/MP/TP) sense operation,

a quad-level cell upper page (UP) sense AP NR operation,

a single-level cell erase operation, and

a quad-level cell erase operation.

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

perform the quad-level cell direct write on a block of the non-volatile memory, and

perform a quad-level cell erase operation.

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

receiving, with a controller, a request to write data to a non-volatile memory of the data storage device;

determining, with the controller, whether the request to write the data is a sequential write operation;

determining, with the controller, whether a host memory buffer of the data storage device is enabled;

determining, with the controller, whether a host memory buffer allocation is successful for a quad-level cell direct write;

responsive to determining that the request to write the data is not the sequential write operation, the host memory buffer of the data storage device is enabled, and the host memory buffer allocation is successful for the quad-level cell direct write, performing, with the controller, a direct write operation in a quad-level cell block of the non-volatile memory;

detecting an ungraceful shutdown operation has occurred;

responsive to detecting the ungraceful shutdown operation has occurred, determining that the host memory buffer of the data storage device is enabled, and determining that the host memory buffer allocation is successful for the quad-level cell direct write operation, performing the direct write operation in an open quad-level cell block of the non-volatile memory; and

responsive to detecting the ungraceful shutdown operation has occurred, determining that the host memory buffer of the data storage device is enabled, and determining that the host memory buffer allocation is not successful for the quad-level cell direct write operation, performing a write operation in a single-level cell sequential block of the non-volatile memory.

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

receiving, with a controller, a request to write data to a non-volatile memory of the data storage device;

determining, with the controller, whether the request to write the data is a sequential write operation;

determining, with the controller, whether a host memory buffer of the data storage device is enabled;

determining, with the controller, whether a host memory buffer allocation is successful for a quad-level cell direct write;

responsive to determining that the request to write the data is not the sequential write operation, the host memory buffer of the data storage device is enabled, and the host memory buffer allocation is successful for the quad-level cell direct write, performing, with the controller, a direct write operation in a quad-level cell block of the non-volatile memory;

detecting an ungraceful shutdown operation has occurred;

responsive to detecting the ungraceful shutdown operation has occurred and determining that the host memory buffer of the data storage device is not enabled, determining whether a write abort operation is detected on the quad-level cell block of the non-volatile memory,

responsive to determining that the write abort operation is detected on the quad-level cell block of the non-volatile memory, determining whether a valid count is higher than a single-level cell max valid count, and

responsive to determining that the valid count is higher than the single-level cell max valid count, moving second data in the quad-level cell block to a second quad-level cell block, and padding and releasing the quad-level cell block to a free pool in the non-voltage memory.

11. The method of claim 10 , further comprising:

responsive to determining the valid count is not higher than the single-level cell max valid count, moving second data of the quad-level cell to a single-level cell and releasing the quad-level cell.

12. The method of claim 10 , further comprising:

responsive to determining that the write abort operation is not detected on the quad-level cell block of the non-volatile memory, determining whether the valid count is higher than the single-level cell max valid count, and

responsive to determining that the valid count is higher than the single-level cell max valid count, padding a remainder of the quad-level cell block and closing the quad-level cell block.

13. The method of claim 12 , further comprising:

responsive to determining the valid count is not higher than the single-level cell max valid count, moving the second data of the quad-level cell to a single-level cell and releasing the quad-level cell.

14. An apparatus, comprising:

means for receiving a request to write data to a non-volatile memory of a data storage device;

means for determining whether the request to write the data is a sequential write operation;

means for determining whether a host memory buffer of the data storage device is enabled;

means for determining whether a host memory buffer allocation is successful for a quad-level cell direct write;

means for performing a direct write operation in a quad-level cell block of the non-volatile memory in response to determining that the request to write the data is not the sequential write operation, the host memory buffer of the data storage device is enabled and the host memory buffer allocation is successful for the quad-level cell direct write;

means for detecting an ungraceful shutdown operation has occurred;

means for performing the direct write operation in an open quad-level cell block of the non-volatile memory in response to detecting the ungraceful shutdown operation has occurred, determining that the host memory buffer of the data storage device is enabled, and determining that the host memory buffer allocation is successful for the quad-level cell direct write operation; and

means for performing a write operation in a single-level cell sequential block of the non-volatile memory in response to detecting the ungraceful shutdown operation has occurred, determining that the host memory buffer of the data storage device is enabled, and determining that the host memory buffer allocation is not successful for the quad-level cell direct write operation.

15. An apparatus, comprising:

means for receiving a request to write data to a non-volatile memory of a data storage device;

means for determining whether the request to write the data is a sequential write operation;

means for determining whether a host memory buffer of the data storage device is enabled;

means for determining whether a host memory buffer allocation is successful for a quad-level cell direct write;

means for performing a direct write operation in a quad-level cell block of the non-volatile memory in response to determining that the request to write the data is not the sequential write operation, the host memory buffer of the data storage device is enabled and the host memory buffer allocation is successful for the quad-level cell direct write;

means for detecting an ungraceful shutdown operation has occurred;

means for determining whether a write abort operation is detected on the quad-level cell block of the non-volatile memory in response to detecting the ungraceful shutdown operation has occurred and determining that the host memory buffer of the data storage device is not enabled;

means for determining whether a valid count is higher than a single-level cell max valid count in response to determining that the write abort operation is detected on the quad-level cell block of the non-volatile memory; and

means for moving second data in the quad-level cell block to a second quad-level cell block, and padding and releasing the quad-level cell block to a free pool in the non-voltage memory in response to determining that the valid count is higher than the single-level cell max valid count.

16. The apparatus of claim 15 , further comprising:

means for moving data of the quad-level cell to a single-level cell and releasing the quad-level cell in response to determining the valid count is not higher than the single-level cell max valid count.

17. The apparatus of claim 15 , further comprising:

means for determining whether the valid count is higher than the single-level cell max valid count in response to determining that the write abort operation is not detected on the quad-level cell block of the non-volatile memory; and

means for padding a remainder of the quad-level cell block and closing the quad-level cell block in response to determining that the valid count is higher than the single-level cell max valid count.

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 Oct 29, 2021
From: RAJU, RAVIRAJ; GUNDA, SRIDHAR PRUDVIRAJ
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 057962/0829 →