Erase count differential table within a non-volatile memory system
First Claim
1. A method for maintaining a data structure associated with a non-volatile memory system, the data structure being arranged to store contents relating to usage of a plurality of physical blocks included in the non-volatile memory system, the method comprising:
- determining when it is appropriate to update the contents stored in the data structure;
obtaining at least a first differential erase count from the data structure when it is determined that it is appropriate to update the contents stored in the data structure, the first differential erase count being a plurality of bits arranged to provide information relating to a number of times a first physical block of the plurality of physical blocks has been erased;
determining a first actual erase count when it is determined that it is appropriate to update the contents stored in the data structure, the first actual erase count being associated with a second physical block of the plurality of physical blocks, wherein the first actual erase count is a plurality of bits arranged to provide a number of times the second physical block has been erased; and
updating the first differential erase count when it is determined that it is appropriate to update the contents stored in the data structure, wherein updating the first differential erase count includes using the first actual erase count.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for efficiently tracking the usage of physical blocks of non-volatile memory are disclosed. According to one aspect of the present invention, a method for maintaining a data structure that stores contents relating to the usage of physical blocks includes determining when to update the contents stored in the data structure, and obtaining a first differential erase count from the data structure when the contents are to be updated. The first differential erase count provides information on a number of times a first physical block has been erased. The method also includes determining a first actual erase count when the contents are to be updated. The first actual erase count is associated with a second physical block, and provides a number of times the second physical block has been erased. Finally, the method includes updating the first differential erase count when the contents are to be updated.
-
Citations
34 Claims
-
1. A method for maintaining a data structure associated with a non-volatile memory system, the data structure being arranged to store contents relating to usage of a plurality of physical blocks included in the non-volatile memory system, the method comprising:
-
determining when it is appropriate to update the contents stored in the data structure; obtaining at least a first differential erase count from the data structure when it is determined that it is appropriate to update the contents stored in the data structure, the first differential erase count being a plurality of bits arranged to provide information relating to a number of times a first physical block of the plurality of physical blocks has been erased; determining a first actual erase count when it is determined that it is appropriate to update the contents stored in the data structure, the first actual erase count being associated with a second physical block of the plurality of physical blocks, wherein the first actual erase count is a plurality of bits arranged to provide a number of times the second physical block has been erased; and updating the first differential erase count when it is determined that it is appropriate to update the contents stored in the data structure, wherein updating the first differential erase count includes using the first actual erase count. - View Dependent Claims (2, 3, 4, 5, 6, 7, 12, 13)
-
-
8. A memory system comprising:
-
a non-volatile memory, the non-volatile memory including a plurality of physical blocks and a data structure, the data structure being arranged to store contents relating to usage of the plurality of physical blocks; means for determining when it is appropriate to update the contents stored in the data structure; means for obtaining at least a first differential erase count from the data structure when it is determined that it is appropriate to update the contents stored in the data structure, the first differential erase count being a plurality of bits arranged to provide information relating to a number of times a first physical block of the plurality of physical blocks has been erased; means for determining a first actual erase count when it is determined that it is appropriate to update the contents stored in the data structure, the first actual erase count being associated with a second physical block of the plurality of physical blocks, wherein the first actual erase count is a plurality of bits arranged to provide a number of times the second physical block has been erased; and means for updating the first differential erase count when it is determined that it is appropriate to update the contents stored in the data structure, wherein the means for updating the first differential erase count include means for using the first actual erase count. - View Dependent Claims (9, 10, 11, 14, 15)
-
-
16. A memory system comprising:
-
a non-volatile memory, the non-volatile memory including a plurality of physical blocks and a data structure, the data structure being arranged to store contents relating to usage of the plurality of physical blocks; code devices that cause a determination of when it is appropriate to update the contents stored in the data structure; code devices that cause at least a first differential erase count to be obtained from the data structure when it is determined that it is appropriate to update the contents stored in the data structure, the first differential erase count being a plurality of bits arranged to provide information relating to a number of times a first physical block of the plurality of physical blocks has been erased; code devices that cause a determination of a first actual erase count when it is determined that it is appropriate to update the contents stored in the data structure, the first actual erase count being associated with a second physical block of the plurality of physical blocks, wherein the first actual erase count is a plurality of bits arranged to provide a number of times the second physical block has been erased; code devices that cause the first differential erase count to be updated when it is determined that it is appropriate to update the contents stored in the data structure, wherein the means for updating the first differential erase count include means for using the first actual erase count; and a computer readable medium that stores the code devices. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
-
-
24. A method for tracking the life remaining for a first physical block, the first physical block being one of a plurality of physical blocks included in a non-volatile memory system, the method comprising:
-
obtaining a differential erase count associated with the first physical block, the differential erase count being arranged to substantially express a difference between a number of times the first physical block has been erased and a first value; incrementing the differential erase count; and storing the differential erase count. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A system comprising:
-
a non-volatile memory, the non-volatile memory including a plurality of physical blocks, the plurality of physical blocks including a first physical block; code devices for obtaining a differential erase count associated with the first physical block, the differential erase count being arranged to substantially express a difference between a number of times the first physical block has been erased and a first value; code devices for incrementing the differential erase count; code devices for storing the differential erase count; and a medium that stores the code devices. - View Dependent Claims (30, 31, 32, 33, 34)
-
Specification