Patent ID: 8738847

Claim:
A data writing method for a rewritable non-volatile memory module, wherein the rewritable non-volatile memory module has a plurality of physical blocks, each of the physical blocks has a plurality of physical pages, the physical pages are grouped into a plurality of physical page pairs, each of the physical page pairs at least has a lower physical page and an upper physical page, a speed of writing data into the lower physical page is faster than a speed of writing the data into the upper physical page, and the data writing method comprises: receiving a write command and first data corresponding to the write command; writing the first data into a first physical page among the physical pages, wherein the first physical page belongs to a first physical page pair among the physical page pairs; determining whether the first physical page is the upper physical page of the first physical page pair before writing the first data into the first physical page; when the first physical page is the upper physical page of the first physical page pair, determining whether a backup area stores second data before writing the first data into the first physical page, wherein the second data has written into the lower physical page of the first physical page pair; when the backup area does not store the second data, reading the second data from the lower physical page of the first physical page pair and temporarily storing the second data into the backup area before writing the first data into the first physical page; when the first physical page is the upper physical page of the first physical page pair, determining whether the backup area stores third data before writing the first data into the first physical page, wherein the third data has written into another lower physical page among the physical pages, and the another lower physical page is adjacent to the lower physical page of the first physical page pair; and when the backup area does not store the third data, reading the third data from the another lower physical page and temporarily storing the read third data into the backup area before writing the first data into the first physical page.