A non-volatile memory system is organized in physical groups of physical
memory locations. Each physical group (metablock) is erasable as a unit
and can be used to store a logical group of data. A memory management
system allows for update of a logical group of data by allocating a
metablock dedicated to recording the update data of the logical group.
The update metablock records update data in the order received and has no
restriction on whether the recording is in the correct logical order as
originally stored (sequential) or not (chaotic). Eventually the update
metablock is closed to further recording. One of several processes will
take place, but will ultimately end up with a fully filled metablock in
the correct order which replaces the original metablock. In the chaotic
case, directory data is maintained in the non-volatile memory in a manner
that is conducive to frequent updates. The system supports multiple
logical groups being updated concurrently.