New Paragraph

Paragraphs

Actions Matter Content Para # Notes Modified
View Edit
Delete
US-8380915-A1 In one embodiment, the difference between the read bias of the data set and the known bias may be a difference in the ratios of binary ones and binary zeroes. In other embodiments, the difference between the bias of the data set and the known bias may be a difference in a binary pattern, a difference in multi-bit binary symbols, or the like. As described above with regard to FIG. 3B, in various embodiments, the deviation module 404 may receive an original, known bias and/or a read bias for a data set from the ECC decoder 322, from the inverse bias module 332, or the like. 197 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In one embodiment, the deviation module 404 determines that a read bias for a data set deviates from a known bias with which the data set was originally stored. The read bias of the data set deviates from the known bias when there is a difference between the read bias and the known bias. In one embodiment, where the known bias is exact, such as where the known bias includes error corrected bit values or where the bias module 318 biases to an exact bias, the deviation module 404 may determine that any difference between a read bias and the known bias comprises a deviation from the known bias. In other embodiments, the known bias may include an average bias, an estimated bias, a distribution of biases, a range of biases, or the like. The deviation module 404, in these embodiments, may determine that a read bias outside of a range or distribution of known biases, at least a predefined deviation threshold away from a known bias, or the like deviates from the known bias. 196 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 For example, if a user application requests 512 bytes of data, and the solid-state storage media 110 can read 800 bytes of data in a read request at substantially the same speed as 512 bytes of data, in one embodiment, the data set read module 402 may read a data set of 800 bytes for adjusting a read voltage threshold, and provide the requested 512 bytes (a subset of the 800 byte data set) to the user application without affecting the read time of the operation. In one embodiment, the data set read module 402 sets a minimum data set request size and retrieves at least the minimum data set request size amount of data for each read request, even if the read request is for less than the minimum data set request size. The minimum data set request size, in certain embodiments, may be selected to fit within a boundary of one or more ECC chunks, one or more pages, one or more erase blocks, within excess bandwidth of the solid-state storage media 110, or the like. In one embodiment, the minimum data set request size may be selected based on an architecture or geometry of the solid-state storage media 110, the read data pipeline 108, or the like. 195 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In certain embodiments, the data set read module 402, when reading a data set of sample data in response to a testing operation, periodically, during monitoring, or the like, may size the sample data set to fit within excess read bandwidth of the solid-state storage media 110. By sizing sample data to fit within excess read bandwidth of the solid-state storage media 110, in one embodiment, reading the sample data may not affect a read bandwidth for servicing read requests to the solid-state storage media 110 or a read throughput of the solid-state storage media 110. In one embodiment, the data set read module 402 may read a data set from the solid-state storage media 110 with a greater amount of data than is requested by a read request to provide a greater sample size of bits for the configuration module 352 to use to determine an adjustment to a read voltage threshold, or the like. A sample size that is greater than an amount of data requested, in certain embodiments, may improve the accuracy of a read voltage threshold adjustment. 194 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The data error may occur due to a shift in a voltage level retained in one or more storage cells of the solid-state storage media 110. This retained voltage level of a storage cell is referred to herein as a read voltage level. The read error module 420, in one embodiment, reads the data set as part of a testing operation. The configuration module 352 may conduct the testing operation in response to the data error, in response to a scheduled maintenance operation, in response to an initial calibration operation, or the like. The data set used by the read error module 420 may come from a client-requested packet, or may be sample data read as part of the testing operation. 193 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In one embodiment, the read error module 420 reads the data set in response to a data error identified in the data set. For example, the ECC decoder 322 or another module may determine that a data error has occurred. In one embodiment, the data error is an uncorrectable bit error that the ECC decoder 322 does not have enough information to correct. Specifically, the ECC decoder 322, in one embodiment, is configured to detect and correct up to a certain number of bits (# of Bits in Error-#BER) in error in a data set. When the number of bits in error exceeds the #BER, the ECC decoder 322 may signal an uncorrectable data error, an uncorrectable bit error, or the like. 192 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In one embodiment, the monitor module 418 monitors data sets that are read from the solid-state storage media 110 in response to read requests from a computer 112 or other client 114. The monitor module 418 may monitor each data set that is read from the solid-state storage media 110 or may select certain data sets that are read from the solid-state storage media 110, at predefined intervals, in response to a command or directive from a storage client, or the like. By using the monitor module 418 to monitor data sets that are read from the solid-state storage media 110, the configuration module 352 may adjust read voltage thresholds for the solid-state storage media 110 dynamically, preventing uncorrectable data errors from occurring. 191 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 For example, as described below with regard to FIG. 6C, a multi-level storage cell stores at least a most significant bit (“MSB”) and a least significant bit (“LSB”). In certain embodiments, the MSB and the LSB, though part of the same physical multi-level storage cell, may be assigned to different pages of the solid-state storage media 110. In certain embodiments, a plurality of the multi-level storage cells are organized on the solid-state storage media 110 (such as NAND flash for example) as a physical page. In certain solid-state storage media 110, a physical page is the smallest unit that can be written to the solid-state storage media 110. In such embodiments, a multi-level storage cell may be associated with a page pair. A page pair is a pair of pages (upper and lower) that are associated with a single set of physical multi-level storage cells. For example, a multi-level storage cell may be associated with a page pair that includes an upper page and a lower page. An upper page may be associated with the MSBs, and the lower page may be associated with the LSBs, or vice versa. 200 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 As described above, a bias is a preference, probability, or tendency of values for bits within a set of bits to exhibit a specific data pattern. In one embodiment, the known bias is a known ratio of binary ones and binary zeroes within a set of bits or groupings of sets of bits. The known ratio, in one embodiment, may be expressed as a proportion or percentage between zero and one, a ratio of zero representing a bias of exclusively one value and a ratio of one representing a bias of exclusively the other value. In one embodiment, the known ratio is greater than zero and less than one, meaning that the known ratio is offset between a ratio of exclusively one binary value and a ratio of exclusively the opposite binary. If the known ratio is greater than zero and less than one, a deviation in the read bias of the data set may occur in either direction from the known ratio and still remain detectable by the configuration module 352. 189 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In one embodiment, the data set may be sized relative to a biasing scheme that the bias module 318 employs to bias packets. For example, in one embodiment, the data set may be sized based on the period of a deterministic sequence, such as a pseudorandom binary sequence that the bias module 318 uses to bias packets. The closer the size of the data set is to an integer multiple of the period of the pseudorandom binary sequence, the more likely it is that the bias of the resulting data set will match the known bias. In a further embodiment, the bias module 318 may guarantee that a data set of a predefined size has a bias that does not deviate from the known bias by more than a threshold amount. The threshold amount may range from zero to a given integer value or percentage value. 188 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The data set, in a further embodiment, was originally stored in the storage cells with a known bias. For example, the data set may be from a packet that the bias module 318 biased, may be from storage cells of the solid-state storage media 110 that are in a virgin state, storing default data or other data programmed to the solid-state storage media 110 with a known bias for example by a manufacturer of the solid-state storage media 110, or the like. 187 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In one embodiment, the data set read module 402 reads the data set in response to a testing operation and the data set may be a sample data set read as part of the testing operation. In a further embodiment, the data set read module 402 reads the data set in response to a read request from a client and the data set may be a data set that the client requested. The data set, in one embodiment, may be a full packet, a portion of a packet, or the like. In another embodiment, a size of the data set may be set by the test operation, by a read request from a client or the like. In a further embodiment, the data set may be raw data from the solid-state storage media 110, independent of packets or other data structures. 186 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In one embodiment, the data set read module 402 reads a data set from storage cells of the solid-state storage media 110. The data set read module 402 may read the data set either directly or indirectly from the solid-state storage media 110. For example, in one embodiment, the data set read module 402 may receive the data set from another module or element in the read data pipeline 108, the solid-state storage media 110, or the like. 185 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The configuration module 352, in one embodiment, sets configuration parameters proactively with an open loop model using the proactive configuration module 424. In another embodiment, the configuration module 352 sets configuration parameters reactively with a closed loop model using the data set read module 402, the deviation module 404, the direction module 406, and/or the adjustment module 408. In certain embodiments, the configuration module 352 may make several layers or phases of adjustments to configuration parameters, determining configuration parameters proactively using the proactive configuration module 424 and adjusting the configuration parameters reactively as the data set read module 402 reads data sets from the solid-state storage media 110. 184 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 FIG. 4 is a schematic block diagram illustrating one embodiment of a configuration module 352. In the depicted embodiment, the configuration module 352 includes a data set read module 402, a deviation module 404, a direction module 406, an adjustment module 408, a persistence module 410, an ECC module 412, a distribution module 414, a data set source module 422, a proactive configuration module 424, and a write voltage module 416. The write voltage module 416 may be integrated with the configuration module 352 or separate from the configuration module 352. As described above with regard to the configuration module 352 of FIG. 3A and FIG. 3B, the configuration module 352 may be part of the write data pipeline 106, part of the read data pipeline 108, part of the solid-state storage media 110, or the like, such that the configuration module 352 may adjust a read voltage threshold and/or another configuration parameter for one or more storage cells of the solid-state storage media 110. While specific embodiments are described using a read voltage threshold as an example configuration parameter, the configuration module 352 may similarly determine and adjust other configuration parameters. 183 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In another embodiment, the configuration module 352 may base a configuration parameter adjustment 358 on multiple inputs by combining the inputs from the inverse bias module 332, the ECC decoder 322, and/or the device factor module 354. The configuration module 352 may scale the inputs, weight the inputs, convert the inputs to common units, or the like to facilitate combination of the inputs. For example, the configuration module 352, in one embodiment, may convert each of the inputs to individual preliminary threshold adjustments, and then sum the preliminary threshold adjustments to provide a configuration parameter adjustment 358. The configuration module 352, in the example, may weight each preliminary threshold adjustment based on a predefined hierarchy or ranking of the associated inputs. For example, if a known bias and an error bias from the ECC decoder 322 indicates a configuration parameter adjustment 358 in one direction and the known, expected bias and the read bias from the inverse bias module 332 indicates a configuration parameter adjustment 358 in the other direction, the input with greater weight or priority in the predefined hierarchy or ranking will dictate the direction of the configuration parameter adjustment 358. 182 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 Because the expected bias is known, comparing a read bias relative the known bias indicates that certain bits which should have satisfied the known bias presently do not, which may be due to a data error or due to changes in the voltage level stored in the storage cells after they were written. In addition, determining that the difference is positive or negative indicates whether the read voltage should be increased or decreased such that a re-read of the data set will result in a read bias that is the same as, or comes closer to the known bias. In one embodiment, the configuration module 352 adjusts the read voltage level in the same direction as the direction indicated by the direction module 406. 209 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The adjustment module 408, in one embodiment, adjusts the read voltage threshold individually for a die, chip, PEB, or other discrete segment of the solid-state storage media 110. The adjustment module 408, in a further embodiment, adjusts multiple read voltage thresholds for each storage cell. For example, in one embodiment, the storage cells of the solid-state storage media 110 are MLC storage cells, with multiple read voltage thresholds per cell (i.e. a 2 bit MLC storage cell may have three distinct read voltage thresholds). The adjustment module 408 may move each of the multiple read voltage thresholds together or it may move them independently. 217 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 The adjustment module 408, in one embodiment, adjusts the read voltage threshold using a procedure or command provided by a manufacturer of the solid-state storage media 110. For example, in one embodiment, the adjustment module 408 may adjust the read voltage threshold by writing a value to a settings register of the solid-state storage media 110, sending a read voltage threshold parameter to the solid-state storage media 110, or otherwise communicating an adjustment to a read voltage threshold to the solid-state storage media 110. The adjustment module 408 may communicate the adjustment as an absolute value of a read voltage threshold, an amount to adjust the read voltage threshold, or the like. In a further embodiment, the solid-state storage media 110 provides a plurality of discrete levels (i.e. between 2 and 15 different levels) to which the read voltage threshold may be adjusted. In other embodiments, the magnitude of a read voltage threshold adjustment may be defined or recommended by a manufacturer or vendor of the solid-state storage media 110. 216 Added by DJM 3 2021 3/12/21, 12:00 AM
View Edit
Delete
US-8380915-A1 In one embodiment, the adjustment module 408 does not adjust a read voltage threshold, even if the deviation module 404 determines that the read bias of a data set deviates from the known bias, a data error has occurred, a retry threshold has not been met, or the like. The adjustment module 408, in certain embodiments, may selectively adjust a read voltage threshold based on one or more risk factors associated with an adjustment to a grouping of storage cells. For example, risk factors may include an error rate for the grouping of storage cells (such as an UBER or the like), an erase cycle count for the grouping of storage cells, a storage request latency for the grouping of storage cells (such as an average, maximum, or other storage request execution latency), an age of the grouping of storage cells, a number of previous adjustments to a read voltage threshold of the grouping of storage cells, and/or other potential risk factors. In one embodiment, the adjustment module 408 may cancel or delay an adjustment to a read voltage threshold in response to one or more risk factors satisfying a risk threshold. In a further embodiment, the solid-state storage controller 104 may take further remedial action in response to one or more risk factors satisfying a risk threshold. 215 Added by DJM 3 2021 3/12/21, 12:00 AM

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