IP Library Granted Patent US 10,528,269
Granted Patent B2
US 10,528,269 · App. 15/959,773 · Granted Jan 7, 2020

Advanced flash scan algorithm

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,528,269
App. No.
15/959,773
Granted
Jan 7, 2020
Kind
B2
Abstract

A controller of a storage system may poll a non-volatile memory component to determine an operational status of the memory component after a memory operation has been initiated in the memory component. The controller may, in response to determining the operational status of the memory component is busy, update a polling interval based on a polling factor. The controller may re-poll the memory component to determine the operational status of the memory component after expiration of the updated polling interval. The controller may repeat the updating of the polling interval and the re-polling of the memory component until the operational status of the memory component is determined to be ready or until a predetermined number of iterations of the updating and re-polling have been performed if, in response to the re-polling, the operational status is determined to be busy.

Claims (70)

1. A method comprising:

polling a non-volatile memory component to determine an operational status of the non-volatile memory component after a memory operation has been initiated in the non-volatile memory component;

in response to determining the operational status of the non-volatile memory component is busy, updating a polling interval based on a polling factor;

re-polling the non-volatile memory component to determine the operational status of the non-volatile memory component after expiration of the updated polling interval; and

repeating the updating of the polling interval and the re-polling of the non-volatile memory component until the operational status of the non-volatile memory component is determined to be ready or until a predetermined number of iterations of the updating and re-polling have been performed if, in response to the re-polling, the operational status is determined to be busy.

2. The method of claim 1 , further comprising:

determining an initial waiting period has lapsed following initiation of the memory operation in the non-volatile memory component,

wherein the polling of the non-volatile memory component is performed after the initial waiting period has lapsed.

3. The method of claim 2 , wherein the initial waiting period is greater than the polling interval.

4. The method of claim 2 , wherein the initial waiting period is based on a type of the initiated memory operation.

5. The method of claim 1 , wherein the polling factor is a value less than one, and wherein updating the polling interval based on the polling factor comprises multiplying the polling interval by the polling factor.

6. The method of claim 1 , wherein the polling factor is based on a distribution of memory operation completion times.

7. The method of claim 6 , further comprising:

updating a data table to indicate the iteration of re-polling in response to which the operational status of the non-volatile memory component is determined to be ready,

wherein the distribution of memory operation completion times is based on the data table.

8. The method of claim 1 , wherein the polling factor or the polling interval is based on a type of the initiated memory operation.

9. The method of claim 1 , further comprising:

determining the updated polling interval satisfies an interval threshold,

wherein the re-polling of the non-volatile memory component is repeated without updating the polling interval in response to determining the updated polling interval satisfies the interval threshold.

10. A data storage device comprising:

non-volatile memory; and

a controller coupled to the non-volatile memory, the controller configured to:

poll a non-volatile memory component of the non-volatile memory to determine an operational status of the non-volatile memory component after a memory operation has been initiated in the non-volatile memory component;

in response to determining the operational status of the non-volatile memory component is busy, update a polling interval based on a polling factor;

re-poll the non-volatile memory component to determine the operational status of the non-volatile memory component after expiration of the updated polling interval; and

repeat the updating of the polling interval and the re-polling of the non-volatile memory component until the operational status of the non-volatile memory component is determined to be ready or until a predetermined number of iterations of the updating and re-polling have been performed if, in response to the re-polling, the operational status is determined to be busy.

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

determining an initial waiting period has lapsed following initiation of the memory operation in the non-volatile memory component,

wherein the polling of the non-volatile memory component is performed after the initial waiting period has lapsed.

12. The data storage device of claim 11 , wherein the initial waiting period is greater than the polling interval.

13. The data storage device of claim 10 , wherein the polling factor is based on a distribution of memory operation completion times.

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

update a data table to indicate the iteration of re-polling in response to which the operational status of the non-volatile memory component is determined to be ready,

wherein the distribution of memory operation completion times is based on the data table.

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

determine the updated polling interval satisfies an interval threshold,

wherein the re-polling of the non-volatile memory component is repeated without updating the polling interval in response to determining the updated polling interval satisfies the interval threshold.

16. A non-transitory, processor-readable storage media encoded with instructions that, when executed by processor, perform a method comprising:

polling a non-volatile memory component to determine an operational status of the non-volatile memory component after a memory operation has been initiated in the non-volatile memory component;

in response to determining the operational status of the non-volatile memory component is busy, updating a polling interval based on a polling factor;

re-polling the non-volatile memory component to determine the operational status of the non-volatile memory component after expiration of the updated polling interval; and

repeating the updating of the polling interval and the re-polling of the non-volatile memory component until the operational status of the non-volatile memory component is determined to be ready or until a predetermined number of iterations of the updating and re-polling have been performed if, in response to the re-polling, the operational status is determined to be busy.

17. The processor-readable storage media of claim 16 , wherein the method further comprises:

determining an initial waiting period has lapsed following initiation of the memory operation in the non-volatile memory component,

wherein the polling of the non-volatile memory component is performed after the initial waiting period has lapsed.

18. The processor-readable storage media of claim 17 , wherein the initial waiting period is greater than the polling interval.

19. The processor-readable storage media of claim 16 , wherein the polling factor is based on a distribution of memory operation completion times.

20. The processor-readable storage media of claim 19 , wherein the method further comprises:

updating a data table to indicate the iteration of re-polling in response to which the operational status of the non-volatile memory component is determined to be ready,

wherein the distribution of memory operation completion times is based on the data table.

21. The processor-readable storage media of claim 16 , wherein the method further comprises:

determining the updated polling interval satisfies an interval threshold,

wherein the re-polling of the non-volatile memory component is repeated without updating the polling interval in response to determining the updated polling interval satisfies the interval threshold.

22. A data storage device comprising:

non-volatile memory;

means for polling a non-volatile memory component to determine an operational status of the non-volatile memory component after a memory operation has been initiated in the non-volatile memory component;

means for updating a polling interval based on a polling factor in response to determining the operational status of the non-volatile memory component is busy; and

means for re-polling the non-volatile memory component to determine the operational status of the non-volatile memory component after expiration of the updated polling interval,

wherein the means for updating and the means for re-polling are configured to repeat the updating of the polling interval and the re-polling of the non-volatile memory component until the operational status of the non-volatile memory component is determined to be ready or until a predetermined number of iterations of the updating and re-polling have been performed if, in response to the re-polling, the operational status is determined to be busy.

23. The data storage device of claim 22 , further comprising:

means for determining an initial waiting period has lapsed following initiation of the memory operation in the non-volatile memory component,

wherein the polling of the non-volatile memory component is performed after the initial waiting period has lapsed.

24. The data storage device of claim 23 , wherein the initial waiting period is greater than the polling interval.

25. The data storage device of claim 22 , wherein the polling factor is based on a distribution of memory operation completion times.

26. The data storage device of claim 25 , further comprising:

means for updating a data table to indicate the iteration of re-polling in response to which the operational status of the non-volatile memory component is determined to be ready,

wherein the distribution of memory operation completion times is based on the data table.

27. The data storage device of claim 22 , further comprising:

means for determining the updated polling interval satisfies an interval threshold,

wherein the means for re-polling of the non-volatile memory component is configured to repeat the re-polling of the non-volatile memory component without updating the polling interval in response to determining the updated polling interval satisfies the interval threshold.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
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 Nov 5, 2018
From: ELLIOTT, MARK
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047415/0536 →