IP Library › Granted Patent US 12,353,278
Granted Patent B2
US 12,353,278 · App. 18/219,819 · Granted Jul 8, 2025

Pre-emptive operations for faster XOR recovery and relocation

Inventors: Judah Gamliel Hahn (Ofra, IL); Michael Ionin (Rehovot, IL); Alexander Bazarsky (Holon, IL); Karin Inbar (Ramat Hasharon, IL)
Assignee: Sandisk Technologies, Inc.
G06F11/1004G06F3/0619G06F3/064G06F3/0673G06F11/0754
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,353,278
App. No.
18/219,819
Filed
Jul 10, 2023
Granted
Jul 8, 2025
Kind
B2
Art Unit
2113
USPC
714/6.11
Abstract

During data storage device operation, data of multiple blocks of a non-volatile memory device, logically grouped as a jumboblock, may be protected by an exclusive or (XOR) signature, where the XOR signature may be used to recover data of a block of the multiple blocks. During a recovery/relocation operation, data of the jumboblock is read from the non-volatile memory device during the recovery of the lost data and again when the data is relocated. However, because the data read during data storage device operation is temporarily stored in a volatile memory device, the controller utilizes the relevant data stored in the volatile memory device and the data stored in the non-volatile memory device to recover corrupted data. Thus, the amount of reads from the non-volatile memory device decreases due to the relevant data is read from the volatile memory device, which may improve data storage device performance.

Claims (67)

1. A data storage device, comprising:

a non-volatile memory device; and

a controller coupled to the non-volatile memory device and a volatile memory device, wherein the controller is configured to:

read data from a block of a first plurality of blocks of the non-volatile memory device responsive to executing a read command received from a host device;

determine that a health of one or more blocks of the plurality of blocks of the non-volatile memory device has reached a recovery/relocation threshold, wherein the one or blocks are in a same exclusive or (XOR) signature as the block;

store the block in the volatile memory device responsive to providing data read from the block to the host device, wherein a health of the block is determined to have reached the recovery/relocation threshold; and

perform a recovery/relocation operation, wherein the recovery/relocation operation comprises:

recovering the stored block from the volatile memory device,

recovering the one or more blocks remaining in the non-volatile memory device, wherein the one or more blocks remaining comprise the one or more blocks except for the stored block; and

relocating the recovered stored block and the one or more blocks remaining to a second plurality of blocks of the non-volatile memory device, wherein the second and the first plurality of blocks are separate and distinct.

2. The data storage device of claim 1 , wherein determining that the health of the one or more blocks comprises determining, for each of the one or more blocks, one or more of:

a program erase count (PEC) of each block of the one or more blocks;

a bit error rate (BER) of each block of the one or more blocks;

a read disturb metric of each block of the one or more blocks;

a temperature of each block of the one or more blocks;

a cross-temperature of each block of the one or more blocks; and

an amount of power consumption of each block of the one or more blocks.

3. The data storage device of claim 1 , wherein the volatile memory device is either:

a host memory buffer (HMB) of the host device;

a static random access memory (SRAM) of the controller; or

a dynamic random access memory (DRAM) of the controller.

4. The data storage device of claim 1 , wherein the recovery/relocation threshold is a predetermined value less than an actual recovery/relocation threshold, wherein the controller is configured to initiate the recovery/relocation operation upon reaching the actual recovery/relocation threshold.

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

determine that a block of the one or more blocks has reached the actual recovery/relocation threshold;

determine that at least one block of the one or more blocks is stored in the volatile memory device;

recover/relocate the at least one block of the one or more blocks from the volatile memory device; and

recover/relocate each other block other than the at least one block of the one or more blocks from the non-volatile memory device.

6. The data storage device of claim 5 , wherein less than all of the blocks of the one or blocks are read from the non-volatile memory device during the recovery/relocation operation.

7. The data storage device of claim 1 , wherein the XOR signature is utilized to recover data of the block of the one or more blocks during the recovery/relocation operation.

8. A data storage device, comprising:

a non-volatile memory device; and

a controller coupled to the non-volatile memory device and a volatile memory device, wherein the controller is configured to:

determine that at least a partial block failure has occurred to a block of a plurality of blocks of the non-volatile memory device, wherein:

the block is part of a set of blocks that are associated with an exclusive or (XOR) signature; and

the XOR signature is used to recover one or more pages of the block of the set of blocks associated with the XOR signature; and

perform a recovery/relocation operation to recover at least one page of the block that has failed using the XOR signature, wherein the recovery/relocation operation comprises

determining that the at least one page of the block that has failed using the XOR signature exists in the volatile memory device;

recovering the at least one page of the block that has failed using the XOR signature from the volatile memory device;

recovering a remaining number of pages of the block from the non-volatile memory device; and

relocating the at least one recovered page of the block from the volatile memory device, and the remaining number of pages of the block from the non-volatile memory device to another block of the non-volatile memory device.

9. The data storage device of claim 8 , wherein recovering the at least one page of the block that has failed using the XOR signature comprises reading the at least one page of the block that has failed using the XOR signature from the volatile memory device once.

10. The data storage device of claim 9 , wherein recovering the remaining number of pages of the block of the set of blocks from the non-volatile memory device comprises reading the remaining number of pages of the block of the set of blocks twice.

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

determine which pages of the block of the set of blocks are stored in the volatile memory device responsive to determining that the partial block failure has occurred to the block of the plurality of blocks of the non-volatile memory device.

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

receive a read command for another block of the set of blocks stored in the non-volatile memory device; and

determine a health metric of one or more blocks of the set of blocks.

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

determine that the health metric of at least a block of the one or more blocks has reached or exceeded a predetermined threshold value; and

store the data of the another block associated with the read command in the volatile memory device.

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

erase the at least one page of the block that has failed using the XOR signature from the volatile memory device responsive to the performance of the recovery/relocation operation.

15. The data storage device of claim 8 , wherein the volatile memory device is a host memory buffer (HMB) of a host device.

16. The data storage device of claim 8 , wherein the volatile memory device is either a static random access memory (SRAM) of the controller or a dynamic random access memory (DRAM) coupled to the controller.

17. The data storage device of claim 8 , wherein the at least the partial block failure is a full block failure.

18. A data storage device, comprising:

means for storing non-volatile data; and

a controller coupled to the means for storing non-volatile data and means for storing volatile data, wherein the controller is configured to:

store data read from the means for storing non-volatile data in the means for storing volatile data; and

utilize the data stored in the means for storing volatile data and data stored in the means for storing non-volatile data to recover data having a read failure, wherein the utilizing comprises:

determining that a portion of the data stored in the means for storing non-volatile data is unrecoverable;

determining that the portion of the data exists in the means for storing volatile data;

recovering the portion of the data from the means for storing volatile data;

recovering a remaining portion of the data from the means for storing non-volatile data; and

relocating the recovered portion of the data, from the means for storing volatile data, and the remaining portion of the data, from the means for storing non-volatile data, to another location of the means for storing non-volatile data.

19. The data storage device of claim 18 , wherein the data stored in the means for storing volatile data and the data stored in the means for storing non-volatile data utilized to recover data having the read failure are associated with a same exclusive or (XOR) signature.

20. The data storage device of claim 19 , wherein storing the data read from the means for storing non-volatile data in the means for storing volatile data is responsive to determining that the data stored in the means for storing non-volatile data associated with a same XOR signature has reached or exceeded a health metric threshold.

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 12, 2023
From: HAHN, JUDAH GAMLIEL; IONIN, MICHAEL; BAZARSKY, ALEXANDER; INBAR, KARIN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 064231/0753 →
Continuity (1)
Related Publication 20250021429A1 · Jan 16, 2025
References Cited (15)
US 10303571B2 · Wu et al. · 2019 [cited by applicant]
US 10963339B2 · Ji et al. · 2021 [cited by applicant]
US 11048584B2 · Jeon · 2021 [cited by applicant]
US 11121729B1 · Sridhara et al. · 2021 [cited by applicant]
US 11354190B2 · Sehgal et al. · 2022 [cited by applicant]
US 20140281814A1 · Vogan · 2014 [cited by examiner]
US 20150161004A1 · Camp · 2015 [cited by examiner]
US 20170091022A1 · Khan et al. · 2017 [cited by applicant]
US 20170228299A1 · Shapira et al. · 2017 [cited by applicant]
US 20180074891A1 · Yang et al. · 2018 [cited by applicant]
US 20200174681A1 · Malshe · 2020 [cited by examiner]
US 20200218605A1 · Subramanian · 2020 [cited by examiner]
US 20220138065A1 · Secatch · 2022 [cited by examiner]
WO 2017103751A1 · 2017 [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2024/029536 dated Sep. 4, 2024. [cited by applicant]