Method and System for Rebalancing Data Stored in Flash Memory Devices
First Claim
1. A method of managing a storage system that comprises a storage controller and a plurality of flash memory devices, each with a plurality of flash memory blocks, the method comprising:
- at the storage controller;
dividing each of the plurality of flash memory devices into a plurality of logical chunks, wherein each logical chunk includes one or more flash memory blocks;
assigning a weight to each of the plurality of flash memory devices for a distribution algorithm, wherein the weight is based on at least a number of available logical chunks;
storing data in the plurality of logical chunks of the plurality of flash memory devices in accordance with the distribution algorithm;
detecting a predefined trigger condition with respect to a respective flash memory device of the plurality of flash memory devices; and
in response to detecting the predefined trigger condition;
decreasing the weight corresponding to the respective flash memory device;
updating the distribution algorithm to reflect the decreased weight of the respective flash memory device; and
rebalancing data stored in the plurality of flash memory devices in accordance with the updated distribution algorithm.
2 Assignments
0 Petitions
Accused Products
Abstract
The embodiments described herein include systems, methods and/or devices that may enhance the endurance of a storage system including a storage medium. The method includes: dividing a plurality of flash memory devices into logical chunks each logical chunk including one or more flash memory blocks; assigning a weight to each of the flash memory devices for a distribution algorithm, where the weight is based on at least a number of available logical chunks; and storing data in the logical chunks in accordance with the distribution algorithm. The method includes detecting a trigger condition for a respective flash memory device. In response to detecting the trigger condition, the method includes: decreasing the weight of the respective flash memory device; updating the distribution algorithm to reflect the decreased weight of the respective flash memory device; and rebalancing data stored in the plurality of flash memory devices in accordance with the updated distribution algorithm.
41 Citations
24 Claims
-
1. A method of managing a storage system that comprises a storage controller and a plurality of flash memory devices, each with a plurality of flash memory blocks, the method comprising:
at the storage controller; dividing each of the plurality of flash memory devices into a plurality of logical chunks, wherein each logical chunk includes one or more flash memory blocks; assigning a weight to each of the plurality of flash memory devices for a distribution algorithm, wherein the weight is based on at least a number of available logical chunks; storing data in the plurality of logical chunks of the plurality of flash memory devices in accordance with the distribution algorithm; detecting a predefined trigger condition with respect to a respective flash memory device of the plurality of flash memory devices; and in response to detecting the predefined trigger condition; decreasing the weight corresponding to the respective flash memory device; updating the distribution algorithm to reflect the decreased weight of the respective flash memory device; and rebalancing data stored in the plurality of flash memory devices in accordance with the updated distribution algorithm. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
13. A storage controller, comprising:
-
one or more processors; a host interface configured to couple the storage controller to a host; a storage medium interface configured to couple the storage controller to a storage medium including a plurality of flash memory devices, each with a plurality of flash memory blocks; a storage controller memory storing instructions, which, when executed by the one or more processors, causes the storage controller to perform operations comprising; dividing each of the plurality of flash memory devices into a plurality of logical chunks, wherein each logical chunk includes one or more flash memory blocks; assigning a weight to each of the plurality of flash memory devices for a distribution algorithm, wherein the weight is based on at least a number of available logical chunks; storing data in the plurality of logical chunks of the plurality of flash memory devices in accordance with the distribution algorithm; detecting a predefined trigger condition with respect to a respective flash memory device of the plurality of flash memory devices; and in response to detecting the predefined trigger condition; decreasing the weight corresponding to the respective flash memory device; updating the distribution algorithm to reflect the decreased weight of the respective flash memory device; and rebalancing data stored in the plurality of flash memory devices in accordance with the updated distribution algorithm. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A non-transitory computer readable storage medium, storing one or more programs for execution by one or more processors of a storage controller coupled to a storage medium including a plurality of flash memory devices, wherein each flash memory device includes a plurality of flash memory blocks, the one or more programs including instructions that when executed by the one or more processors cause the storage controller to:
-
divide each of the plurality of flash memory devices into a plurality of logical chunks, wherein each logical chunk includes one or more flash memory blocks; assign a weight to each of the plurality of flash memory devices for a distribution algorithm, wherein the weight is based on at least a number of available logical chunks; store data in the plurality of logical chunks of the plurality of flash memory devices in accordance with the distribution algorithm; detect a predefined trigger condition with respect to a respective flash memory device of the plurality of flash memory devices; and in response to detecting the predefined trigger condition; decrease the weight corresponding to the respective flash memory device; update the distribution algorithm to reflect the decreased weight of the respective flash memory device; and rebalance data stored in the plurality of flash memory devices in accordance with the updated distribution algorithm. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification