Method and system for migrating data between 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;
detecting failure of a number of flash memory blocks for a respective flash memory device of the plurality of flash memory devices, wherein each flash memory block is the minimum size erasable unit of a respective flash memory device in the plurality of flash memory devices;
in accordance with a determination that the number of failed flash memory blocks satisfies a predefined threshold for the respective flash memory device, performing a migration process that includes;
selecting one of the plurality of logical chunks of the respective flash memory device for migration in accordance with predefined selection criteria;
storing a replicated logical chunk, comprising a copy of the selected logical chunk, at a second flash memory device different from the respective flash memory device;
remapping an address of the selected logical chunk to a physical location of the replicated logical chunk; and
decreasing a number of logical chunks associated with the respective flash memory device, resulting in a reduced, non-zero number of logical chunks associated with the respective flash memory device;
wherein, upon completion of the migration process, logical chunks of the plurality of logical chunks, other than the selected one, continue to be stored by the respective flash memory device.
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; and detecting a trigger condition with respect to a respective flash memory device of the plurality of flash memory devices. In response to detecting the trigger condition, the method includes: selecting one of the logical chunks of the respective flash memory device for migration in accordance with predefined selection criteria; and storing a replicated logical chunk, comprising a copy of the selected logical chunk, at a second flash memory device. The method includes: remapping an address of the selected logical chunk to a physical location of the replicated logical chunk; and decreasing a number of logical chunks associated with the respective flash memory device.
-
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; detecting failure of a number of flash memory blocks for a respective flash memory device of the plurality of flash memory devices, wherein each flash memory block is the minimum size erasable unit of a respective flash memory device in the plurality of flash memory devices; in accordance with a determination that the number of failed flash memory blocks satisfies a predefined threshold for the respective flash memory device, performing a migration process that includes; selecting one of the plurality of logical chunks of the respective flash memory device for migration in accordance with predefined selection criteria; storing a replicated logical chunk, comprising a copy of the selected logical chunk, at a second flash memory device different from the respective flash memory device; remapping an address of the selected logical chunk to a physical location of the replicated logical chunk; and decreasing a number of logical chunks associated with the respective flash memory device, resulting in a reduced, non-zero number of logical chunks associated with the respective flash memory device; wherein, upon completion of the migration process, logical chunks of the plurality of logical chunks, other than the selected one, continue to be stored by the respective flash memory device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
15. 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; and 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; detecting failure of a number of flash memory blocks for a respective flash memory device of the plurality of flash memory devices, wherein each flash memory block is the minimum size erasable unit of a respective flash memory device in the plurality of flash memory devices; in accordance with a determination that the number of failed flash memory blocks satisfies a predefined threshold for the respective flash memory device, performing a migration process that includes; selecting one of the plurality of logical chunks of the respective flash memory device for migration in accordance with predefined selection criteria; and storing a replicated logical chunk, comprising a copy of the selected logical chunk, at a second flash memory device different from the respective flash memory device; remapping an address of the selected logical chunk to a physical location of the replicated logical chunk; and decreasing a number of logical chunks associated with the respective flash memory device, resulting in a reduced, non-zero number of logical chunks associated with the respective flash memory device; wherein, upon completion of the migration process, logical chunks of the plurality of logical chunks, other than the selected one, continue to be stored by the respective flash memory device. - View Dependent Claims (16, 17, 18, 19)
-
-
20. 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; detect failure of a number of flash memory blocks for a respective flash memory device of the plurality of flash memory devices, wherein each flash memory block is the minimum size erasable unit of a respective flash memory device in the plurality of flash memory devices; in accordance with a determination that the number of failed flash memory blocks satisfies a predefined threshold for the respective flash memory device, performing a migration process that includes; selecting one of the plurality of logical chunks of the respective flash memory device for migration in accordance with predefined selection criteria; storing a replicated logical chunk, comprising a copy of the selected logical chunk, at a second flash memory device different from the respective flash memory device; remapping an address of the selected logical chunk to a physical location of the replicated logical chunk; and decreasing a number of logical chunks associated with the respective flash memory device, resulting a reduced, non-zero number of logical chunks associated with the respective flash memory device; wherein, upon completion of the migration process, logical chunks of the plurality of logical chunks, other than the selected one, continue to be stored by the respective flash memory device. - View Dependent Claims (21, 22, 23, 24)
-
Specification