Abstract:
A disk drive system provides all required synchronization, positioning, validation, and data functions within each disk sector. All of these functions are provided within two zones, a header section and a data section. The header section includes a preamble, a synchronization character and an address field, as well as servo information for track following. The data section of each sector includes a data preamble, a data synchronization character, a bad sector bit map, the data and data redundancy information. The header section of at least one sector in a track includes a short DC-erase field, a transitionless segment which is used in synchronization. To synchronize a read/write head to the disk, the system first detects the DC-erase field. The system next searches for the header premable and synchronization character. If it finds them within predetermined times, it then looks for a valid sector address to complete the synchronization. If the system does not detect the preamble and synchronization character within the predetermined times, it looks for another DC-erase field and continues the synchronization process. After the preamble and synchronization character are found, the desired sector is located by reading the addresses of the succeeding sectors.
Abstract:
A data demodulator assigns a binary value to the signal recorded in a transition cell based on the amplitude of the signal in the transition cell, the amplitudes of the signal in adjacent transition cells and system experience in categorizing how recording non-linearities and system noise effect the signals. The demodulator samples a selected number of times the recorded signal in the transition cell for which a binary value is to be determined and the recorded signal in a selected number of transition cells adjacent to that cell. It then converts the amplitude of each of the signal samples to a digital symbol. Next, it concatenates portions of the digital symbols to form an interpretation word. It uses this word to enter a stored lookup table which contains binary values, and assigns to the transition cell signal the binary value associated with the word. The table associates a value with a particular word or group of words based on system experience and the demodulation of known signals into interpretation words. The binary values assigned to a number of cells may be combined to form a code word which may be decoded and corrected using soft decoding techniques.
Abstract:
An error detecting and correcting system implementing the Reed-Solomon (1023, 1006) code having code words whose symbols are elements in the Galois field GF(2.sup.10) generated by either the primitive polynomial x.sup.10 +x.sup.3 +1 or x.sup.10 +x.sup.7 +1. An original data word is encoded to produce a code word w(x) including a first set of checksum symbols appended thereto. Upon retrieval, the data symbols of the receive code word y(x) are encoded by the same encoder that encodes the original data word to produce a second set of checksum symbols. Both sets of checksum symbols are modulo-two summed to produce a residue R(x) from which error syndromes S.sub.i can be computed and thus enable rapid correction of errors in the received code word y(x). The system also monitors the number of non-zero symbols in the residue R(x) in order to avoid unnecessary computation of error syndromes S.sub.i and other decoding routines, such as when the received code word y(x) is otherwise uncorrectable or when the error exists only in the received checksum symbols, rather than in the data symbols. The distance between code words being (2T+ 2), the error correction routine is bypassed when the number of non-zero symbols in R(x) is less than or equal to T, which indicates that errors only reside in the checksum symbols. When the number of non-zero symbols equals (T+1), the error is uncorrectable. For determining whether a single error exists so that correction can quickly be made, the system also tests whether S.sub.i+1 /S.sub.i is constant for all error syndromes S.sub.i.
Abstract:
A system for performing a Chien search simultaneously tests multiple elements of GF(2P) as possible roots of a degree-t error locator polynomial &sgr;(x) using a plurality of simplified multipliers that each simultaneously produce the corresponding terms of &sgr;(x). In one embodiment of the system, t−1 simplified multipliers over GF(2P) are used to simultaneously test as possible roots &agr;2, (&agr;2)2, (&agr;2)3 . . . (&agr;2)j. Each multiplier includes a plurality of adders that are set up in accordance with precomputed terms that are based on combinations of the weight-one elements of GF(2P). A summing circuit adds together the associated terms produced by the multipliers and produces j sums, which are then evaluated to test the j individual elements as possible roots. The coefficients of &sgr;(&agr;2)j are then fed back to the multipliers, and the multipliers test, during a next clock cycle, the elements &agr;2*(&agr;2)j, (&agr;2)2*(&agr;2)j . . . , (&agr;2)2j and so forth. Similar multipliers also test the odd powers of &agr; as roots of &sgr;′(x)=&sgr;(&agr;x). If P=mn the system may be implemented using a plurality of GF(2m) multipliers. The field GF(2m) is a subfield of GF(2P), and the elements of GF(2P) can each be represented by a combination of n elements of GF(2m). The error locator polynomial &sgr;(x) can thus be represented by a combination of n expressions &sgr;0(x), &sgr;2(x) . . . &sgr;n−1(x), each with coefficients that are elements of GF(2m). Each of the n expressions has 2m−1 coefficients for the terms x0, x1, x2 . . . x2m−1. Thus, n(2m−2) constant GF(2m) multipliers are used to test each element of GF(2P) as a possible root. The number of GF(2m) multipliers in the system is independent of the degree of the error locator polynomial, and each multiplier operates over a subfield of GF(2P). Accordingly, the system can simultaneously tests j elements using j sets of n(2m−2) constant multipliers over GF(2m).
Abstract:
An n-stage pipelined combined encoder and syndrome generator system includes n stages that are essentially identical. Each of the stages includes two associated delay circuits, namely, a first delay circuit in a chain of feedback adders that operate as a feedback path during encoding, and a second delay circuit in a data input line. During encoding operations, the delay circuits in the feedback adder chain segment the chain of j feedback adders into n stages of j/n adders, and the delay circuits in the data input line delay the data symbols by the latencies associated with the respective stages. The delay circuits thus simultaneously provide to the various stages the corresponding data symbols and propagating sums. After the last data symbol is encoded, the ECC symbols are available after a time lag associated with the j/n adders in the last stage. During syndrome generation operations, the feedback adders are essentially decoupled from one another by AND gates that are included in the feedback path and switches in the data input line bypass the delay circuits, to avoid introducing latency into the syndrome generation operations.
Abstract:
A Reed-Solomon error-correction coding (ECC) scheme selectively supports two different-length codes to optimize the trade-off between error performance and the amount of disk space required to store protection symbols. The encoder contains two sets of alpha multipliers; part of one set is multiplexed with the other depending on which code is being used. Also, a shift register within the encoder is selectively lengthened or shortened depending on the code. The code pair is selected so that the generator polynomial of the shorter code is a complete divisor of the generator polynomial of the longer code. Thus, one code is a sub-code of the other. Accordingly, the ECC system is able to use the same syndrome calculator for each code. The error-correction decoder uses those syndromes that correspond to the roots of the generator polynomial of the code being used.
Abstract:
A method and apparatus for identifying and synchronizing to two different fields in a disk drive employs different synchronization or "sync" patterns to reduce the chances of mis-identifying and false-identifying a field. Two very distinct synchronization patterns have been found that satisfy the d=1, k=7 run-length constraints of a data code used in the disk drive. During operation, one sync pattern is searched for to identify and synchronize to its associated field, then the field itself is read. This procedure is then repeated for the other sync pattern and its associated field. Also, the phase of a preamble preceding each sync character is established, so that the number of comparisons needed to find either sync character is reduced. A sync detector operates on cell pairs, and has a selector that selects which sync pattern to search for. The sync detector also has special features that enable it to find preamble and DC Erase fields in the disk cell stream.
Abstract:
A method for determining whether particular information was used in encoding a codeword; the codeword is formed by encoding information as a first preliminary code sequence using a first code and then combining the first preliminary code sequence with a second preliminary code sequence generated using a second code; the particular information is encoded as a desired first preliminary code sequence in accordance with said first code; the desired first preliminary code sequence is then stripped from the codeword to derive a test sequence; the test sequence is decoded in accordance with the second code, and a determination is made, based on the decoding, whether the particular information was used in encoding the codeword. In another aspect, bad sector, servo correction, and sector address values are encoded for storage in a header associated with a sector of storage on a storage medium by encoding the address value with leading zero symbols in accordance with a code having a first rate, encoding the bad sector and servo correction values in a systematic code having a second rate, and combining these sequences to generate a codeword of the first code such that the bad sector and servo correction values appear explicitly in the codeword.
Abstract:
The invention is an error detection and correction system which encodes data twice, once for error detection by using a cyclic redundancy check (CRC) code with a generator polynomial, g(x) [in octal form]:g(x)=2413607036565172433223and a second time for error correction by using a Reed-Solomon error correction code. The system then uses the CRC code to check the data for errors. If errors are found the system uses the error location information supplied by the CRC code and the Reed-Solomon code to correct the errors.
Abstract:
The location of the sequence of data bits stored on a storage medium is identified by generating a predetermined synchronization bit sequence; storing on the storage medium a bit sequence corresponding to the predetermined synchronization sequence to indicate the location of the data bit sequence; deriving from the stored corresponding bit sequence on the storage medium a trial sequence; and determining whether the trial sequence corresponds to the predetermined synchronization sequence by determining the number of symbols in which the trial sequence differs from the predetermined synchronization sequence, each symbol comprising a plurality of bits, whereby the effect of clustered bit errors is reduced. The stored data bits are encoded from raw data bits in accordance with a code in which raw data symbols are encoded as data bit groups of at least two different lengths; a bit sequence corresponding to the synchronization sequence is stored on the medium as an indication of the location of the stored data bits; and the synchronization sequence comprises a sequence of raw data symbols which encode as stored encoded groups all of a single length, whereby error propagation is reduced.