Method of storing transformed units of data in a memory system having fixed sized storage blocks
First Claim
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, andmaintaining 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.
3 Assignments
0 Petitions
Accused Products
Abstract
A change in the amount of data to be stored that results from various encoding, compression, encryption or other data transformation algorithms, is handled by individually identifying distinct units of the transformed data and storing such units in physical succession within storage blocks of a memory system such as flash memory. The data being stored may come from a host system external to the memory system or from an application running on a processor within the memory system.
255 Citations
15 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of operating a re-programmable non-volatile memory system to compress data received by the memory system with logical addresses within a logical address range and store the compressed data, 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 groups having contiguous logical addresses within the logical address range, compressing the individual units of received data, thereby generating corresponding groups of data that are individually smaller than their corresponding units of data prior to compression, 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. - View Dependent Claims (12, 13, 14, 15)
-
Specification