1. A method of operating a block-erasable, nonvolatile memory array, comprising: maintaining a list that contains a list entry for each of a plurality of blocks of the nonvolatile memory array, the list entries ordered according the amount of valid data stored in individual ones of the plurality of blocks.