Patent ID: 7818493

Claim:
A method of selecting blocks to close in a block-erasable nonvolatile memory, comprising; maintaining a first list of update blocks containing nonsequentially stored data, each update block of the first list individually being added to the first list after one recent nonsequential write operation to such update block, the first list of update blocks listing at least one update block that is in the closed condition in the block-erasable nonvolatile memory; maintaining a second list of update blocks containing nonsequentially stored data, each update block of the second list individually being added to the first list after two or more frequent nonsequential write operations to such update block, the second list of update blocks listing at least one update block that is in the closed condition in the block-erasable nonvolatile memory; maintaining a limited number of open nonsequential update blocks that contain recently written valid data and are available for programming of additional data, the plurality of open nonsequential update blocks each being listed in the first or second lists; and wherein the limited number of open nonsequential update blocks is maintained by decreasing the number of open nonsequential update blocks of the first list in response to an increase in the number of open nonsequential update blocks of the second list and by decreasing the number of open nonsequential update blocks of the second list in response to an increase in the number of open nonsequential update blocks of the first list.