Patent ID: 7779056

Claim:
In a non-volatile memory organized into a plurality of blocks, each block for storing logical units of data that are erasable together, a method of storing data in the memory, comprising: allocating up to a first predetermined number of blocks as update blocks that are concurrently open for storing updates of logical units of data; providing a pool of up to a first predetermined maximum number of update blocks that are concurrently open for storing updates of logical units of data; providing a set of predefined classes for classifying update blocks based on a set of attributes, with each class supporting a sub-pool of up to an associated predetermined maximum number of update blocks; providing a set of corresponding replacement rules to the set of predefined classes to specify the update block in the respective sub-pools to be replaced; grouping the update blocks in the pool by class into corresponding sub-pools; and closing and removing a least active update block in a sub-pool containing the associated predetermined maximum number of update blocks whenever another update block of the same class is being introduced thereto, the removed update block being selected in accordance with the corresponding replacement rule for the same class.