1. A data writing method for controlling a rewritable non-volatile memory module, wherein the rewritable non-volatile memory module comprises a plurality of physical erasing units, each of the physical erasing units comprises a plurality of physical programming unit groups, each of the physical programming unit groups comprises a plurality of physical programming units, the physical programming units of each of the programming unit groups comprise a lower physical programming unit and a upper physical programming unit, wherein a programming speed of the lower physical programming units is faster than a programming speed of the upper physical programming units, and a plurality of logical addresses is mapped to a plurality of first physical erasing units of the physical erasing units, the data writing method comprising: receiving a first write command, which instructs writing data to at least one first logical address of the logical addresses, wherein the at least one first logical address is mapped to a second physical erasing unit in the first physical erasing units; determining whether the second physical erasing unit is in a sequential writing state which represents that the physical programming units over a predetermined ratio in the second physical erasing unit have been programmed sequentially within a predetermined time; and writing the data into a third physical erasing unit of the physical erasing units in a first programming mode if the second physical erasing unit is in the sequential writing state, wherein the first programming mode represents that the upper programming units are non-programmable.