Extending useful life of a non-volatile memory by health grading
First Claim
1. A method in a data storage system including a non-volatile memory array controlled by a controller, the method comprising:
- for each region among a plurality of regions of physical memory in the memory array, the controller;
determining at least one error metric for the region based on read errors generated by host read requests targeting the region that are received by the data storage system from an external host system and recording the at least one error metric for the region;
determining, based on the at least one error metric for the region and based on a number of program/erase cycles for the region, an associated health grade among a plurality of health grades for the region and recording the associated health grade for the region;
the controller establishing a mapping between access heat and the plurality of health grades;
in response to a write request specifying an address, the controller selecting a selected region of physical memory to service the write request from a pool of available regions of physical memory based on an access heat of the address and the mapping; and
the controller writing data specified by the write request to the selected region of physical memory.
1 Assignment
0 Petitions
Accused Products
Abstract
In at least one embodiment, a controller of a non-volatile memory array determines, for each of a plurality of regions of physical memory in the memory array, an associated health grade among a plurality of health grades and records the associated health grade. The controller also establishes a mapping between access heat and the plurality of health grades. In response to a write request specifying an address, the controller selects a region of physical memory to service the write request from a pool of available regions of physical memory based on an access heat of the address and the mapping and writes data specified by the write request to the selected region of physical memory.
22 Citations
13 Claims
-
1. A method in a data storage system including a non-volatile memory array controlled by a controller, the method comprising:
-
for each region among a plurality of regions of physical memory in the memory array, the controller; determining at least one error metric for the region based on read errors generated by host read requests targeting the region that are received by the data storage system from an external host system and recording the at least one error metric for the region; determining, based on the at least one error metric for the region and based on a number of program/erase cycles for the region, an associated health grade among a plurality of health grades for the region and recording the associated health grade for the region; the controller establishing a mapping between access heat and the plurality of health grades; in response to a write request specifying an address, the controller selecting a selected region of physical memory to service the write request from a pool of available regions of physical memory based on an access heat of the address and the mapping; and the controller writing data specified by the write request to the selected region of physical memory. - View Dependent Claims (2, 3, 4)
-
-
5. A data storage system, comprising:
a controller configured to be coupled to a non-volatile memory array, wherein the controller determines for each region among a plurality of regions of physical memory in the memory array (1) at least one error metric for the region based on read errors generated by host read requests targeting the region that are received by the data storage system from an external host system and (2) an associated health grade among a plurality of health grades based on the at least one error metric for that region of physical memory and based on a number of program/erase cycles for that region, and records the at least one error metric and the associated health grade for each region, and wherein the controller establishes a mapping between access heat and the plurality of health grades and, in response to a write request specifying an address, selects a selected region of physical memory to service the write request from a pool of available regions of physical memory based on an access heat of the address and the mapping, and writes data specified by the write request to the selected region of physical memory. - View Dependent Claims (6, 7, 8, 9)
-
10. A program product, comprising:
-
a storage device; and program code stored in the storage device, wherein the program code, when executed by a controller that controls a non-volatile memory array of a data storage system, causes the controller to perform; for each region among a plurality of regions of physical memory in the memory array; determining at least one error metric for the region based on read errors generated by host read requests targeting the region that are received by the data storage system from an external host system and recording the at least one error metric for the region; determining, based on the at least one error metric for the region and based on a number of program/erase cycles for the region, an associated health grade among a plurality of health and recording the associated health grade for the region; establishing a mapping between access heat and the plurality of health grades; in response to a write request specifying an address, selecting a selected region of physical memory to service the write request from a pool of available regions of physical memory based on an access heat of the address and the mapping; and writing data specified by the write request to the selected region of physical memory. - View Dependent Claims (11, 12, 13)
-
Specification