Patent ID: 7664906
Filing Date: 2010-02-16
Classification: G06F,G11C

Abstract:
1. A flash memory access apparatus, comprising: a flash memory comprising a plurality of units, each of the units comprising a plurality of blocks; and a flash memory controller, wherein if a write operation is requested for a logical block number of the flash memory, the flash memory controller is configured to write data and meta-information comprising flash memory state information comprising an indicator, which indicates a state of the physical block as valid, deleted, or invalid, in the physical block corresponding to a logical block with the logical block number if a previous write operation has not been performed for the logical block, and the flash memory controller is configured to perform a write operation for writing the data and the meta-information, comprising writing the valid indicator, allocated to the logical block in a new physical block without changing flash memory state information, wherein the flash memory state information is written in a previous physical block corresponding to the logical block if the previous write operation has been performed for the logical block, wherein the flash memory state information is time independent, wherein the flash memory controller is configured to perform a recovery operation which detects, during a scanning process, physical blocks for the logical block number and recovers from an error by determining a valid block for the logical block among the detected physical blocks, wherein the scanning process comprises reading a logical block number for each of the physical blocks by investigating the flash memory based on a latest accessed block, and investigating a field of a block allocation table corresponding to the read logical block number, and wherein the investigating the field of the block allocation table comprises writing a state value of “1” in the field of the block allocation table if the state value has been “0,” and detecting that the logical block number has been searched for through the previous physical block during the scanning process, if the state value is “1”.