New Paragraph

Paragraphs

Actions Matter Content Para # Notes Modified
View Edit
Delete
US-8380915-A1 In one embodiment, the solid-state storage controller 104 may read data in a data packet from multiple channels, storage elements, dies, chips, physical erase blocks (“PEBs”), groupings of storage cells, or the like within the solid-state storage media 110, each of which may have independent read voltage thresholds. The manufacturer of the channels, storage elements, dies, chips, and/or grouping of storage cells may make the read voltage thresholds for each channel, storage element, die, chip, and/or grouping of storage cells independently adjustable by the solid-state storage controller 104. Alternatively, or in addition, the manufacturer of the channels, storage elements, dies, chips, and/or grouping of storage cells may make the read voltage thresholds for groups of channels, groups of storage elements, groups of die, groups of chips, and/or groups of groupings of storage cells adjustable by the solid-state storage controller 104 as separate groups. 157 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The configuration module 352, in one embodiment, may monitor the read bias of each packet read and compare the bias of the packet or other data set to the known bias in response to a read request. In a further embodiment, the configuration module 352 may monitor the read bias of each packet read and may compare the bias of the data set or packet to the known bias in response to a data error, such as, for example, an uncorrectable bit error that the ECC decoder 322 cannot correct, or the like. In a further embodiment, the configuration module 352 may not monitor the read bias of each packet read and may determine and compare the bias of the data set or packet to the known bias exclusively in response to a data error. As described below with regard to the proactive configuration module 424 of FIGS. 4 and 5, in certain embodiments, the configuration module 352 sets or adjusts a read voltage threshold or other configuration parameter proactively, based on storage media characteristics instead of, or in addition to, adjustments based on read data sets or packets. 156 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The configuration module 352, in one embodiment, may request that the data set be re-read with the new read voltage threshold. The configuration module 352 may determine whether the re-read data set has a read bias that deviates from the known bias, and may iteratively adjust the read voltage threshold to a new read voltage threshold until the read bias of the data set no longer deviates from the known bias more than a threshold amount (which may be zero), until the ECC decoder 322 can correct errors in the data set, or the like. In one embodiment, the configuration module 352 stores the new read voltage threshold such that the new read voltage threshold is persistent for subsequent data reads from the solid-state storage media 110. In a further embodiment, the solid-state storage media 110 stores the new read voltage threshold for subsequent data reads. 155 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The configuration module 352, in one embodiment, determines that a read bias for the data set or packet deviates from the known bias, and determines a direction of deviation for the data set based on a difference between the read bias and the known bias. In a further embodiment, the configuration module 352 adjusts the read voltage threshold, or another read threshold such as a resistivity threshold, for storage cells corresponding to the data set based on the direction of deviation. For example, in one embodiment, the configuration module 352 may lower the read voltage threshold from the previous read voltage threshold to a new read voltage threshold for the storage cells if the data set has more binary zeroes than expected based on the known bias. For MLC storage cells, in one embodiment, a data set may include data from different addresses, different pages, or the like so that the data set includes all data that the associated storage cells store. The configuration module 352 may base a read voltage threshold adjustment on known characteristics of the storage cells, such as an encoding type used for the storage cells, based on a physical and/or electrical architecture of the storage cells, or the like. In a further embodiment, the configuration module 352 may transform, translate, or combine data from different addresses or pages to facilitate a determination of a known bias, a read bias, and/or a deviation from a known bias for MLC storage cells. In another embodiment, for MLC storage cells, the configuration module 352 may adjust a read voltage threshold for the MLC storage cells based on a subset of the data stored by the MLC storage cells. 154 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In another embodiment, the read data pipeline 108 includes a read program module 338 that includes one or more user-definable functions within the read data pipeline 108. The read program module 338 has similar characteristics to the write program module 310 and allows a user to provide custom functions to the read data pipeline 108. The read program module 338 may be located as shown in FIG. 3A, may be located in another position within the read data pipeline 108, or may include multiple parts in multiple locations within the read data pipeline 108. Additionally, there may be multiple read program modules 338 within multiple locations within the read data pipeline 108 that operate independently. One of skill in the art will recognize other forms of a read program module 338 within a read data pipeline 108. As with the write data pipeline 106, the stages of the read data pipeline 108 may be rearranged and one of skill in the art will recognize other orders of stages within the read data pipeline 108. 163 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The configuration module 352, in one embodiment, uses a known bias of the data set or packet from the solid-state storage media 110 to adjust the read voltage threshold or other configuration parameter. As described above with regard to the bias module 318, a bias is a preference, probability, tendency, or desirability of values for bits within a set of bits to exhibit a specific data pattern. A bias may be a natural property, a designed attribute, a property of performing an operation on storage media, or a random occurrence. A bias may be toward binary ones, toward binary zeroes, toward a balance of binary ones and zeroes, toward a certain binary value for certain bits, toward a specific ratio of binary ones and binary zeroes, toward a binary pattern, or the like. 152 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The read voltage levels of storage cells, and other configuration parameters, can also shift over time, due to leakage and other disturbances of the solid-state storage media 110. The rate of leakage can also increase with the wear and age of the solid-state storage media 110. If the read voltage level of a storage cell shifts past the read voltage threshold, a data error occurs, as the value of the data read from the storage cell is different than the value of the data written to the storage cell. The configuration module 352, in one embodiment, adjusts a read voltage threshold or other configuration parameter for one or more storage cells from the solid-state storage media 110 to compensate for shifts in the read voltage levels of the storage cells. By proactively and/or dynamically adjusting read voltage thresholds, the configuration module 352 can increase the retention rate for and/or the reliability of data stored in the solid-state storage media 110 and extend the useable lifetime of the solid-state storage media 110 itself, improving the utility of the solid-state storage media 110. 151 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In certain embodiments, instead of referring to a boundary between discrete values, a read voltage threshold comprises a range of voltages (a maximum and a minimum) that indicate a value. A voltage threshold that is a range can be adjusted by changing the boundary at either end, or at both ends, of the range. The read voltage thresholds or other configuration parameters for the solid-state storage media 110, in one embodiment, are initially set at a default level that may be defined by a manufacturer. Often such configuration parameter default levels are set to accommodate a large range of general purpose uses of the solid-state storage media 110. Advantageously, embodiments of the configuration module 352 allow the solid-state storage media 110 to be used most optimally based on more specific use characteristics. The configuration module 352, in certain embodiments, overrides the default level for one or more configuration parameters, setting the one or more configuration parameters to a different level based on storage media characteristics of the solid-state storage media 110. The configuration module 352 may set the configuration parameters to a level that decreases the amount of errors that the solid-state storage media 110 encounters when compared to the default level, to a level that increases the amount of errors that may be detected and corrected when compared to the default level, to a level that increases the number of input/output operations per second (“TOPS”) of the solid-state storage media 110 when compared to the default level, to a level that increases the usable life of the solid-state storage media 110 when compared to the default level, and/or that otherwise improves the utility of the solid-state storage media 110 when compared to the default level. 150 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The voltages for Vmin, Vmax, x, y, z may vary based on the manufacturer of the storage cells. Read voltages, for example, may range between −3.5 and 5.8 volts, or between another predefined range of voltages. Similarly, the order of binary state changes 11, 01, 00, and 10 relative to read voltage thresholds may vary based on the encoding type used, such as a Gray code encoding type, a binary code encoding type, or the like. One example encoding type is described below with regard to FIG. 6C. As described in greater detail with regard to FIG. 6C, although a single MLC storage cell stores multiple bits, bits from a single storage cell may not have adjacent addresses, and may be included in different physical pages, logical pages, or the like. 149 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 For example, in one embodiment, MLC storage cells that store two bits may have three read voltage thresholds, separating binary values of 11, 01, 00, and 10. The three example read voltage thresholds may be x volts, y volts, and z volts, described in greater detail below with regard to the read voltage thresholds 662 of FIG. 6C. If the voltage read from a storage cell falls between Vmin and x volts, a binary 11 state is indicated. In certain embodiments, Vmin may be a negative voltage. If the voltage read from a storage cell falls between x volts and y volts, a binary 01 state is indicated. If the voltage read from a storage cell falls between y volts and z volts, a binary 00 state is indicated. If the voltage read from a storage cell falls between z volts and Vmax volts, a binary 10 state is indicated. 148 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 For SLC storage cells that store a single binary value, the read voltage threshold is the boundary between a binary one state and a binary zero state. For example, in one embodiment, a storage cell with a read voltage level above the read voltage threshold stores a binary one while a storage cell with a read voltage level below the read voltage threshold stores a binary zero. Other types of storage cells, such as MLC storage cells, may have multiple read voltage thresholds, to distinguish between more than two discrete states. 147 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In general, the configuration module 352 sets and adjusts one or more configuration parameters for one or more storage cells from the solid-state storage media 110, such as setting and adjusting read voltage thresholds, resistivity thresholds, programming thresholds, erase thresholds, or the like. A read voltage threshold is a voltage level that separates discrete values stored in the storage cells of the solid-state storage media 110. Different solid-state storage technologies may use different thresholds other than voltages to distinguish between discrete states. Phase change RAM or PRAM, for example, stores data in chalcogenide glass that has different electrical resistivity in different states. For PRAM, the configuration module 352 may determine, set, and/or adjust resistivity thresholds that distinguish between discrete storage states. One of skill in the art, in light of this disclosure, will recognize that the configuration module 352 may determine, set, and adjust resistivity thresholds or other configuration parameters in a substantially similar manner to that described herein with regard to read voltage thresholds. 146 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In other embodiments, the configuration module 352 may receive a data set from the solid-state storage media 110, either directly or indirectly, to determine configuration parameters for corresponding storage cells in a closed loop manner, with read data sets as feedback from the storage cells. In certain embodiments, the configuration module 352 may receive one or more requested biased packets from the ECC decoder 322. In a further embodiment, the configuration module 352 may receive a data set from the read synchronization buffer 328, directly from the storage I/O bus 210, from the inverse bias module 332, or otherwise. The configuration module 352 is described in greater detail with regard to FIG. 4. Another embodiment, where the configuration module 352 receives input from both the ECC decoder 322 and the inverse bias module 332 is described below with regard to FIG. 3B. 145 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 For example, where the bias module 318 biases data toward a balance of one half binary ones and one half binary zeroes, which may also be referred to as a direct current (“DC”) balance, a range of actual biases for biased data may range between about forty-six percent binary ones and fifty-four percent binary ones, or the like. The known bias and the read bias of the data set, in other embodiments, may also be based on multi-bit symbols or patterns of bits instead of being based exclusively on individual binary ones and zeroes, or the like. While the inverse bias module 332, in the depicted embodiment 301, provides input to the configuration module 352, in certain embodiments, the bias module 318 may provide an expected bias to the configuration module 352 as a known bias, the known bias may be hard coded or programmed into the configuration module 352, or the like. 172 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In one embodiment, the configuration module 352 bases a configuration parameter adjustment 358 on a best available input according to a predefined hierarchy or ranking of inputs. For example, the configuration module 352 may base a configuration parameter adjustment 358 on a known bias and error bias from the ECC decoder 322 if available; on a known, expected bias and a read bias from the inverse bias module 332 if input from the ECC decoder 322 is not available; and on one or more statistics from the device factor module 354 if input from both the ECC decoder 322 and the inverse bias module 332 is unavailable. 180 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The configuration module 352, in various embodiments, may base a configuration parameter adjustment 358 on a single input or on a combination of inputs from the inverse bias module 332, the ECC decoder 322, and/or the device factor module 354. In certain embodiments, one or more inputs from the inverse bias module 332, the ECC decoder 322, and/or the device factor module 354 may not be available for a data set. For example, the ECC decoder 322 may not provide an error bias and a known bias for a data set with an uncorrectable bit error, the inverse bias module 332 may not provide a known, expected bias or a read bias for a data set during a learning period while the inverse bias module 332 is determining an expected bias, the device factor module 354 may not provide one or more statistics during an initial startup period, or the like. 179 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In the depicted embodiment 301, the device factor module 354 receives input from one or more sensors 356. The one or more sensors 356 each detect a statistic or characteristic for the solid-state storage device 102, such as temperature, moisture, movement, and/or other statistics. For example, in various embodiments, the one or more sensors 356 may include a temperature sensor, a moisture sensor, an accelerometer, and/or another type of sensor for the solid-state storage device 102. In one embodiment, the device factor module 354 and/or the configuration module 352 may receive one or more statistics for the solid-state storage device 102 from one or more other modules or elements. For example, the device factor module 354 and/or the configuration module 352 may receive an error rate for the solid-state storage device 102, such as a UBER or the like, from the ECC decoder 322. 178 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The device factor module 354, in one embodiment, provides one or more statistics for the solid-state storage device 102 to the configuration module 352. The configuration module 352, in certain embodiments, may make a configuration parameter adjustment 358 based on the one or more statistics, may supplement information from the inverse bias module 332 and/or the ECC decoder 322 with the one or more statistics, or the like. The one or more statistics for the solid-state storage device 102, in one embodiment, include statistics that may affect read voltages of storage cells of the solid-state storage device 102. For example, in certain embodiments, the one or more statistics may include a temperature for the solid-state storage device 102, an error rate for the solid-state storage device 102 (such as an uncorrectable bit error rate “UBER” or the like), an erase cycle count for the solid-state storage device 102, a storage request latency for the solid-state storage device 102 (such as an average, maximum, or other storage request execution latency), an age of the solid-state storage device 102, and/or other statistics or characteristics. 177 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The configuration module 352, in one embodiment, uses a known bias and/or an error bias for a data set from the ECC decoder 322 in response to one or more correctable bit errors in the data set. In a further embodiment, the configuration module 352 uses an expected bias that is based on a reversible biasing algorithm as a known bias. In certain embodiments, the expected bias is used as the known bias in response to one or more uncorrectable bit errors in the data set. An error bias from the ECC decoder 322 may not be available to the configuration module 352 for uncorrectable bit errors because the uncorrectable bit error condition makes the bias undefined. For uncorrectable bit errors in a data set, in certain embodiments, the read bias of the data set may deviate from the known, expected bias for the data set more than for correctable bit errors, because of the greater severity of the errors. Due to the greater magnitude of deviation of the read bias of a data set from the known, expected bias of the data set for uncorrectable bit errors, the bias information from the inverse bias module 332 may provide a better indicator of a direction for a configuration parameter adjustment 358 for uncorrectable bit errors than for correctable bit errors. 176 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 Because the ECC decoder 322, for correctable errors, determines the exact, original, correct values of bits (known bias) of a data set and an exact location of bits in error (error bias) of the data set the configuration module 352 can determine an exact deviation of the data set from the known bias. For this reason, in certain embodiments, the configuration module 352 may make more precise configuration parameter adjustments 358 using a known bias and an error bias from the ECC decoder 322, when available, than using an expected bias and a read bias from the inverse bias module 332. 175 Added by DJM 3 2021 3/12/21, 12:00 AM

Page 384 of 438, showing 20 record(s) out of 8,747 total