Partial Block Data Programming And Reading Operations In A Non-Volatile Memory
First Claim
1. In a non-volatile memory system having a plurality of blocks of memory storage elements that are individually erasable as a unit and which are individually organized into a plurality of pages of memory storage elements that are individually programmable together, 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,recording a relative time of programming the at least one page of new data and the at least one page of superceded data; and
wherein the at least one page of superceded data is less than all the data contained in said one block.
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.
-
Citations
16 Claims
-
1. In a non-volatile memory system having a plurality of blocks of memory storage elements that are individually erasable as a unit and which are individually organized into a plurality of pages of memory storage elements that are individually programmable together, 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, recording a relative time of programming the at least one page of new data and the at least one page of superceded data; and wherein the at least one page of superceded data is less than all the data contained in said one block. - View Dependent Claims (2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16)
-
-
3. In a non-volatile memory system having a plurality of blocks of memory storage elements that are individually erasable as a unit and which are individually organized into a plurality of pages of memory storage elements that are individually programmable together, 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, recording a relative time of programming the at least one page of new data and the at least one page of superceded data; and wherein the data in at least another page of said one block that is not replaced are not copied into said one or another block as part of substituting the new data for the superceded data.
-
-
12. In a non-volatile memory system having a plurality of blocks of memory storage elements that are individually erasable as a unit and which are individually organized into a plurality of pages of memory storage elements that are individually programmable together, 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, wherein pages within the individual blocks are programmed in a designated order, identifying the at least one page of superceded data and the at least one page of new data by a common logical address, reading pages of data within said one and, if new data has been programmed thereinto, another block in a reverse order from which they were programmed, and passing over any pages of data so read which have the same logical page address as a page whose data has already been read; and wherein the at least one page of superceded data is less than all the data contained in said one block.
Specification