IP Library Granted Patent US 10,049,037
Granted Patent B2
US 10,049,037 · App. 14/105,002 · Granted Aug 14, 2018

Data management in a storage system

Inventors: John Scaramuzzo (Pleasanton, CA); Bernardo Rub (Sudbury, MA); Robert W. Ellis (Phoenix, AZ); James Fitzpatrick (Sudbury, MA)
Assignee: SanDisk Enterprise IP LLC
G06F12/0246G06F2212/7208
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,049,037
App. No.
14/105,002
Granted
Aug 14, 2018
Kind
B2
Abstract

A storage system, and a method of data management in the storage system, with non-volatile memory device characteristics determined during an inspection of non-volatile memory devices before a runtime operation of a storage device in the storage system including: a controller in the storage system: a drive-level control unit configured for an update of operational capabilities based on the non-volatile memory device characteristics during the runtime operation of the storage device and for a group of the non-volatile memory devices based on the operational capabilities; and a memory control unit, coupled to the drive-level control unit, the memory control unit configured to receive the operational capabilities for control of the non-volatile memory devices.

Claims (57)

1. A method of data management in a data storage system comprising:

during runtime operation of the data storage system:

directing runtime operations for a first application to a first grouping of non-volatile memory devices, of a plurality of non-volatile memory devices in the data storage system;

directing runtime operations for a second application to a second grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system, wherein:

the second application is distinct from the first application and the second grouping is distinct from the first grouping,

groupings, including the first grouping and the second grouping, of the plurality of non-volatile memory devices are based on device characteristics of the plurality of non-volatile memory devices in the data storage system,

the device characteristics are indicated by information in a device characteristics table,

each of the groupings of the plurality of non-volatile memory devices in the data storage system corresponds to a respective class of a set of classes of non-volatile memory usage, wherein the set of classes includes at least two of write mostly accesses, read mostly accesses, large sequential accesses, and highly random accesses,

each of the plurality of non-volatile memory devices includes erase blocks that each have multiple pages, and

initial information in the device characteristics table is based on non-volatile memory device characteristics determined during an inspection of the plurality of non-volatile memory devices before the runtime operation of the data storage system;

updating the information in the device characteristics table to indicate updated device characteristics of respective individual non-volatile memory devices in the plurality of non-volatile memory devices determined during the runtime operation of the data storage system;

updating the groupings of the plurality of non-volatile memory devices in the data storage system based on the updated device characteristics indicated by the updated information in the device characteristics table; and

subsequent to updating the groupings, directing runtime operations for the first application to a first updated grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system, and directing runtime operations for the second application to a second updated grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system, wherein the second updated grouping is distinct from the second grouping and the first updated grouping.

2. The method as claimed in claim 1 , further comprising, before the runtime operation on the data storage system, grouping the plurality of non-volatile memory devices, including the first grouping and the second grouping, based on the device characteristics of the non-volatile memory devices indicated by the information in the device characteristics table,

wherein grouping the plurality of non-volatile memory devices includes grouping non-volatile memory devices that have substantially similar device characteristics.

3. The method as claimed in claim 1 , wherein:

updating the information in the device characteristics table to indicate updated device characteristics includes determining the average bit error rate for each of the non-volatile memory devices in the plurality of non-volatile memory devices, and

grouping, including the first grouping and the second grouping, the plurality of non-volatile memory devices into said groupings is based at least in part on the determined average bit error rates for the plurality of non-volatile memory devices.

4. The method as claimed in claim 1 , wherein grouping the plurality of non-volatile memory devices includes dynamically grouping the non-volatile memory devices based at least in part on one of erase time, write time, and latency.

5. A data storage system, comprising:

a plurality of non-volatile memory devices; and

a controller, having one or more processors and one or more modules, configured to, during runtime operation of the data storage system:

direct runtime operations for a first application to a first grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system;

direct runtime operations for a second application to a second grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system, wherein:

the second application is distinct from the first application and the second grouping is distinct from the first grouping,

groupings, including the first grouping and the second grouping, of the plurality of non-volatile memory devices are based on device characteristics of the plurality of non-volatile memory devices in the data storage system,

the device characteristics are indicated by information in a device characteristics table,

each of the groupings of the plurality of non-volatile memory devices in the data storage system corresponds to a respective class of a set of classes of non-volatile memory usage, wherein the set of classes includes at least two of write mostly accesses, read mostly accesses, large sequential accesses, and highly random accesses,

each of the non-volatile memory devices includes erase blocks that each have multiple pages, and

initial information in the device characteristics table is based on non-volatile memory device characteristics determined during an inspection of the plurality of non-volatile memory devices before the runtime operation of the data storage system;

update the information in the device characteristics table to indicate updated device characteristics of respective individual non-volatile memory devices in the plurality of non-volatile memory devices determined during the runtime operation of the data storage system;

update the groupings of the plurality of non-volatile memory devices in the data storage system based on the updated device characteristics indicated by the updated information in the device characteristics table; and

subsequent to updating the groupings, direct runtime operations for the first application to a first updated grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system, and directing runtime operations for the second application to a second updated grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system, wherein the second updated grouping is distinct from the second grouping and the first updated grouping.

6. The data storage system as claimed in claim 5 , further configured to, before the runtime operation on the data storage system, group the plurality of non-volatile memory devices, including the first grouping and the second grouping, based on the device characteristics of the non-volatile memory devices indicated by the information in the device characteristics table,

wherein grouping the plurality of non-volatile memory devices includes grouping non-volatile memory devices that have substantially similar device characteristics.

7. The data storage system as claimed in claim 5 , wherein:

updating the information in the device characteristics table to indicate updated device characteristics includes determining the average bit error rate for each of the non-volatile memory devices in the plurality of non-volatile memory devices, and

grouping, including the first grouping and the second grouping, the plurality of the non-volatile memory devices into said groupings is based at least in part on the determined average bit error rates for the plurality of non-volatile memory devices.

8. The data storage system as claimed in claim 5 , wherein grouping the plurality of non-volatile memory devices includes dynamically grouping the non-volatile memory devices based at least in part on one of erase time, write time, and latency.

9. A controller, for a data storage system having a plurality of non-volatile memory devices, the controller comprising one or more processors and one or more modules, configured to, during runtime operation of the data storage system:

direct runtime operations for a first application to a first grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system;

direct runtime operations for a second application to a second grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system, wherein:

the second application is distinct from the first application and the second grouping is distinct from the first grouping,

groupings, including the first grouping and the second grouping, of the plurality of non-volatile memory devices are based on device characteristics of the plurality of non-volatile memory devices in the data storage system,

the device characteristics are indicated by information in a device characteristics table,

each of the groupings of the plurality of non-volatile memory devices in the data storage system corresponds to a respective class of a set of classes of non-volatile memory usage, wherein the set of classes includes at least two of write mostly accesses, read mostly accesses, large sequential accesses, and highly random accesses,

each of the non-volatile memory devices includes erase blocks that each have multiple pages, and

initial information in the device characteristics table is based on non-volatile memory device characteristics determined during an inspection of the plurality of non-volatile memory devices before the runtime operation of the data storage system;

update the information in the device characteristics table to indicate updated device characteristics of respective individual non-volatile memory devices in the plurality of non-volatile memory devices determined during the runtime operation of the data storage system;

update the groupings of the plurality of non-volatile memory devices in the data storage system based on the updated device characteristics indicated by the updated information in the device characteristics table; and

subsequent to updating the groupings, direct runtime operations for the first application to a first updated grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system, and directing runtime operations for the second application to a second updated grouping of non-volatile memory devices, of the plurality of non-volatile memory devices in the data storage system, wherein the second updated grouping is distinct from the second grouping and the first updated grouping.

10. The controller as claimed in claim 9 , further comprising instructions causing the controller to group, before the runtime operation on the data storage system, the plurality of non-volatile memory devices, including the first grouping and the second grouping, based on the device characteristics of the non-volatile memory devices indicated by the information in the device characteristics table,

wherein grouping the plurality of non-volatile memory device includes grouping non-volatile memory device that have substantially similar device characteristics.

11. The controller as claimed in claim 9 , wherein:

updating the information in the device characteristics table to indicate updated device characteristics includes determining the average bit error rate for each of the non-volatile memory devices in the plurality of non-volatile memory devices, and

grouping, including the first grouping and the second grouping, the plurality of non-volatile memory devices into said groupings is based at least in part on the determined average bit error rates for the plurality of non-volatile memory devices.

12. The controller as claimed in claim 9 , wherein grouping the plurality of non-volatile memory devices includes dynamically grouping the non-volatile memory devices based at least in part on one of erase time, write time, and latency.

Assignments (6)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2016
From: SANDISK ENTERPRISE IP LLC
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 038295/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2013
From: SCARAMUZZO, JOHN; RUB, BERNARDO; ELLIS, ROBERT W.; FITZPATRICK, JAMES
To: SANDISK ENTERPRISE IP LLC
Reel/Frame 031776/0112 →
Continuity (2)
Provisional Application 61809253 · Apr 5, 2013
Related Publication 20140304455A1 · Oct 9, 2014