Finite-State Modulation Codes for Data Storage

This paper provides a self-contained exposition of k modulation code design methods based upon the state splitting algorithm. The techniques are applied to the design of several codes of interest in digital data recording. 7 I . 1NTRODUCTION 0 0 0 0 0 0 0 *-W. . w.. H ODULATION codes in digital recording systems M serve a variety of important roles. In the most genera1 terms, their purpose is to improve the performance of the system by matching the characteristics of the recorded signals to those of the channel. Key factors determining the recording code constraints include: channel bandwidth restrictions, the timing recovery method, the gain Fig. I . Run-length limited (d, k) constraint. control method, the detection technique, and the electronic implementation approach. For example, in magnetic recording systems using peak-detection [ 11, the main objectives are to compress the signal bandwidth; optimize the trade-off between intersymbol interference, detection window size, and data density; support data-driven timing and gain control; and minimize implementation cost. A widely used family of constraints are the (d , k ) or run-length-limited (RLL) constraints, where the run of “0” symbols between consecutive “1” symbols must have length at least d and no more than k [2], [3]. The reasons for the imposition of such constraints are discussed in more detail in Section VI-A. Many commercial systems today use a code with constraints (d , k ) = ( 2 , 7). An example of a string satisfying these constraints is * * 0 0 1 0 ~ 1 0 0 1 ~ 1 0 0 * * . The set of all sequences satisfying these constraints is conveniently described by reading the labels off of paths through the diagram in Fig. 1. We will have much more to say about such diagrams in the remaining sections of the paper. More recently, magnetic recording systems using sampling detectors have appeared on the scene. These employ a scheme, denoted PRML, based upon class-4, partialresponse signaling, with maximum-likelihood sequence estimation, [4]-[7]. As discussed in more detail in Section VII, it is desirable to use sequences which satisfy not only a “global” k constraint, denoted G , but also a sepManuscript received September 1990; revised August 15, 1991. B. H. Marcus and P. H. Siegel are with the IBM Research Division, J. K. Wolf is with the Center for Magnetic Recording Research, UniIEEE Log Number 9104233. Almaden Research Center, San Jose, CA 95120. versity of California, San Diego, La Jolla, CA 92093. arate “interleaved” k constraint on the even index and odd index substrings, denoted 1. We will refer to these constraints as (0, G / I ) constraints. An example of a string satisfying the (0, 4/4) constraints is * * 001m1001oooo1001100 * * . Another commonly encountered constraint requires that the channel input waveforms have no spectral content at a particular frequency f, typically zero frequency or the Nyquist frequency (one-half the code symbol frequency). The code is said to have a spectral null at f in the code power density spectrum. Sequences with a spectral null at f = 0, often called dc-free sequences, have been used in many tape recording systems employing rotary-type recording heads, such as the R-DAT digital audio tape systems. More recently, it has been shown that dc-free sequences are also of potential value in trellis-coded PRML systems [8]. Sequences with spectral null at f = 0 are generated by diagrams of the form shown in Fig. 2. (The more “links” there are in the “sausage,” the less attenuation there will be in the low frequencies near the spectral null.) Once the system of constrained sequences, denoted S, is specified, one needs a code that translates incoming information into the sequences that obey the constraints. We will often refer to such a code as an S code. So, a (d , k ) code is a mapping that encodes arbitrary binary data into the (d , k ) run-length limited constraint. The encoder typically takes the form of a synchronous finite-state-machine, shown schematically in Fig. 3. A rate p : q jn i te state encoder accepts an input block of p user bits and generates a length q codeword depending on the input block and the current internal state of the encoder. There are of course only finitely many states. This structure is ideally suited to digital logic implementation using combinatorial logic or look-up tables. 0733-8716/92$03.00