IP Library Granted Patent US 10,453,548
Granted Patent B2
US 10,453,548 · App. 15/600,673 · Granted Oct 22, 2019

Run-time flash die failure detection enhancement

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,453,548
App. No.
15/600,673
Granted
Oct 22, 2019
Kind
B2
Abstract

The subject technology provides implementations, which may be included as part of firmware of the flash memory device, that will not solely rely on a flash controller interpreted status but includes additional checks to the returned flash status byte. Each flash read, write, and erase command requires a status read command to determine the state of operation. Depending on the particular command issued, each bit of the returned status has a different meaning. The flash memory device firmware can check whether an illogical or inconsistent status is present. For example, if an overall pass/fail bit indicates a “pass” but a plane pass/fail bit indicates a “fail” then there could be an erroneous detection. Also, for every operation, the firmware can read status twice when the flash memory is ready. If the second status byte fails to match the first status byte then a die may be flagged as failing.

Claims (80)

1. A method for detecting flash memory device status comprising:

detecting a program operation for a flash memory device;

determining that a time period that satisfies a program threshold time has elapsed;

sending, after the time period that satisfies the program threshold time has elapsed, a first check status command;

receiving a first signal indicating a first status;

determining the first signal indicates a ready status;

sending a second check status command after the indicated ready status from the first signal;

receiving a second signal indicating a second status;

determining whether the first signal differs from the second signal; and

providing, in response to determining that the first signal differs from the second signal, an indication of a failure of the flash memory device.

2. The method of claim 1 , wherein the flash memory device comprises a flash memory die.

3. The method of claim 1 , wherein the first signal comprises a first plurality of bits, the second signal comprises a second plurality of bits, and determining that the first signal differs from the second signal comprises determining that the first plurality of bits is different than the second plurality of bits.

4. The method of claim 3 , wherein a portion of the first plurality of bits comprises a predetermined pattern.

5. The method of claim 4 , wherein the predetermined pattern comprises a repeating sequence of a high bit and then a low bit.

6. The method of claim 1 , wherein the program threshold time corresponds to a period of time for completing a write command.

7. The method of claim 1 , further comprising:

receiving a particular signal indicating a particular status;

determining that the particular signal indicates a busy status;

sending a third check status command;

receiving a third signal indicating a third status;

determining that the third signal indicates the ready status;

sending a fourth check status command after the indicated ready status from the third signal;

receiving a fourth signal indicating a fourth status; and

determining that the fourth signal matches the third signal.

8. The method of claim 1 , further comprising:

sending, in response to the indication of the failure of the flash memory device, a reset command for the flash memory device;

sending an initialization command for the flash memory device;

detecting an error associated with the flash memory device in response to the initialization command; and

setting the flash memory device as offline in response to the detected error.

9. A flash storage system comprising:

means for detecting a program operation for a flash memory device;

means for determining that a time period that satisfies a program threshold time has elapsed;

means for sending, after the time period that satisfies the program threshold time has elapsed, a first check status command;

means for receiving a first signal indicating a first status;

means for determining whether the first signal indicates a ready status;

means for sending a second check status command after the indicated ready status from the first signal;

means for receiving a second signal indicating a second status;

means for determining whether the first signal differs from the second signal; and

means for providing, in response to determining that the first signal differs from the second signal, an indication of a failure of the flash memory device.

10. The flash storage system of claim 9 , wherein the flash memory device comprises a flash memory die.

11. The flash storage system of claim 9 , wherein the first signal comprises a first plurality of bits, the second signal comprises a second plurality of bits, and determining that the first signal differs from the second signal comprises determining that the first plurality of bits is different than the second plurality of bits.

12. The flash storage system of claim 11 , wherein a portion of the first plurality of bits comprises a predetermined pattern, and the predetermined pattern comprises a repeating sequence of a high bit and then a low bit.

13. The flash storage system of claim 9 , further comprising:

means for sending, in response to the indication of the failure of the flash memory device, a reset command for the flash memory device; means for sending an initialization command for the flash memory device; means for detecting an error associated with the flash memory device in response to the initialization command; and means for setting the flash memory device as offline in response to the detected error.

14. The flash storage system of claim 9 , further comprising:

means for determining that a particular signal indicates a busy status;

means for sending a third check status command;

means for receiving a third signal indicating a third status;

means for determining that the third signal indicates the ready status;

means for sending a fourth check status command after the indicated ready status from the third signal;

means for receiving a fourth signal indicating a fourth status; and

means for determining that the fourth signal matches the third signal.

15. A flash storage system comprising:

a plurality of flash memory devices, each of the plurality of flash memory devices including at least one flash memory die; and

a controller configured to:

detect a program operation for a flash memory device;

determine that a time period that satisfies a program threshold time has elapsed;

send, after the time period that satisfies the program threshold time has elapsed, a first check status command;

receive a first signal indicating a first status;

determine whether the first signal indicates a ready status;

send a second check status command after the indicated ready status from the first signal;

receive a second signal indicating a second status;

determine whether the first signal differs from the second signal; and

provide, in response to determining that the first signal differs from the second signal, an indication of a failure of the flash memory device.

16. The flash storage system of claim 15 , wherein the flash memory device comprises a flash memory die.

17. The flash storage system of claim 15 , wherein the first signal comprises a first plurality of bits, the second signal comprises a second plurality of bits, and determining that the first signal differs from the second signal comprises determining that the first plurality of bits is different than the second plurality of bits.

18. The flash storage system of claim 17 , wherein a portion of the first plurality of bits comprises a predetermined pattern, and the predetermined pattern comprises a repeating sequence of a high bit and then a low bit.

19. The flash storage system of claim 15 , wherein the controller is further configured to:

send, in response to the indication of the failure of the flash memory device, a reset command for the flash memory device;

send an initialization command for the flash memory device;

detect an error associated with the flash memory device in response to the initialization command; and

set the flash memory device as offline in response to the detected error.

20. The flash storage system of claim 15 , wherein the controller is further configured to:

determine that a particular signal indicates a busy status;

send a third check status command;

receive a third signal indicating a third status;

determine that the third signal indicates the ready status;

send a fourth check status command after the indicated ready status from the third signal;

receive a fourth signal indicating a fourth status; and

determine that the fourth signal matches the third signal.

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 - 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 →
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 May 22, 2017
From: CHU, SANGHOON; JINN, SCOTT; PAVLENKO, YURIY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 042461/0878 →