NON-VOLATILE MEMORY AND METHOD WITH ADAPTIVE LOGICAL GROUPS
First Claim
1. A nonvolatile memory, comprising:
- an array of memory cells organized into blocks as erase units and physical pages as read/write units, each physical page for storing a logical page of data, each logical page having a logical address assigned by a host;
a plurality of logical groups provided by partitioning a logical address space of the host into non-overlapping groups of sequential logical addresses, each logical group consisting a plurality of corresponding logical pages;
a controller, for writing data from a host write in either a first or second write stream;
a pool of erase blocks for allocating multiple blocks in the first write stream, each of the multiple blocks being open in parallel in the first write stream for writing logical group by logical group, and for allocating blocks sequentially in the second write stream, each of the blocks being open one at a time for writing logical page by logical page;
said controller, responsive to the data having at least a predetermined size or its logical addresses following sequentially a previous write in a partially filled block in the first stream, for writing the data to the first write stream, otherwise, for writing the data to the second write stream;
a group-level map for tracking logical groups stored among the plurality of blocks in the first write stream, said group-level map being maintained in said non-volatile memory with a copy cached in a RAM of said controller;
a page-level map for tracking obsolete pages among the logical groups written in the first write stream and updated pages of the obsolete pages written in the first and second write streams, said page-level map being maintained in said non-volatile memory with at least a portion of a copy cached in the RAM of said controller; and
said controller performing garbage collection independently on each of the first and second write streams without data being copied between each of the first and second write streams.
3 Assignments
0 Petitions
Accused Products
Abstract
A nonvolatile memory is organized into blocks as erase units and physical pages as read/write units. A host addresses data by logical pages, which are storable in corresponding physical pages. Groups of logical pages are further aggregated into ogical groups as addressing units. The memory writes host data in either first or second write streams, writing to respective blocks either logical-group by logical-group or logical-page by logical-page in order to reduce the size of logical-to-physical-address maps that are cached in a controller RAM. Only one block at a time needs be open in the second stream to accept logical pages from multiple logical groups that are active. Garbage collection is performed on the blocks from each write stream independently without data copying between the two streams.
-
Citations
20 Claims
-
1. A nonvolatile memory, comprising:
-
an array of memory cells organized into blocks as erase units and physical pages as read/write units, each physical page for storing a logical page of data, each logical page having a logical address assigned by a host; a plurality of logical groups provided by partitioning a logical address space of the host into non-overlapping groups of sequential logical addresses, each logical group consisting a plurality of corresponding logical pages; a controller, for writing data from a host write in either a first or second write stream; a pool of erase blocks for allocating multiple blocks in the first write stream, each of the multiple blocks being open in parallel in the first write stream for writing logical group by logical group, and for allocating blocks sequentially in the second write stream, each of the blocks being open one at a time for writing logical page by logical page; said controller, responsive to the data having at least a predetermined size or its logical addresses following sequentially a previous write in a partially filled block in the first stream, for writing the data to the first write stream, otherwise, for writing the data to the second write stream; a group-level map for tracking logical groups stored among the plurality of blocks in the first write stream, said group-level map being maintained in said non-volatile memory with a copy cached in a RAM of said controller; a page-level map for tracking obsolete pages among the logical groups written in the first write stream and updated pages of the obsolete pages written in the first and second write streams, said page-level map being maintained in said non-volatile memory with at least a portion of a copy cached in the RAM of said controller; and said controller performing garbage collection independently on each of the first and second write streams without data being copied between each of the first and second write streams. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of operating a non-volatile memory, comprising:
-
organizing the non-volatile memory into blocks of memory cells that are erasable together, each block containing a plurality of physical pages, each physical page containing a page of memory cells that are read or written in parallel and for storing a logical page of data, each logical page having a logical address assigned by a host; providing a plurality of logical groups provided by partitioning a logical address space of the host into non-overlapping groups of sequential logical addresses, said plurality of logical groups further partitioned into a plurality of logical pages; writing the data from a host write either to a first write stream or, otherwise, to a second write stream; providing a pool of erase blocks for allocating multiple blocks in the first write stream, each of the multiple blocks being open in parallel in the first write stream for writing logical group by logical group, and for allocating blocks sequentially in the second write stream, each of the blocks being open one at a time for writing logical page by logical page; responsive to the data having at least a predetermined size or its logical addresses following sequentially a previous write in a partially filled block in the first stream, for writing the data to the first write stream, otherwise, for writing the data to the second write stream; tracking with a group-level map logical groups stored among the plurality of blocks in the first write stream, said group-level map being maintained in said non-volatile memory with a copy cached in a RAM of said controller; tracking with a page-level map obsolete pages among the logical groups written in the first write stream and updated pages of the obsolete pages written in the first and second write streams, said page-level map being maintained in said non-volatile memory with at least a portion of a copy cached in the RAM of said controller; and performing garbage collection independently on each of the first and second write streams without data being copied between each of the first and second write streams. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification