1. A method of operating a re-programmable non-volatile memory system to store data received by the memory system with logical addresses within a logical address range, wherein the memory system includes memory cells organized into distinct operating blocks of cells, the individual blocks containing a minimum number of memory cells that are erased together prior to writing data therein, comprising: dividing the data received by the memory system into equal sized units of data that individually contain an amount of data equal to or less than a storage capacity of the individual memory cell blocks, the data within individual units having contiguous logical addresses within the logical address range, transforming the individual units of received data by at least one of encoding, compressing or encrypting the received data into corresponding groups of data that individually contain a different amount of data than existed in their corresponding units of data prior to transformation, writing the groups of data into contiguous locations within one or more of the memory cell blocks with boundaries coincident with at least boundaries of the groups of data and physical boundaries of the memory cell blocks, including splitting into two sub-groups an individual group that spans across two memory cell blocks with one of the sub-groups located in each of the two memory cell blocks, and maintaining a central table of locations of the individual groups and sub-groups of data within the memory cell blocks that includes maintaining boundaries defined for the individual groups and sub-groups of data that are within the boundaries of the memory cell blocks.