System and method for improving wear-leveling performance in solid-state memory
First Claim
1. A method of performing wear leveling operations in a non-volatile solid-state storage subsystem that comprises blocks of memory, the method comprising:
- receiving a command that specifies an erase operation on a superblock of a plurality of superblocks in the storage subsystem, said superblock comprising a plurality of blocks, each block residing in a die of a plurality of dies in the storage subsystem and being capable of having a wear leveling operation being performed on the block independently of other blocks in said superblock;
incrementing a superblock erase counter associated with said superblock to reflect said erase operation on the superblock; and
using said superblock erase counter to control a timing with which wear leveling operations are performed on specific blocks in a die of said plurality of dies, the timing being determined by comparing said superblock erase counter to an interval threshold, the interval threshold being smaller than a threshold denoting a minimum frequency at which a wear leveling operation is to be performed on a block.
10 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the invention are directed to systems and methods for improving wear leveling performance in solid-state memory. The embodiments described herein make more consistent the number of wear leveling operations that need to be performed, so that sudden spikes in the number wear leveling operations may be reduced in solid-state memory. In one embodiment, a rule-based wear leveling approach is used to spread out the execution of wear leveling operations that otherwise would have been triggered in clusters. Under the rule-based approach, wear leveling is periodically triggered by a specified interval of erase counts associated with a unit of solid-state memory such as a group of blocks, rather than by a threshold based on erase counts.
-
Citations
23 Claims
-
1. A method of performing wear leveling operations in a non-volatile solid-state storage subsystem that comprises blocks of memory, the method comprising:
-
receiving a command that specifies an erase operation on a superblock of a plurality of superblocks in the storage subsystem, said superblock comprising a plurality of blocks, each block residing in a die of a plurality of dies in the storage subsystem and being capable of having a wear leveling operation being performed on the block independently of other blocks in said superblock; incrementing a superblock erase counter associated with said superblock to reflect said erase operation on the superblock; and using said superblock erase counter to control a timing with which wear leveling operations are performed on specific blocks in a die of said plurality of dies, the timing being determined by comparing said superblock erase counter to an interval threshold, the interval threshold being smaller than a threshold denoting a minimum frequency at which a wear leveling operation is to be performed on a block. - View Dependent Claims (2, 3)
-
-
4. A storage subsystem capable of regulating a maximum number of wear leveling operations triggered by an erase operation, the storage subsystem comprising:
-
a non-volatile memory storage array comprising a plurality of memory units, each memory unit including a plurality of memory sub-units, each memory sub-unit being a unit of memory on which a wear leveling operation is performed; and a controller configured to receive a plurality of erase commands associated with a set of memory sub-units, the set comprising at least one memory sub-unit from each of the plurality of memory units, wherein one or more of the plurality of erase commands is configured to cause the set of memory sub-units to be erased; wherein the controller is configured to determine whether to perform a wear leveling operation on a memory sub-unit within one of the plurality of memory units based at least on a relationship between (1) a number of erase commands performed on the set of memory sub-units, and (2) a wear level interval associated with the set of memory sub-units, the wear level interval being based on a number of memory sub-units in the set and a wear leveling threshold denoting a minimum frequency at which a wear leveling operation is to be performed on a memory sub-unit. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A storage subsystem, comprising:
-
a non-volatile memory storage array, the non-volatile memory storage array comprising a plurality of dies, each die including a plurality of blocks; and a controller configured to; receive an erase command associated with a set of blocks, the set of blocks comprising at least one block from each of the plurality of dies; and perform a wear leveling operation, the wear leveling operation being triggered by a condition and being directed to a die that is chosen with reference to a rotation associated with the plurality of dies, the rotation being advanced by the performance of the wear leveling operation, wherein the condition is based at least on a relationship between a number of erase commands associated with the set of blocks and a wear level interval threshold, the wear level interval threshold being smaller than a threshold denoting a minimum frequency at which the wear leveling operation is to be performed on a block. - View Dependent Claims (16, 17)
-
-
18. A method for regulating a maximum number of wear leveling operations triggered by an erase operation in a non-volatile storage subsystem comprising a plurality of memory units, each memory unit including a plurality of memory sub-units, each memory sub-unit being a unit of memory on which a wear leveling operation is performed, the method comprising:
-
receiving, at a controller of the non-volatile storage subsystem, a plurality of erase commands associated with a set of memory sub-units, the set of memory sub-units comprising at least one memory sub-unit from each of the plurality of memory units, each erase command being configured to cause the set of memory sub-units to be erased; and determining, by the controller, whether to perform a wear leveling operation on a memory sub-unit within one of the plurality of memory units based at least partially on a relationship between a number of erase commands performed on the set of memory sub-units and a wear level interval associated with the set of memory sub-units, the wear level interval being based on a number of memory sub-units in the set. - View Dependent Claims (19, 20, 21, 22, 23)
-
Specification