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.