Storage subsystem capable of adjusting ECC settings based on monitored conditions
First Claim
Patent Images
1. A storage subsystem, comprising:
- non-volatile storage;
a controller connected to the non-volatile storage and configured to write data to and read data from the non-volatile storage in response to instructions and data received from a host system; and
an error correction module configured to generate a quantity of error correction code (ECC) data corresponding to data that is to be written to the non-volatile storage;
wherein the controller selects the quantity of ECC data to be generated based at least in part on one or more monitored operating conditions of the storage subsystem; and
wherein the quantity of ECC data selected by the controller is generally proportional to a probability of data errors as determined at least in part by the one or more monitored operating conditions.
10 Assignments
0 Petitions
Accused Products
Abstract
A storage subsystem monitors one or more conditions related to the probability of a data error occurring. Based on the monitored condition or conditions, the storage subsystem adjusts an error correction setting, and thus the quantity of ECC data used to protect data received from a host system. To enable blocks of data to be properly checked when read from memory, the storage subsystem stores ECC metadata indicating the particular error correction setting used to store particular blocks of data. The storage subsystem may be in the form of a solid-state non-volatile memory card or drive that attaches to the host system.
204 Citations
16 Claims
-
1. A storage subsystem, comprising:
-
non-volatile storage; a controller connected to the non-volatile storage and configured to write data to and read data from the non-volatile storage in response to instructions and data received from a host system; and an error correction module configured to generate a quantity of error correction code (ECC) data corresponding to data that is to be written to the non-volatile storage; wherein the controller selects the quantity of ECC data to be generated based at least in part on one or more monitored operating conditions of the storage subsystem; and wherein the quantity of ECC data selected by the controller is generally proportional to a probability of data errors as determined at least in part by the one or more monitored operating conditions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method performed by a controller in a storage subsystem that comprises a non-volatile memory comprising a user data area that is accessible by a host system, the controller connected to the non-volatile memory and configured to receive instructions from the host system and to read data from and write data to the non-volatile memory according to the instructions, the method comprising:
-
receiving from the host system an instruction to write a block of data to the non-volatile memory; determining a quantity of ECC data to be generated for the block of data based at least in part on monitor data indicating one or more monitored operating conditions of the storage subsystem that are associated with a probability of a data error, wherein the determined quantity of ECC data to be generated is generally proportional to a probability of a data error as determined at least in part by the monitor data; generating the determined quantity of ECC data, the generated ECC data corresponding to the block of data; storing the generated ECC data and data indicative of the determined quantity of ECC data; and in response to receiving from the host system an instruction to read data stored in the non-volatile memory, accessing the stored ECC data and data indicative of the quantity of ECC data to detect data errors in data stored in the non-volatile memory. - View Dependent Claims (13, 14, 15, 16)
-
Specification