Abstract:
Methods and apparatus are provided for controlling data management operations including storage of data in solid state storage (6) of a solid state storage system (5). Input data is stored in successive groups of data write locations in the solid state storage (6). Each group comprises a set of write locations in each of a plurality of logical subdivisions of the solid state storage (6). The input data to be stored in each group is encoded in accordance with first and second linear error correction codes. The encoding is performed by constructing from the input data to be stored in each group a logical array of rows and columns of data symbols. The rows and columns are respectively encoded in accordance with the first and second linear error correction codes to produce an encoded array in which all rows correspond to respective first codewords and columns correspond to respective second codewords. The encoding and storage operation is performed such that, in each said group, the encoded input data comprises a plurality of first codewords in each of a plurality of the logical subdivisions and each logical subdivision contains a portion of each of the second codewords for that group.
Abstract:
A data storage system includes an encoder subsystem comprising an error correction code encoder, a modulation encoder, and a precoder, and a decoder subsystem similarly comprising a detector, an inverse precoder, a channel decoder, and an error correction code decoder. The error correction encoder applies an error correction code to the incoming user bit stream, and the modulation encoder applies so called modulation or constrained coding to the error correction coded bit stream. The precoder applies so called precoding to the modulation encoded bit stream. However, this precoding is applied to selected portions of the bit stream only. There can also be a permutation step where the bit sequence is permuted after the modulation encoder before precoding is applied by the precoder. The decoder subsystem operates in the inverse manner.
Abstract:
A method for decoding a codeword received from a flash memory is proposed. The flash memory comprises several multi-level flash memory cells, wherein each such multi-level flash memory cell stores one symbol of the codeword. An ECC decoder is arranged for decoding the codeword into a decoded codeword and is designed to correct a maximum number of errors. The method comprises an error check step for determining the number of errors in the codeword. If the number of errors is more than the maximum number of errors the ECC decoder can correct then at least one of a first symbol modification step and a second symbol modification step is performed. In the first symbol modification step a first modified codeword is generated by increasing the value of the symbol to the next higher value level and in the second symbol modification step a second modified codeword is generated by decreasing the value of the symbol (Si) to the next lower value level. In an analysis step the corrective effect of the symbol modification steps is calculated and in a return step the decoded codeword is determined based on the corrective effect, or an erasure of the codeword.
Abstract:
A servo write head is provided and is configured to simultaneously write at least two servo patterns in respective servo bands on linear magnetic tape. Centerlines of the servo patterns are substantially uniformly spaced in the lateral direction. In addition, the servo patterns of all adjacent respective servo bands are displaced relative to each other in a longitudinal direction by an amount that is related to a length of a servo frame and a type of the servo patterns.
Abstract:
Methods and apparatus are provided for detecting L-bit sync words occurring at N-bit intervals in PPM-encoded servo pattern read signals read from magnetic tape (3) in tape drives (1). A soft output detector (11) processes the PPM-encoded servo pattern read signal to produce a series of soft output samples corresponding to respective bits encoded in the servo pattern. A sync word detector (12) then produces block correlation values for respective positions of a sliding L-sample block in the soft output sample series. The block correlation values are produced by calculating, at each block position, bit correlation values indicating correlation between respective samples and corresponding bits of the sync word, and summing each bit correlation value minus a predetermined function of the corresponding sample value. The sync word detector (12) then detects a sync word at the block position with the maximum block correlation value in an (N+L-1)-sample sequence of the soft output sample series.
Abstract:
A method for randomizing data to mitigate false VFO detection is described. In one embodiment, such a method includes simultaneously receiving multiple input data streams. Each input data stream is associated with a different track on a magnetic tape medium. The input data streams are simultaneously scrambled to produce multiple randomized data streams. The input data streams are scrambled such that different bit patterns are produced in the randomized data streams even where corresponding bit patterns in the input data streams are identical. The randomized data streams are simultaneously written to their associated data tracks on the magnetic tape medium. A corresponding apparatus is also described.
Abstract:
Methods and apparatus are provided for controlling a solid state storage device (5) in which the solid state storage (6) comprises erasable blocks each comprising a plurality of data write locations. Input data is stored in successive groups of data write locations, each group comprising write locations in a set of erasable blocks in each of a plurality of logical subdivisions of the solid state storage (6). The input data is error correction encoded such that each group contains an error correction code for the input data in that group. Metadata, indicating the location of input data in the solid state storage (6), is maintained in memory (13). An indication of validity of data stored in each data write location is also maintained. Prior to erasing a block, valid input data is recovered from the or each said group containing write locations in that block. The recovered data is then re-stored as new input data.
Abstract:
Systems and methods are provided that confront the problem of failed storage integrated circuits (ICs) in a solid state drive (SSD) by using a fault-tolerant architecture along with one error correction code (ECC) mechanism for random/burst error corrections and an L-fold interleaving mechanism. The systems and methods described herein keep the SSD operational when one or more integrated circuits fail and allow the recovery of previously stored data from failed integrated circuits and allow random/burst errors to be corrected in other operational integrated circuits. These systems and methods replace the failed integrated circuits with fully functional/operational integrated circuits treated herein as spare integrated circuits. Furthermore, these systems and methods improve I/O performance in terms of maximum achievable read/write data rate.
Abstract:
Methods and apparatus are provided for encoding input data for recording in s-level storage(2)of a solid state storage device(1), where s≥2. Input data words are encoded in groups of M input data words in accordance with first and second BCH codes to produce, for each group, a set of M first codewords of the first BCH code. The set of M first codewords is produced such that at least one predetermined linear combination of the M first codewords produces a second codeword of the second BCH code, this second BCH code being a sub- code of the first BCH code. The sets of M first codewords are then recorded in the s-level storage(2).If each of the first and second codewords comprises N q-ary symbols where q =p k , k is a positive integer and p is a prime number, the q-ary code alphabet can be matched to the s-ary storage (2) by ensuring that q and s are u th and v th powers respectively of a common base r, where u and v are positive integers and k≥u, whereby p (k/u)v = s.
Abstract:
A method for intra-block wear leveling within solid-state memory subjected to wear, having a plurality of memory cells includes the step of writing to at least certain ones of the plurality of memory cells, in a non-uniform manner, such as to balance the wear of the at least certain ones of the plurality of memory cells within the solid-state memory, at intra-block level. For example, if a behavior of at least some of the plurality of memory cells is not characterized, then the method may comprise characterizing a behavior of at least some of the plurality of memory cells and writing to at least certain ones of the plurality of memory cells, based on the characterized behavior, and in a non- uniform manner.