IP Library Granted Patent US 10,613,943
Granted Patent B2
US 10,613,943 · App. 16/045,339 · Granted Apr 7, 2020

Method and system for improving open block data reliability

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 10,613,943
App. No.
16/045,339
Granted
Apr 7, 2020
Kind
B2
Abstract

Systems, methods, and/or devices are used to manage open blocks within non-volatile storage devices, in order to improve the reliability of non-volatile storage devices. In some embodiments, when a shut-down request is received from a host device, the storage device fetches information about open blocks and their boundary regions susceptible to data reliability issues, and for each identified boundary region, the storage device programs a region contiguous to the identified boundary region. In some embodiments, the device updates an XOR parity table used for XOR parity management with the information that the region contiguous to the identified boundary is programmed. Subsequently, in some embodiments, the storage device can use the information, stored in the contiguous region and/or the XOR parity table, for data recovery in the event of a data loss. As a result, the reliability of the non-volatile storage device is improved.

Claims (54)

1. A method of managing a storage device, comprising:

receiving at the storage device, from a host device external to the storage device, a shut-down request, the storage device including a plurality of non-volatile memory blocks; and

in response to receiving the shut-down request:

obtaining a list of one or more open blocks, each open block having at least one un-programmed word line, each open block including a boundary region corresponding to a last written portion, and a non-boundary region comprising one or more written pages or one or more written word lines; and

for each open block in the list of open blocks:

identifying the boundary region of the block; and

programming data in a region that is contiguous to the identified boundary region,

wherein the contiguous region and the boundary region have a same size and at least a portion of the block remains unwritten after programming the data in the contiguous region.

2. The method of claim 1 , wherein programming the data comprises copying data in the identified boundary region to the region that is contiguous to the identified boundary region.

3. The method of claim 2 , further comprising, in response to receiving the shut-down request, updating, for a respective open block in the list, an XOR parity table for the open block, wherein:

a table entry in the XOR parity table corresponds to an XOR parity stripe;

the table entry includes a plurality of bits, and each bit corresponds to a distinct region in the respective open block and indicates whether the corresponding region is the region contiguous to the identified boundary region of the respective open block.

4. The method of claim 3 , further comprising, in response to receiving the shut-down request, storing the XOR parity table in the respective open block.

5. The method of claim 2 , further comprising, after shutting-down the storage device and subsequently resuming operation of the storage device, while reading data from a respective block in which data was copied to the region contiguous to the identified boundary region in the respective block, using the data that was copied to the region contiguous to the identified boundary region to recover data stored in the identified boundary region.

6. The method of claim 1 , wherein programming the data comprises writing a data pattern to the region that is contiguous to the identified boundary region.

7. The method of claim 6 , wherein the data pattern comprises a predefined dummy data pattern independent of data stored in the identified boundary region.

8. A storage device, comprising:

non-volatile memory;

a host interface;

a storage device controller coupled to the non-volatile memory and the host interface, the storage device controller including:

means for receiving, via the host interface, a shut-down request from a host device external to the storage device;

in response to receiving the shut-down request:

means for obtaining a list of one or more open blocks, each open block having at least one un-programmed word line, each open block including a boundary region corresponding to a last written portion, and a non-boundary region comprising one or more written pages or one or more written word lines; and

for each open block in the list of open blocks:

means for identifying the boundary region of the block; and

means for programming data in a region that is contiguous to the identified boundary region,

wherein the contiguous region and the boundary region have a same size and at least a portion of the block remains unwritten after programming the data in the contiguous region.

9. The storage device of claim 8 , wherein the storage device controller includes one or more processors and one or more controller modules executed by the one or more processors to perform a set of operations.

10. The storage device of claim 9 , wherein the one or more controller modules include instructions for copying data in the identified boundary region to the region that is contiguous to the identified boundary region.

11. The storage device of claim 10 , wherein the one or more controller modules include:

a command module configured to receive the shut-down request from the host device external to the storage device;

a shut-down module configured to, in response to receiving the shut-down request:

obtain the list of one or more open blocks; and

for each open block in the list of open blocks:

identify the boundary region of the block; and

initiate programming data in the contiguous region; and

a programming module configured to program data in a specified region of a specified block.

12. The storage device of claim 11 , wherein the one or more controller modules further include an XOR parity table generator, wherein:

the XOR parity table generator is configured to update, in response to the shut-down request, for a respective open block in the list, an XOR parity table for the open block, wherein a table entry in the XOR parity table corresponds to an XOR parity stripe;

the table entry includes a plurality of bits, and each bit corresponds to a distinct region in the respective open block and indicates whether the corresponding region is the region contiguous to the identified boundary region of the respective open block.

13. The storage device of claim 12 , wherein the one or more controller modules include instructions to store the XOR parity table in the respective open block in response to the shut-down request.

14. The storage device of claim 10 , wherein the one or more controller modules include a data reuse module, and the data reuse module is configured to use the data that was copied to the region contiguous to the identified boundary region of a respective block, in the list of blocks, to recover data stored in the identified boundary region of the respective block.

15. The storage device of claim 9 , wherein the one or more controller modules include instructions for writing a data pattern to the region that is contiguous to the identified boundary region.

16. The storage device of claim 15 , wherein the data pattern comprises a predefined dummy data pattern independent of data stored in the identified boundary region.

17. The storage device of claim 9 , wherein the one or more controller modules include instructions for recording metadata, for a respective open block in the list, identifying the region, contiguous to the identified boundary region.

18. The storage device of claim 9 , wherein the one or more controller modules include instructions for recording metadata, for a respective open block in the list, indicating that the region, contiguous to the identified boundary region, is to be excluded from data compaction.

19. The storage device of claim 8 , wherein the identified boundary region comprises one or more word lines or one or more pages.

20. A non-transitory computer-readable storage medium, storing one or more programs configured for execution by one or more processors of a storage device, the one or more programs including instructions that when executed by the one or more processors cause the storage device to:

in response to receiving a shut-down request from a host device:

obtain a list of one or more open blocks, each open block having at least one un-programmed word line, each open block including a boundary region corresponding to a last written portion, and a non-boundary region comprising one or more written pages or one or more written word lines; and

for each open block in the list of open blocks:

identify the boundary region of the block; and

program data in a region that is contiguous to the identified boundary region,

wherein the contiguous region and the boundary region have a same size and at least a portion of the block remains unwritten after programming the data in the contiguous region.

Assignments (10)
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 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 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2019
From: GUO, ZELEI; CHENG, CHAO-HAN; LU, NAN; KUO, TIENCHIEN; YANG, NILES NIAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 048997/0789 →