Patent ID: 9235501
Filing Date: 2016-01-12
CPC Classification: G06F

Claim Text:
1. A data programming method for a memory storage device having a rewritable non-volatile memory chip, wherein the rewritable non-volatile memory chip comprises a plurality of rewritable non-volatile memory modules, and each of the rewritable non-volatile memory modules includes a plurality of physical blocks, and the data programming method comprising: configuring a plurality of logical blocks for mapping to a portion of the physical blocks in the rewritable non-volatile memory modules; receiving a first write command from a host system, wherein a first logical address corresponding to the first write command belongs to a first logical page; in response to the first write command, determining whether one of the rewritable non-volatile memory modules has stored specific data belonging to said first logical page, and if one of the rewritable non-volatile memory modules has not stored the specific data belonging to said first logical page, serving the one of the rewritable non-volatile memory modules as one of at least one first suitable memory module; writing a first writing data corresponding to the first write command into a first physical block among the physical blocks located in the at least one first suitable memory module if the at least one first suitable memory module is existent; after the first write command is received, receiving a second write command from the host system, wherein a second logical address corresponding to the second write command also belongs to said first logical page; in response to the second write command, determining whether one of the rewritable non-volatile memory modules has stored the specific data belonging to said first logical page, and if one of the rewritable non-volatile memory modules has not stored the specific data belonging to said first logical page, serving the one of the rewritable non-volatile memory modules as one of at least one second suitable memory module; and writing a second writing data corresponding to the second write command into a second physical block among the physical blocks located in the at least one second suitable memory module if the at least one second suitable memory module is existent, wherein the at least one first suitable memory module is different from the at least one second suitable memory module.