Patent ID: 9430325
Filing Date: 2016-08-30
CPC Classification: G06F

Claim Text:
1. A method for programming data, for controlling a rewritable non-volatile memory module, wherein the rewritable non-volatile memory module comprises a plurality of physical erasing units, and each of the physical erasing units comprises a plurality of physical programming units, the method comprising: determining a bit error rate (BER) assessing value of a first physical erasing unit among the physical erasing units according to at least one of erasing count information, writing count information, reading count information, data storage time information and temperature information of the first physical erasing unit; receiving a writing command which instructs to write data into at least one of a plurality of logical units, wherein the at least one of the logical units is mapped to a first physical programming unit among the physical programming units, and the first physical programming unit belongs to the first physical erasing unit; determining whether the first physical erasing unit belongs to a first type physical erasing unit or a second type physical erasing unit according to the determined BER assessing value; if the first physical erasing unit belongs to the first type physical erasing unit, programming the data and a parity code corresponding to the data into the first physical programming unit according to a first code rate; and if the first physical erasing unit belongs to the second type physical erasing unit, programming the data and the parity code corresponding to the data into the first physical programming unit according to a second code rate, wherein the first code rate is higher than the second code rate, the step of programming the data and the parity code according to the second code rate comprises: