Patent ID: 8902671

Claim:
A method for programming data, adapted for a memory storage device, the memory storage device comprises a buffer memory and a rewritable non-volatile memory module, the rewritable non-volatile memory module has a plurality of physical erase units, and each of the physical erase units has a plurality of physical program units, the method comprises: receiving a plurality of data, wherein the plurality of data comprise a first-type data and at least one second-type data, wherein a size of the first-type data is smaller than a data size threshold; temporarily storing the plurality of data into the buffer memory, and programming the first-type data and at least one part of the at least one second-type data temporarily stored in the buffer memory into a physical program unit set after the plurality of data are determined to be complied with a predetermined condition, wherein the physical program unit set has n physical program units and n is a positive integer; and obtaining writing statuses of the first-type data and the at least one part of the at least one second-type data at the same time.