Patent ID: 8949507
Filing Date: 2015-02-03
Classification: G06F,G11C

Abstract:
1. A method for performing block management, the method being applied to a controller of a Flash memory having multiple channels, the Flash memory comprising a plurality of blocks respectively corresponding to the channels, the method comprising: temporarily storing at least one index of at least one good block that is not grouped into any meta block into a spare good block table, wherein the good block is a block that is not determined as a bad block within the plurality of blocks; when it is detected that a specific block corresponding to a specific channel within blocks currently grouped into meta blocks is a bad block, dynamically updating the spare good block table for use of block management; when it is detected that the specific block corresponding to the specific channel is a bad block and the spare good block table indicates that a good block corresponding to the specific channel exists, dynamically replacing the specific block with the good block corresponding to the specific channel; when dynamically replacing the specific block with the good block corresponding to the specific channel, replacing an index, stored in the spare good block table, of the good block corresponding to the specific channel by an invalid record; storing a previous version of the spare good block table into the Flash memory, and storing a copy version of the spare good block table into a first buffer of the controller, for use of dynamically updating the spare good block table; storing a previous version of a meta block mapping table into the Flash memory, and storing a copy version of the meta block mapping table into a second buffer of the controller; storing a latest version of the spare good block table within the first buffer and a latest version of the meta block mapping table within the second buffer into the Flash memory, in order to replace the previous version of the spare good block table and the previous version of the meta block mapping table; wherein each of the channels corresponds to a Flash memory chip, and each of blocks comprised in the meta block is corresponding to different Flash memory chip.