IP Library Granted Patent US 10,552,311
Granted Patent B2
US 10,552,311 · App. 15/477,169 · Granted Feb 4, 2020

Recovery for non-volatile memory after power loss

Inventors: Joseph Douglas Edgington (Sacramento, CA); Hisham Chowdhury (Fair Oaks, CA)
Assignee: Micron Technology, Inc.
G06F12/0246G06F3/064G06F3/0679G06F12/1009G11C16/102G06F2212/7202G06F2212/7209
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,552,311
App. No.
15/477,169
Granted
Feb 4, 2020
Kind
B2
Abstract

Non-volatile memory array can be recovered after a power loss. In one example, pages of a memory array are scanned to find a first free page after the power loss. The first free page is marked as available, and the page marked as available is written to with the next write cycle.

Claims (52)

1. A method, comprising:

utilizing a hardware processor:

determining that a first memory page of a NAND memory array contains data, the NAND memory array organized into multiple memory pages, the first memory page one of the multiple memory pages, each particular page including a header in a specifically allocated portion of the particular page;

determining whether a header in the first memory page contains a commit marker, the commit marker specifying that a programming operation programming the data to the first memory page has finished;

based on a determination that the header on the first memory page contains a commit marker, determining that a next memory page of the NAND memory array contains data;

determining that a commit marker is not present in a header of the next memory page;

responsive to determining that the commit marker is not present in the header of the next memory page, designating a page subsequent to the next page as a first available page for writing;

receiving data to write to the NAND memory array; and

writing the received data to the page marked as the first available page for writing.

2. The method of claim 1 , further comprising:

marking the next page invalid responsive to determining that the commit marker is not present in the header of the next memory page.

3. The method of claim 1 , wherein the data on the first memory pace was written prior to the data on the next memory page.

4. The method of claim 1 , wherein the next memory page is a next memory page in a sequential order of memory pages.

5. The method of claim 1 , wherein the memory array is divided into blocks, each block containing multiple pages, wherein the first and next pages are both part of a first block, the method further comprising:

scanning pages of a second block to find a first available page in the second block

based on a determination that the first available page of the second block is at least the second page in the second block, marking the page before the first available page in the second block as invalid.

6. The method of claim 1 , wherein the method further comprises determining that a power loss occurred, and wherein the operations of determining that the first memory page contains data, determining whether the header contains a commit marker, determining that the next memory page contains data, determining that the commit marker is not present in the header and designating the page subsequent to the next page as the first available page is performed responsive to determining that the power loss occurred.

7. The method of claim 1 , method further comprises determining that the memory array is powered up, and wherein the operations of determining that the first memory page contains data, determining whether the header contains a commit marker, determining that the next memory page contains data, determining that the commit marker is not present in the header and designating the page subsequent to the next page as the first available page is performed responsive to determining that the memory array was powered up.

8. The method of claim 2 , further comprising: erasing the next page responsive to marking the next page invalid during a subsequent garbage collection operation.

9. The method of claim 1 , wherein the first page, next page, and subsequent page are on a same block of the NAND memory array and wherein the method further comprises:

scanning multiple pages of a second block until a second page of the second block is found that is either empty, or has data written to it but does not have the commit marker set in the header; and

responsive to finding the second page, designating a third page in the second block subsequent to the second page as a first available page in the second block for writing.

10. A NAND memory device comprising:

a NAND memory array organized into multiple memory pages, each particular page including a header in a specifically allocated portion of the particular page;

a hardware-based processor configured to perform operations comprising:

determining that a first memory page of the NAND memory array contains data;

determining whether a header in a specifically allocated portion on the first memory page contains a commit marker, the commit marker specifying that a programming operation programming the data to the first memory page finished;

based on a determination that the header on the first memory page contains a commit marker determining that the next memory page of the NAND memory array contains data;

determining that a commit marker is not present in a header of the next memory page;

responsive to determining that the commit marker is not present in the header of the next memory page, designating a page subsequent to the next page as a first available page for writing;

receiving data to write to the NAND memory array; and

writing the received data to the page marked as the first available page for writing.

11. The NAND memory device of claim 10 , wherein:

the operations further comprise: marking the next memory page as invalid; and

erasing the page marked as invalid.

12. The NAND memory device of claim 11 , wherein the operations of erasing the page marked as invalid occurs during a subsequent garbage collection operation.

13. The NAND memory device of claim 10 , wherein the first page, next page, and subsequent page are on a same block of the NAND memory array and wherein the operations further comprise:

scanning multiple pages of a second block until a second page of the second block is found that is either empty, or has data written to it but does not have the commit marker set in the header; and

responsive to finding the second page, designating a third page in the second block subsequent to the second page as a first available page in the second block for writing.

14. A non-transitory computer-readable storage medium containing instructions that, when executed by one or more hardware-based processors, causes the one or more hardware-based processors to perform operations comprising:

determining that a first memory page of a NAND memory array contains data, the NAND memory array organized into multiple memory pages, the first memory page one of the multiple memory pages, each particular page including a header a specifically allocated portion of the particular page;

determining whether a header in a specifically allocated portion on the first memory page contains a commit marker, the commit marker specifying that a programming operation programming the data to the first memory page finished;

based on a determination that the header on the first memory page contains a commit marker, determining that a next memory page of the NAND memory array contains data;

determining that a commit marker is not present in a header of the next memory page;

responsive to determining that the commit marker is not present in the header of the next memory page, designating page subsequent to the next page as a first available page for writing;

receiving data to write to the NAND memory array; and

writing the received data to the page marked as the first available page for writing.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the operations further comprise marking the next page as invalid.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the operations further comprise: marking the next memory page as invalid; and erasing the page marked as invalid during a subsequent garbage collection operation.

17. The non-transitory computer-readable storage medium of claim 14 , wherein the first page, next page, and subsequent page are on a same block of the NAND memory array and wherein the operations further comprise:

scanning multiple pages of a second block until a second page of the second block is found that is either empty, or has data written to it but does not have the commit marker set in the header; and

responsive to finding the second page, designating a third page in the second block subsequent to the second page as a first available page in the second block for writing.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050702/0451 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
SUPPLEMENT NO. 4 TO PATENT SECURITY AGREEMENT Recorded May 4, 2017
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042405/0909 →
Cited By (2)
US 12,236,106 US 12,619,294