IP Library Patent Application 13468720
Patent Application
App. No. 13/468,720

Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions

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 None
App. No.
13/468,720
Abstract

A non-volatile memory organized into flash erasable blocks receives data from host writes by first staging into logical groups before writing into the blocks. Each logical group contains data from a predefined set of order logical addresses and has a fixed size smaller than a block. The totality of logical groups are obtained by partitioning a logical address space of the host into non-overlapping sub-ranges of ordered logical addresses, each logical group having a predetermined size within a range delimited by a minimum size of at least one page and a maximum size of fitting at least two logical groups in a block and up to an order of magnitude higher than a typical size of a host write. In this way, excessive garbage collection due to operating a large logical group is avoided while the address space is reduced to minimize the size of a caching RAM.

Claims (49)

1 . A method of storing data from a host in a non-volatile memory, comprising:

organizing the non-volatile memory into blocks of memory cells that are erasable together, each block for storing a plurality of pages, each page for accessing a predetermined number logical unit of data in parallel, each logical unit having a logical address assigned by the host;

defining a plurality of logical groups by partitioning a logical address space of the host into non-overlapping sub-ranges of ordered logical addresses, each logical group having a predetermined size within delimited by a minimum size of at least one page and a maximum size of fitting at least two logical groups in a block;

buffering individual host writes;

staging the individual host writes logical group by logical group; and

storing any staged logical groups into the non-volatile memory.

2 . The method as in claim 1 , wherein the maximum size is up to an order of magnitude higher than a size of a host write.

3 . The method as in claim 1 , wherein a page has a size between 32 to 64 kilobytes.

4 . The method as in claim 1 , wherein the logical group has a size selected from a range being 1 to 4 pages.

5 . The method as in claim 1 , further comprising:

partitioning the non-volatile memory into a SLC portion and an MLC portion, where memory cells in the SLC portion each stores one bit of data and memory cells in the MLC portion each stores more than one bit of data; and

wherein said buffering and staging steps are performed in the SLC portion.

6 . The method as in claim 5 , further comprising:

copying data stored in the SLC portion to the MLC portion.

7 . The method as in claim 6 , further comprising:

providing active storage in a pool of blocks in the SLC portion; and

wherein said copying data stored in the SLC portion to the MLC portion is in response to said pool getting full.

8 . The method as in claim 5 , further comprising:

providing said SLC portion with a first layer and a second layer; and

said buffering and staging steps are performed in the first layer of the SLC portion.

9 . The method as in claim 8 , wherein:

said buffering and staging step involves short fragments of data of the host write addressable by logical address.

10 . The method as in claim 8 , wherein:

said storing step is performed in the second layer of the SLC portion.

11 . A non-volatile memory, comprising:

a memory array organized into blocks of memory cells that are erasable together, each block for storing a plurality of pages, each page for accessing a predetermined number logical unit of data in parallel, each logical unit having a logical address assigned by the host;

a memory structure defining a plurality of logical groups by partitioning a logical address space of the host into non-overlapping sub-ranges of ordered logical addresses, each logical group having a predetermined size within a range delimited by a minimum size of at least one page and a maximum size of fitting at least two logical groups in a block;

a buffer for buffering individual host writes;

a state machine controlling operations that include:

staging the individual host writes logical group by logical group; and

storing any staged logical groups into the non-volatile memory.

12 . The non-volatile memory as in claim 11 , wherein the maximum size is up to an order of magnitude higher than a size of a host write.

13 . The non-volatile memory as in claim 11 , wherein a page has a size between 32 to 64 kilobytes.

14 . The non-volatile memory as in claim 11 , wherein the logical group has a size selected from a range being 1 to 4 pages.

15 . The non-volatile memory as in claim 11 , further comprising:

the non-volatile memory having a SLC portion and an MLC portion, where memory cells in the SLC portion each stores one bit of data and memory cells in the MLC portion each stores more than one bit of data; and

wherein said state machine controls said buffering and staging operations in the SLC portion.

16 . The non-volatile memory as in claim 15 , further comprising:

said state machine controlling copying of data stored in the SLC portion to the MLC portion.

17 . The non-volatile memory as in claim 16 , further comprising:

active storage in a pool of blocks in the SLC portion; and

wherein said state machine controlling copying of data stored in the SLC portion to the MLC portion is in response to said pool getting full.

18 . The non-volatile memory as in claim 15 , further comprising:

a first layer and a second layer in the SLC portion; and

said state machine controlling said buffering and staging operations in the first layer of the SLC portion.

19 . The non-volatile memory as in claim 18 , wherein:

said buffering and staging step involves short fragments of data of the host write addressable by logical address.

20 . The non-volatile memory as in claim 18 , wherein:

said storing step is performed in the second layer of the SLC portion.

Assignments (2)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038809/0672 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2012
From: GOROBETS, SERGEY ANATOLIEVICH; WU, WILLIAM S.; SPROUSE, STEVEN T.
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 028219/0902 →