Method for non-volatile memory with worst-case control data management
First Claim
1. A method of operating a memory, comprising:
- organizing a nonvolatile memory into blocks;
maintaining one or more type of data;
setting a margin of a number of empty memory units before a block is full for each type of data, wherein the margin is substantially sufficient to accommodate data accumulated in a predetermined interval before data in the block are allowed to relocate;
storing updates of the one or more type of data among a plurality of blocks so that each block is storing essentially data of the same type; and
in response to a block storing data reaching the margin for the data type, relocating data in the block to another block when allowed to do so.
3 Assignments
0 Petitions
Accused Products
Abstract
In a nonvolatile memory with a block management system, data written to blocks include host write data and also system control data for managing the blocks. When a block is full or no longer accepting data, it is closed after valid versions of the data on it are relocated to another block in a rewrite operation. An improved pre-emptive rewrite scheme prevents a worst-case situation where multiple rewrites to occur at once when they happened to be full at the same time. Particularly, the scheduling of the pre-emptive rewrites for control data is based on a number of considerations including the time required for each control block rewrite and the time available for control block rewrites based on the configuration of the update blocks for storing host data, the time required in the foreground host operation and the host write latency.
103 Citations
29 Claims
-
1. A method of operating a memory, comprising:
-
organizing a nonvolatile memory into blocks; maintaining one or more type of data; setting a margin of a number of empty memory units before a block is full for each type of data, wherein the margin is substantially sufficient to accommodate data accumulated in a predetermined interval before data in the block are allowed to relocate; storing updates of the one or more type of data among a plurality of blocks so that each block is storing essentially data of the same type; and in response to a block storing data reaching the margin for the data type, relocating data in the block to another block when allowed to do so. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification