Apparatus, systems, and methods for providing wear leveling in solid state devices
First Claim
1. A method comprising:
- receiving, at a memory controller in a storage system coupled to a host device via an interface, a request to remove data in any one of a plurality of memory blocks in the storage system;
selecting, by the memory controller, one of the memory blocks in the storage system;
determining, by the memory controller, a wear count associated with the selected memory block, wherein the wear count is indicative of a number of times the memory block has been erased;
when the wear count associated with the selected memory block is less than a threshold wear count, causing, by the memory controller, data to be removed from the selected memory block, andwhen the wear count associated with the selected memory block is not less than the threshold wear count, selecting, by the memory controller, another one of the memory blocks until the memory controller selects a memory block whose wear count is less than the threshold wear count.
5 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present disclosure provides a memory-efficient mechanism for identifying memory blocks with a low wear count. More particularly, embodiments of the present disclosure provides a mechanism for identifying a memory block whose wear count is within the bottom p % of all wear counts associated with memory blocks in a storage system. If a memory controller always performs the garbage collection operation on a memory block whose wear count is within the bottom p % of all wear counts, then the memory controller is expected to utilize the remaining memory blocks (e.g., memory blocks whose wear count is within the upper (100−p) % of all wear counts) efficiently and level the wear count of at least the remaining memory blocks.
12 Citations
20 Claims
-
1. A method comprising:
-
receiving, at a memory controller in a storage system coupled to a host device via an interface, a request to remove data in any one of a plurality of memory blocks in the storage system; selecting, by the memory controller, one of the memory blocks in the storage system; determining, by the memory controller, a wear count associated with the selected memory block, wherein the wear count is indicative of a number of times the memory block has been erased; when the wear count associated with the selected memory block is less than a threshold wear count, causing, by the memory controller, data to be removed from the selected memory block, and when the wear count associated with the selected memory block is not less than the threshold wear count, selecting, by the memory controller, another one of the memory blocks until the memory controller selects a memory block whose wear count is less than the threshold wear count. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A storage system comprising:
-
one or more storage devices comprising a plurality of memory blocks for maintaining data; and a memory controller configured to process a request to remove data in any one of memory blocks in the storage system, wherein the memory controller is further configured to; select one of the memory blocks in the storage system; determine a wear count associated with the selected memory block, wherein the wear count is indicative of a number of times the memory block has been erased; when the wear count associated with the selected memory block is less than a threshold wear count, cause data to be removed from the selected memory block, and when the wear count associated with the selected memory block is not less than the threshold wear count, select another one of the memory blocks until the memory controller selects a memory block whose wear count is less than the threshold wear count. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer readable medium having executable instructions operable to cause a memory controller in a storage system to:
-
receive a request to remove data in any one of a plurality of memory blocks in the storage system; select one of the memory blocks in the storage system; determine a wear count associated with the selected memory block, wherein the wear count is indicative of a number of times the memory block has been erased; when the wear count associated with the selected memory block is less than a threshold wear count, cause data to be removed from the selected memory block, and when the wear count associated with the selected memory block is not less than the threshold wear count, select another one of the memory blocks until the memory controller selects a memory block whose wear count is less than the threshold wear count. - View Dependent Claims (18, 19, 20)
-
Specification