IP Library Granted Patent US 8,897,065
Granted Patent B2
US 8,897,065 · App. 14/257,268 · Granted Nov 25, 2014

Efficient data storage in multi-plane memory devices

Inventors: Yoav Kasorla (Kfar Netar, IL); Eyal Gurgi (Petah-Tikva, IL); Dotan Sokolov (Ra'anana, IL); Ofir Shalvi (Ra'anana, IL)
Assignee: Apple Inc.
G06F11/1072G06F12/0246G11C29/52G06F12/0607G06F2212/7208
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 8,897,065
App. No.
14/257,268
Granted
Nov 25, 2014
Kind
B2
Abstract

A method for data storage includes initially storing a sequence of data pages in a memory that includes multiple memory arrays, such that successive data pages in the sequence are stored in alternation in a first number of the memory arrays. The initially-stored data pages are rearranged in the memory so as to store the successive data pages in the sequence in a second number of the memory arrays, which is less than the first number. The rearranged data pages are read from the second number of the memory arrays.

Claims (63)

1. An apparatus, comprising:

a page buffer; and

circuitry coupled to the page buffer, wherein the processing unit is configured to:

receive a request from a host to read a first plurality of data pages from a memory;

read a first data page of the first plurality of data pages from the memory responsive to the request;

store the first data page in the page buffer;

read at least one neighboring page of the first data page from the memory;

store the at least one neighboring page of the first data page in the page buffer; and

a processing unit configured to:

retrieve the first data page and the at least one neighboring page of the first data page from the page buffer; and

cancel interference in the retrieved first data page dependent upon the retrieved at least one neighboring page of the first data page.

2. The apparatus of claim 1 , wherein to cancel interference in the retrieved first data page, the processing unit is further configured to estimate the distortion of the retrieved first data page.

3. The apparatus of claim 1 , wherein the retrieved first data page and the retrieved at least one neighboring page of the first data page are encoded with an Error Correction Code (ECC), and wherein the processing unit is further configured to decode the ECC of the retrieved first data page.

4. The apparatus of claim 1 , wherein the circuitry is further configured to read, in parallel with the processing unit cancelling interference is the retrieved first data page, a second data page and at least one neighboring page of the second data page from the memory, and store the second data page and the at least one neighboring page of the second data page in the page buffer.

5. The apparatus of claim 1 , wherein the circuitry is further configured to:

receive a request from the host to store a second plurality of data pages, wherein each data page of the second plurality of data pages is received in a first order;

store each page of the second plurality of data pages in the page buffer;

retrieve each data page of the second plurality of data pages from the page buffer, wherein each data page of the second plurality of data pages is retrieved from the page buffer in a second order, wherein the second order is different than the first order; and

store each retrieved data page of the second plurality of data pages in the memory.

6. The apparatus of claim 5 , wherein the second order comprises a reverse of the first order.

7. A method, comprising:

receiving a request to read a first plurality of data pages from a memory;

reading a first data page of the first plurality of data pages from the memory responsive to the request;

storing the first data page in a page buffer;

reading at least one neighboring page of the first data page from the memory;

storing the at least one neighboring page of the first data page in the page buffer;

retrieving the first data page and the at least one neighboring page of the first data page from the page buffer; and

cancelling interference in the retrieved first data page dependent upon the retrieved at least one neighboring page of the first data page.

8. The method of claim 7 , wherein cancelling interference in the retrieved first data page comprises estimating distortion in the retrieved first data page.

9. The method of claim 7 , wherein the retrieved first data page and the at least one neighboring page of the retrieved first data page are encoded with an Error Correction Code (ECC).

10. The method of claim 9 , further comprising decoding the ECC of the retrieved first data page.

11. The method of claim 7 , further comprising:

reading, in parallel with cancelling interference in the first data page, a second data page of the first plurality of data pages and at least one neighboring page of the second data page; and

storing the second data page and the at least one neighboring page of the second data page in the page buffer.

12. The method of claim 7 , further comprising:

receiving a request to store a second plurality of data pages in the memory, wherein each data page of the second plurality of data pages is received in a first order;

storing each data page of the second plurality of in the page buffer;

retrieving each data page of the second plurality of data pages from the page buffer, wherein each data page of the second plurality of data pages is retrieved from the page buffer is a second order; and

storing, in the memory, each data page retrieved from the page buffer.

13. The method of claim 7 , wherein the memory comprises a non-volatile memory.

14. A system, comprising:

a host;

a memory; and

a processing unit configured to:

receive a request from the host to read a first plurality of data pages from the memory;

read a first data page of the first plurality of data pages from the memory responsive to the request;

store the first data page in a page buffer;

read at least one neighboring page of the first data page from the memory;

store the at least one neighboring page of the first data page in the page buffer;

retrieve the first data page and the at least one neighboring page of the first data page from the page buffer; and

cancel interference in the retrieved first data page dependent upon the retrieved at least one neighboring page of the first data page.

15. The system of claim 14 , wherein to cancel interference in the retrieved first data page, the processing unit is further configured to estimate distortion in the retrieved first data page.

16. The system of claim 14 , wherein the retrieved first data page and the retrieved at least one neighboring data page are encoded with an Error Correction Code (ECC).

17. The system of claim 16 , wherein the processing unit is further configured to decode the ECC of the retrieved first data page.

18. The system of claim 14 , wherein the processing unit is further configured to:

receive a request from the host to store a second plurality of data pages, wherein each data page of the second plurality of data pages is received in a first order; and

store each page of the second plurality of data pages in the page buffer;

retrieving each data page of the second plurality of data pages from the page buffer, wherein each data pages of the second plurality of data pages is retrieved from the page buffer in a second order, wherein the second order is different than the first order;

store, in the memory, each data page retrieved from the page buffer.

19. The system of claim 14 , wherein the processing unit is further configured to:

read, in parallel with the cancelling of interference in the first data page, a second data page and at least one neighboring data page of the second data page from the memory; and

store the read second data page and the read at least one neighboring page of the second data page in the page buffer.

20. The system of claim 14 , wherein the memory comprises a non-volatile memory.

Continuity (5)
Continuation 13890704 · May 9, 2013
Division 12332370 · Dec 11, 2008
Provisional Application 61014048 · Dec 16, 2007
Provisional Application 61016570 · Dec 25, 2007
Related Publication 20140229798A1 · Aug 14, 2014