Partial block data programming and reading operations in a non-volatile memory
First Claim
1. A method of simultaneously storing original and replacement data in a non-volatile memory system, comprising:
- identifying the original and replacement data by the same logical address, and distinguishing the replacement data from the original data by keeping track of the relative times that the original and replacement data have been programmed into the memory.
8 Assignments
0 Petitions
Accused Products
Abstract
Data in less than all of the pages of a non-volatile memory block are updated by programming the new data in unused pages of either the same or another block. In order to prevent having to copy unchanged pages of data into the new block, or to program flags into superceded pages of data, the pages of new data are identified by the same logical address as the pages of data which they superceded and a time stamp is added to note when each page was written. When reading the data, the most recent pages of data are used and the older superceded pages of data are ignored. This technique is also applied to metablocks that include one block from each of several different units of a memory array, by directing all page updates to a single unused block in one of the units.
42 Citations
22 Claims
-
1. A method of simultaneously storing original and replacement data in a non-volatile memory system, comprising:
-
identifying the original and replacement data by the same logical address, and distinguishing the replacement data from the original data by keeping track of the relative times that the original and replacement data have been programmed into the memory.
-
-
2. A method of storing and retrieving original and replacement data in a non-volatile memory system, comprising:
-
identifying units of the original and the replacement data by the same logical address, reading units of data in an inverse order from an order in which they were programmed into the memory, and distinguishing units of replacement data from units of original data having the same logical address by the order in which they are read.
-
-
3. In a non-volatile memory system having a plurality of blocks of memory storage elements that are individually organized into a plurality of pages of memory storage elements, a method of substituting new data for superceded data within at least one page of one of the plurality of blocks while data in at least another page of said one block is not replaced, comprising:
-
programming the new data into at least one page of said one or another of the plurality of blocks, identifying the at least one page of superceded data and the at least one page of new data by a common logical address, and recording a relative time of programming the new and the superceded data. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method of operating a non-volatile memory system having an array of memory storage elements organized into at least two sub-arrays, wherein the individual sub-arrays are divided into a plurality of non-overlapping blocks of storage elements wherein a block contains the smallest group of memory storage elements that are erasable together, and the individual blocks are divided into a plurality of pages of storage elements wherein a page is the smallest group of memory storage elements that are programmable together, comprising:
-
linking at least one block from individual ones of said at least two sub-arrays to form a metablock wherein its component blocks are erased together as a unit, and updating pages of original data within any of the metablock component blocks less than all the pages within the block by programming replacement data into pages within another at least one block in only a designated one of the sub-arrays regardless of which sub-array the data being updated is stored. - View Dependent Claims (21)
-
-
22. A non-volatile memory system, comprising:
-
an array of non-volatile memory storage elements organized in blocks of storage elements, wherein an individual block contains the smallest group of storage elements that is erasable, and a programming mechanism that writes into a first block an updated version of less than all of original data stored in a second block along with an indication of the later writing of the updated version, an address mechanism that logically addresses both the original data and the updated version with the same address, and a reading mechanism that distinguishes the updated version from the original data at least in part by the relative time by said indication of the later writing of the updated version.
-
Specification