Method of flash memory management
First Claim
1. A wear-leveling method for managing flash memory, said flash memory having a data region and a spare region, said spare region further storing a logical address and an enduring counter (EC) for a data block in said data region, said wear-leveling method using a translation table, and a wear-leveling algorithm comprising the following steps of:
- reconstructing said translation table when said flash memory is powered on;
determining whether an operation is a read operation or an erase/program operation;
proceeding to a read process if the operation is a read operation;
otherwise, proceeding to an erase/program process if the operation is an erase/program operation; and
waiting for a next operation and returning to said step of determining whether an operation is a read operation until no further operations;
wherein variables n, p, q, m, x, BaseEC, MaxEC and Reverse are defined and used in said wear-leveling algorithm according to the following definition and rules;
n being a number of data blocks in an access region;
p being a logical address space, and n>
p;
q being a pointer pointing to an unused block;
m being maximum difference in a number of erase/program operationsbetween data blocks allowable within said access region;
x being a number of bits in an enduring counter field in said translation table, and 2x>
2×
(m+n), m>
2×
n;
BaseEC being a minimum enduring counter value within said access region;
MaxEC being a maximum enduring counter value within said access region; and
Reverse being a Boolean variable indicating a condition of EC usage.
3 Assignments
0 Petitions
Accused Products
Abstract
A wear-leveling method for managing flash memory is provided, including an access process to consult a translation table when accessing a data block in the data region, and a reconstruction process to reconstruct the translation table when powering on the flash memory. The translation table is defined to include a plurality of entries, and each entry includes a physical address field and an enduring counter field. The logical address of a data block is used as input to map to the entry in the translation table. The access process, further including a read process and an erase/program process, maps the logical address to the physical address, and uses the enduring counter to determine whether an update is required to avoid the disturbance. The reconstruct process uses the information stored in the spare data region to reconstruct the translation table for the access process to consult during flash memory accesses.
17 Citations
4 Claims
-
1. A wear-leveling method for managing flash memory, said flash memory having a data region and a spare region, said spare region further storing a logical address and an enduring counter (EC) for a data block in said data region, said wear-leveling method using a translation table, and a wear-leveling algorithm comprising the following steps of:
-
reconstructing said translation table when said flash memory is powered on; determining whether an operation is a read operation or an erase/program operation; proceeding to a read process if the operation is a read operation;
otherwise, proceeding to an erase/program process if the operation is an erase/program operation; andwaiting for a next operation and returning to said step of determining whether an operation is a read operation until no further operations; wherein variables n, p, q, m, x, BaseEC, MaxEC and Reverse are defined and used in said wear-leveling algorithm according to the following definition and rules; n being a number of data blocks in an access region; p being a logical address space, and n>
p;q being a pointer pointing to an unused block; m being maximum difference in a number of erase/program operations between data blocks allowable within said access region; x being a number of bits in an enduring counter field in said translation table, and 2x>
2×
(m+n), m>
2×
n;BaseEC being a minimum enduring counter value within said access region; MaxEC being a maximum enduring counter value within said access region; and Reverse being a Boolean variable indicating a condition of EC usage. - View Dependent Claims (2, 3, 4)
-
Specification