Non-volatile memory and method with multi-stream update tracking
First Claim
1. A method of recording data from a host comprising:
- (a) providing first and second nonvolatile storages, each for sequentially recording data units;
(b) designating either the first or second storage as storage for priority information, said priority information allowing determination of whether a first data unit in the first storage was recorded before or after a second data unit in the second storage;
(c) receiving the data from the host;
(d) recording the received data to a next available location in either the first storage or the second storage respectively depending on whether or not a predetermined condition is satisfied;
(e) wherein whenever the received data is being recorded to the designated storage, the priority information is also being recorded thereto; and
(f) repeating (c)-(e) until there is no more received data to be recorded.
3 Assignments
0 Petitions
Accused Products
Abstract
Update data to a non-volatile memory may be recorded in at least two interleaving streams such as either into an update block or a scratch pad block depending on a predetermined condition. The scratch pad block is used to buffered update data that are ultimately destined for the update block. Synchronization information about the order recording of updates among the streams is saved with at least one of the streams. This will allow the most recently written version of data that may exist on multiple memory blocks to be identified. In one embodiment, the synchronization information is saved in a first block and is a write pointer that points to the next recording location in a second block. In another embodiment, the synchronization information is a time stamp.
115 Citations
41 Claims
-
1. A method of recording data from a host comprising:
-
(a) providing first and second nonvolatile storages, each for sequentially recording data units; (b) designating either the first or second storage as storage for priority information, said priority information allowing determination of whether a first data unit in the first storage was recorded before or after a second data unit in the second storage; (c) receiving the data from the host; (d) recording the received data to a next available location in either the first storage or the second storage respectively depending on whether or not a predetermined condition is satisfied; (e) wherein whenever the received data is being recorded to the designated storage, the priority information is also being recorded thereto; and (f) repeating (c)-(e) until there is no more received data to be recorded. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A nonvolatile memory comprising:
-
a memory organized into a plurality of blocks, each block being a plurality of memory units that are erasable together, each memory unit for storing a data unit; a controller for controlling operations of said blocks; first and second blocks, each for sequentially recording data units; priority information for allowing determination of whether a first data unit in the first block was recorded before or after a second data unit in the second block; a designated block designated from one of said first and second blocks for storing said priority information; a buffer for receiving the data from the host; said controller controlling recording of the received data to a next available location in either said first block or said second block respectively depending on whether or not a predetermined condition is satisfied; and wherein said priority information is being stored in said designated block whenever the received data is being recorded to the designated block. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41)
-
-
39. A nonvolatile memory comprising:
-
a memory organized into a plurality of blocks, each block being a plurality of memory units that are erasable together, each memory unit for storing a logical unit of data; first and second blocks, each for sequentially recording data from a host; a write pointer pointing to the next recording location of said first block; a designated block designated from one of said first and second blocks for storing said write pointer; a buffer for receiving the data from the host; means for recording the received data to a next available location in either said first block or said second block respectively depending on whether or not a predetermined condition is satisfied; and wherein said write pointer is being stored in said designated block whenever the received data is being recorded to the designated block.
-
Specification