IP Library Granted Patent US 11,126,368
Granted Patent B2
US 11,126,368 · App. 16/398,591 · Granted Sep 21, 2021

Systems and methods for finding a last good page in NAND open block

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 11,126,368
App. No.
16/398,591
Granted
Sep 21, 2021
Kind
B2
Abstract

A method for finding a last good page in a memory system includes determining a first number of write operations in a first queue at a first page in a memory block of the memory system. The method also includes determining whether the first number of write operations in the first queue is above a threshold. The method also includes based on a determination that the first number of write operations in the first queue is above the threshold, determining whether a second page in the memory block is empty. The method also includes identifying, based on a determination that the second page is empty, the last good page in the memory block using a binary search between the first page and the second page.

Claims (42)

1. A method for finding a last good page in a memory system, the method comprising:

determining a first determination of a first number of write operations in a first queue at a first page in a memory block of the memory system;

determining a second determination that the first number of write operations in the first queue is above a threshold;

based on the second determination that the first number of write operations in the first queue is above the threshold, determining a third determination of whether a second page in the memory block is empty or not empty;

either:

identifying, based on the third determination that the second page is empty, the last good page in the memory block using a binary search between the first page and the second page, or

determining, based on the third determination that the second page is not empty, a fourth determination of a second number of write operations in a second queue at the second page;

determining a fifth determination that the second number of write operations in the second queue is below the threshold; and

based on the fourth determination that the second number of write operations in the second queue equals 0, determining a sixth determination of whether a page that follows the second page is empty.

2. The method of claim 1 , wherein the first page includes a middle page of the memory block.

3. The method of claim 1 , wherein a number of pages between the first page and the second page corresponds to the first number of write operations in the first queue.

4. The method of claim 1 , further comprising determining that the second page is the last good page of the memory block based on a determination that the page that follows the second page is empty.

5. The method of claim 1 , further comprising determining, based on a determination that the page that follows the second page is not empty, a third number of write operations in a third queue at the page that follows the second page.

6. The method of claim 1 , further comprising, based on a determination that the second number of write operations in the second queue does not equal 0, determining whether the second number of write operations in the second queue is above the threshold.

7. The method of claim 6 , further comprising determining, based on a determination that the second number of write operations in the second queue is above the threshold, a third number of write operations at a third page of the memory block.

8. The method of claim 6 , further comprising identifying, based on a determination that the second number of write operations in the second queue is below the threshold, the last good page in the memory block using a binary search.

9. A controller comprising:

a bus interface configured to determine a first determination of a first number of write operations in a first queue at a first page in a memory block of a plurality of memory blocks; and

a processor configured to:

determine a second determination that the first number of write operations in the first queue is above a threshold;

based on the second determination that the first number of write operations in the first queue is above the threshold, determine a third determination of whether a second page in the memory block is empty or not empty;

either:

identify, based on the third determination that the second page is empty, a last good page in the memory block using a binary search between the first page and the second page, or

determine, based on the third determination that the second page is not empty, a fourth determination of a second number of write operations in a second queue at the second page;

determine a fifth determination that the second number of write operations in the second queue is below the threshold; and

based on the fourth determination that the second number of write operations in the second queue equals 0, determine a sixth determination of whether a page that follows the second page is empty.

10. The controller of claim 9 , wherein the first page includes a middle page of the memory block.

11. The controller of claim 9 , wherein a number of pages between the first page and the second page corresponds to the first number of write operations in the first queue.

12. The controller of claim 9 , wherein the processor is further configured to determine that the second page is the last good page of the memory block based on a determination that the page that follows the second page is empty.

13. The controller of claim 9 , wherein the processor is further configured to determine, based on a determination that the page that follows the second page is not empty, a third number of write operations in a third queue at the page that follows the second page.

14. The controller of claim 9 , wherein the processor is further configured to, based on a determination that the second number of write operations in the second queue does not equal 0, determine whether the second number of write operations in the second queue is above the threshold.

15. The controller of claim 14 , wherein the processor is further configured to determine, based on a determination that the second number of write operations in the second queue is above the threshold, a third number of write operations at a third page of the memory block.

16. A method for finding a last good page for each memory die in a memory system having multiple memory dies, the method comprising:

determining a first determination of a first number of write operations in a first queue at a first page in a first memory block of a first memory die;

determining a second determination that the first number of write operations in the first queue is above a threshold;

based on the second determination that the first number of write operations in the first queue is above the threshold, determining a third determination of whether a second page in the first memory block of the first memory die is empty or not empty;

either:

based on the third determination that the second page is empty, identifying a last good page in the first memory block of the first memory die using a binary search between the first page and the second page, or

based on the third determination that the second page is not empty, identifying the last good page in the first memory block of the first memory die using a second number of write operations in a second queue at the second page in the first memory block of the first memory die;

determining a fourth determination that the second number of write operations in the second queue is below the threshold;

based on a fifth determination that the second number of write operation in the second queue equals 0, determining a sixth determination of whether a page that follows the second page is empty; and

identifying a last good page in a second memory block of a second memory die using the last good page in the first memory block of the first memory die and a delta number of pages, wherein the delta number of pages corresponds to an inherent latency of the memory system.

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 30, 2019
From: ELIASH, TOMER; MEKHANIK, EVGENY; ROZMAN, DAVID; CHASDAI, YAIR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049032/0290 →