US 12,298,846 B2
Enhanced end to end system failure recovery
Michael Ionin, Rehovot (IL); Alexander Bazarsky, Holon (IL); and Judah Gamliel Hahn, Ofra (IL)
Assigned to Sandisk Technologies, Inc., Milpitas, CA (US)
Filed by Western Digital Technologies, Inc., San Jose, CA (US)
Filed on Jul. 10, 2023, as Appl. No. 18/219,815.
Prior Publication US 2025/0021428 A1, Jan. 16, 2025
Int. Cl. G06F 11/10 (2006.01)
CPC G06F 11/1004 (2013.01) [G06F 11/1068 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A data storage device, comprising:
a non-volatile memory device;
a first volatile memory device;
a second volatile memory device; and
a controller coupled to the memory device, the first volatile memory device, and the second volatile memory device, wherein the controller is configured to:
receive a read command from a host device;
read data from the non-volatile memory device;
transfer the data read from the non-volatile memory device to an error correction code (ECC) engine to be decoded;
decode the data read from the non-volatile memory device;
store the decoded data in the first volatile memory device;
calculate a second cyclic redundancy code (CRC) signature for the stored decoded data;
determine that the second CRC signature does not match a first CRC signature of the data, wherein the first CRC is generated from the data and attached to the data when the data is programmed to the non-volatile memory device;
re-issue a read command to re-read the data from the non-volatile memory device if the second CRC signature does not match the first CRC signature of the data, wherein the read command comprises instructions to utilize the second volatile memory device to store the data associated with the re-issued read command after being re-decoded;
determine that the data read from the non-volatile memory device is still in the ECC engine; and
transfer the data read from the non-volatile memory device still in the ECC engine from the ECC engine to the second volatile memory device responsive to determining that the data read from the non-volatile memory device is still in the ECC engine.