IP Library Granted Patent US 9,032,271
Granted Patent B2
US 9,032,271 · App. 13/708,873 · Granted May 12, 2015

System and method for lower page data recovery in a solid state drive

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 9,032,271
App. No.
13/708,873
Granted
May 12, 2015
Kind
B2
Abstract

In some embodiments of the present invention, a data storage system includes a controller and a non-volatile memory array having a plurality of memory pages. The controller performs a method that efficiently resolves the lower page corruption problem. In one embodiment, the method selects programmed lower page(s) for which paired upper page(s) have not been programmed, reads data from those selected lower page(s), corrects the read data, and reprograms the read data into those lower page(s). Since the number of lower pages in this condition is typically low (e.g., several pages in a block with hundreds or thousands of pages), this is a much more efficient method than reprogramming the entire block. In another embodiment, a similar reprogramming method is applied as a data recovery scheme in situations in which only lower pages are programmed (e.g., SLC memory, MLC memory in SLC mode, etc.).

Claims (40)

1. A solid-state storage system, including:

a non-volatile memory array including a plurality of memory blocks, each memory block including lower memory pages paired with upper memory pages; and

a controller configured to:

select, from the memory blocks, a programmed lower memory page that has a paired upper memory page that has not been programmed;

read first data from the selected lower memory page, wherein at least a portion of the read first data is corrupted;

apply error correction to the read first data to generate corrected first data; and

program the corrected first data to the selected lower memory page.

2. The solid-state storage system of claim 1 , wherein the non-volatile memory array comprises multi-level memory (MLC) cells.

3. The solid-state storage system of claim 1 , wherein the controller is configured to select the programmed lower memory page from an open memory block of the memory blocks.

4. The solid-state storage system of claim 3 , wherein the open memory block comprises a block on which programming was initiated but not completed when the storage system was last shut down.

5. The solid-state storage system of claim 1 , wherein the controller is further configured to:

select, from a memory block associated with the selected lower memory page, at least one other lower memory page which has a paired upper memory page that has not been programmed;

read second data from the selected at least one other lower memory page;

apply error correction to the read second data to generate corrected second data; and

program the corrected second data to the selected at least one other lower memory page.

6. The solid-state storage system of claim 5 , wherein the controller is further configured to:

select, from the memory block, each lower memory page which has a paired upper memory page that has not been programmed; and

reprogram data to each of the selected lower memory pages.

7. The solid-state storage system of claim 1 , wherein the controller is configured to program the corrected first data to the selected lower memory page as part of a startup sequence.

8. The solid-state storage system of claim 1 , wherein the error correction comprises at least one of low density parity check (LDPC) and RAID recovery.

9. The solid-state storage system of claim 1 , wherein the controller is configured to use at least one of metadata and scanning to select the programmed lower memory page.

10. A method of preserving data integrity in a solid-state storage system that includes a non-volatile memory array including a plurality of memory blocks, each including a plurality of memory pages, the method including:

selecting, from the memory blocks, a programmed lower memory page that has a paired upper memory page that has not been programmed;

reading first data from the selected lower memory page, wherein at least a portion of the read first data is corrupted;

applying error correction to the read first data to generate corrected first data; and

programming the corrected first data to the selected lower memory page.

11. The method of claim 10 , wherein the non-volatile memory array comprises multi-level memory (MLC) cells.

12. The method of claim 10 , wherein selecting comprises selecting the programmed lower memory page from an open memory block of the memory blocks.

13. The method of claim 12 , wherein the open memory block comprises a block on which programming was initiated but not completed when the storage system was last shut down.

14. The method of claim 10 , further comprising:

selecting, from a memory block associated with the selected lower memory page, at least one other lower memory page which has a paired upper memory page that has not been programmed;

reading second data from the selected at least one other lower memory page;

applying error correction to the read second data to generate corrected second data; and

programming the corrected second data to the selected at least one other lower memory page.

15. The method of claim 14 , further comprising:

selecting, from the memory block, each lower memory page which has a paired upper memory page that has not been programmed; and

reprogramming data to each of the selected lower memory pages.

16. The method of claim 10 , wherein programming the corrected first data to the selected lower memory page is performed as part of a startup sequence.

17. The method of claim 10 , wherein the error correction comprises at least one of low density parity check (LDPC) and RAID recovery.

18. The method of claim 10 , wherein selecting the programmed lower memory page comprises using at least one of metadata and scanning.

Assignments (13)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2012
From: SUN, YONGKE; ZHAO, DENGTAO; YANG, JUI-YAO
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 029430/0684 →