Patent ID: 8332576

Claim:
A data reading method, for a flash memory storage system having a flash memory, wherein the flash memory is substantially divided into a plurality of blocks, and the blocks are grouped into at least a data area and a spare area, the data reading method comprising: determining that a first block in the data area is a frequently read block; selecting a second block from the spare area as a buffer storage area corresponding to the first block and copying data stored in the first block to the second block; reading data belonging to the first block from the buffer storage area when the first block is about to be read; determining whether there is any error bit in data read from the buffer storage area; if there is an error bit in data read from the buffer storage area, reading data from the first block; and selecting a third block from the spare area as the buffer storage area corresponding to the first block and copying data read from the first block to the third block.