throbber
1344
`
`Abstract - This paper provides a tutorial introduction to
`E E 6 i i i g codes for magnetic disk storage devices and a review
`of progress in code construction algorithms. Topics covered
`include: a
`brief description of typical magnetic recording
`channels; motivation for use of recording codes; methods of
`selecting codes to maximize data density and reliability; and
`techniques for code design and implementation.
`1. INTRODUCTIQN
`Recording codes have been uscd with great success in
`magnetic disk storage to increase linear density and improve
`performance. This paper attempts to provide, in a limited space,
`a tutorial introduction to these codes.
`Section 2 briefly reviews the basic principles of recording
`in a typical magnetic storage channel,
`as well as
`and detection
`the motivation for the use of codes.
`Section 3 focuses on recording codes for magnetic disk
`storage. The recording
`codes in most widespread use fall into
`the class of run-length-limited (RLL) or (d,k) constrained codes.
`Two major problems arise
`in the context of general RLL
`(d,k! codes. First, one must choose the parameters (d,k) which
`In Section 4, we address
`maximize data density and reliability.
`this issue
`of
`recording code performance evaluation and
`parameter selection.
`The second major problem is the design and
`implementation of (d,k) codes. Section 5 is devoted to a review
`of code construction techniques, with
`an emphasis on recent
`advances in the development
`of general algorithms for the
`construction of sliding block RLL codes.
`
`2. THE DIGITAL MAGNETIC RECORDING CHANNEL
`in use today employ
`Most magnetic disk storage devices
`saturation recording to place the data
`on the disk, followed by
`peak detection during the readback step to recover the
`1 illustrates schematically the essential
`information. Figure
`elements of the process. The data are recorded on the magnetic
`medium by orienting magnets along a concentric track, as shown
`at the top left of the figure. The magnets are oriented either
`in
`the direction of motion of the head around the t r y k , o r in the
`opposite direction (at least in conventional horizontal"
`recording). The remaining portions
`of the figure show the
`relationship of the pattern of magnetization to the recorded bits,
`as dictated by the modulation scheme (known as NRZI
`a 2-level write
`precoding) which converts the bit stream to
`symbols "I" in the
`current signal for the recordiy
`head. The
`transitions" or changes in the
`bit stream are recorded
`as
`polarity of the magnets along the track. During the readback
`process, the inductive read head transforms the sequence
`transitions into a stream of pulses of alternating polarity. The
`clocking circuit (VPO, or variable-frequency oscillator) uses
`these pulses to maintain
`a synchronized timing window for the
`detector, which locates the pulse peaks in time. The information
`can then be reconstructed by placing a recovered bit "1" in any
`window in which a peak was detected, and a bit "0" otherwise.
`
`of
`
`The recording channel has imperfections,
`however.
`Thermal noise generated by the electronic circuits and noise
`arising from magnetic properties of the disk medium can corrupt
`the readback signal, leading to spurious peaks as well as shifted
`positions of the genuine peaks. To compensate for these effects,
`t o peak detection, such as the
`at least in part, enhancements
`addition of a threshold (clip level) and the tracking
`of peak
`polarities, have been introduced. Another major problem is the
`intersymbol interference
`(ISI) of neighboring pulses, illustrated
`in the figure. Magnetic transitions, or recorded symbols "1,"
`which arc written too close to one another have an interfering
`effect during readback that can both reduce the amplitude of the
`pulse as well as shift the peak position. On the other hand,
`if
`the transitions are written too far apart, the clock recovery
`circuit will not be receiving adequate information
`t o maintain
`synchronization with the recorded bits.
`These detection error mechanisms are combatted by the
`use of data coding techniques. Two distinct
`kinds of codes are
`typically used. A recording code is
`used to guarantee that the
`recorded bit sequence does not suffer from
`$e problems
`symbols
`of
`described above, namely runs
`0" between
`consecutive symbols "1" which are either too short or too long.
`Recording codes are also referred to as modulation codes. Even
`errors may still
`with an appropriate recording code, detection
`occur as a result of channel noise, producing an unacceptable
`error rate at the desired data density. The
`second kind of code,
`an error-correcting (also called error-control) code (ECC), uses
`redundant bits which have been added t o the original user data
`to detect, locate, and correct all remaining errors with very high
`probability of success.
`The configuration of these codes in the magnetic recording
`channel is shown in Figure 2. In typical high end applications,
`the recording code reduces the bit error rate (BER) to
`approximately 1 detection error in 10 billion bits. In addition,
`practical recording codes limit error propagation in the decoding
`process. This
`is crucial, because the ECC typically used has the
`capability of correcting only a small number of multi-bit bursts
`of errors per track.
`
`Fig. 2. Configuration of codes
`For the remainder of this paper, we focus on the aspects of
`recording code selection and design.
`3. RUN-LENGTH-LIMITED (RLL) CODES
`FOR MAGNETIC STORAGE
`Many popular recording codes for peak detection channels fall
`into the class of run-length-limited (RLL) codes. These codes,
`in their general form, were pioneered by P. Franaszek [l] in the
`late 1960's. Since then, a considerable body of engineering and
`been written on the subject. RLL
`mathematical literature has
`(d,k), which
`codes are characterized by two parameters
`represent, respectively, the minimum and Caximum number
`of
`1" in the allowable
`symbols "0" between consecutive symbols
`d controls high frequency content
`code strings. The parameter
`in the associated write current signals, and so reduces the effects
`k controls low
`of intersymbol interference. The parameter
`frequency content, and ensures frequent information for the
`clock synchronization loop.
`rigid disk files, as
`For example, most flexible and low-end
`well as some high-end drives, today incorporate a code known as
`Modified Frequency Modulation (MFM). It also
`goes by other
`names, such as Delay Modulation or Miller code. MFM is an
`RLL code with (d,k)=(1,3).
`the coding theorist
`faced by
`is the
`The problem
`construction of. a simple, efficient correspondence, or code
`mapping, between the arbitrary binary strings that a
`user might
`want to store on a magnetic disk and the (d,k) constrained code
`strings which the peak detector
`ca,p more easily recover
`correctly. We now give the term efficient" quantitative
`meaning by introducing the third important code parameter, the
`code rate.
`'The conversion of arbitrary strings t o constrained (d,k)
`as follows. Pick a codeword
`strings could be accomplished
`0018-9464/85/0900-1344$01.0001985 IEEE
`
`* O
`
`Readback
`Vo!tage.
`
`.
`
`l
`
`.
`
`l
`
`. @ .
`
`
`
`Detected
`Data:
`
`.
`
`o
`
`.
`
`Magnetic
`Trzck:
`
`nata:
`
`write
`Current.
`
` 1
`
`.
`
`1
`
`.
`
`0
`
`
`
`Fig. 1. Digital magnetic recording channel
`
`Manuscript received:
`P. H. Siegel
`IBM Research Lab, K62/282
`5600 CottIe Road
`San Jose, CA 95193, U.S.A.
`
`UMN EXHIBIT 2026
`LSI Corp. et al. v. Regents of Univ. of Minn.
`IPR2017-01068
`
`
`Page 1 of 6
`
`

`

`length n. List all the strings of length n which satisfy the (d,k)
`constraint. If there are at least 2m such strings, assign a unique
`codeword to each of the 2m possible binary input words of
`length m. This kind of code mapping is commonly referred
`to
`to
`as a block code. The ratio, m/n,
`of input word length m
`codeword length n is called the code rate. Since there are only
`2" unconstrained binary strings
`of length n, there will be less
`than this number of constrained,codewords. Therefore, the
`rate must satisfy m/n<l. In fact, there is a maximum
`achievable rate, called the Shannon capacity C, which we now
`discuss.
`In 1948, Shannon proved that, as the codeword length
`2Cn
`grows, the number
`of constrained codewords approaches
`on the code
`from below, for some constant C which depends
`constraints. This result implies that the rate m/n
`of any code
`mapping for that constraint must satisfy m/n<C. Roughly
`speaking, a code is called efficient if the rate m/n is close to C.
`a' block code is possible at
`Shannon's proof also showed that
`any rate m/n<C, provided long enough codewords are used.
`We remark that practica1 applications usually require code
`mappings involving shorter codewords. Section
`5 discusses
`techniques which have been developed to construct practical
`code mappings, including codes with rate equal to the capacity
`C when C is a rational fraction.
`One can employ a finite-state transition diagram (FSTD)
`of binary
`in order to conveniently represent the infinitude
`strings satisfying the' (d,k) constraint. This graph
`representation for constrained channel strings dates back to
`Shannon's seminal paper [2], and it was exploited by Franaszek
`in his work on RLL codes. Figure 3 shows an FSTD for the
`(1,3) constraint. It consists of a graph with
`4 nodes, called
`states, and directed edges between them, called state
`transitions, represented by arrows.. The edges are labeled with
`channel bits. Paths through the graph correspond
`precisely to
`(1,3) constraint. A similar
`the binary strings satisfying the
`FSTD having k+l states can be used to describe any (d,k)
`constraint, as the reader can easily verify.
`
`(1)
`
`Rate
`1/2, 2/3
`1 /2
`213
`1 /2
`
`(d,k) Capacity Practical
`C
`(0,1) 0.6942
`(1,3) 0.5515
`(1,7) 0.679
`(2,7) 0.5172
`Fig. 3. (1,3) FSTD Fig.
`
`
`4. Code Capacities
`The capacity C of the RLL (d,k) constrained channel is
`directly related to the structure
`of the FSTD. We define the
`state-transition matrix T = (t.-) associated to the (d,k) FSTD
`with states 1, ..., k + l as followk!:
`t.. = x, if there are x edges from
`state i to state j .
`11
`otherwise .
`=0,
`For example, for the (d,k)=(1,3) case:
`0 1 0 0
`1 0 1 0
`T ' 1 0 0 1
`1 0 0 0
`The capacity C, in units of user bits per channel bit, was shown
`by Shannon to be:
`c = log, h
`where X is the largest positive eigenvalue of T , that is the largest
`of T. For the (d,k)
`root of. f(t), the characteristic polynomial
`constraint, the polynomial f(t)
`is f(t)=tk+l-tk-d-...-t-l. The
`roots can be easily found by computer calculation. In the (1,3)
`case, we find A=1.465.., so C=O.5515 ...
`In practice, one chooses for the rate a rational number
`m/n<C. To help keep the codeword length small, the integers m
`and n are often selected to be small. Thus, for the
`(1,3)
`constraint, it would be natural to
`look for a code mapping at
`rate 1/2, which uses codewords of length 2 bits. Figure 4 gives
`a list of some (d,k) constraints of historical and current interest,
`along with Shannon capacity C, and choices of practical code
`1/2 for (d,k)=(O,l) is
`rates. We note here that the rate
`included for historical reasons which will be clarified in section
`possibIe
`5. For now, it serves to emphasize that the rates of
`code mappings must only satisfy m/n<C.
`
`1345
`
`For a given user bit frequency, or data rate, the choice of
`(d,k) constraint and code rate determines the code bit
`frequency and the power spectrum of the write current signals
`produced by the code. Figure
`5 shows the power spectra of
`write current signals that would be obtained from a (d,k) code
`that is 100% efficient, for the (d,k) parameters in Figure 4.
`
`0
`
`5 -
`-
`ti -lo
`B
`
`-15
`
`-20
`0
`
`02
`
`08
`
`1 0
`
`O B
`0.4
`Fleg"e"CY
`ldala bll trequancy = ?,
`Fig. 5 . RLL code spectra
`4. CODE PERFORMANCE EVALUATION AND SELECTION
`We are now in a position to evaluate, to some extent, the
`relative abilities of RLL (d,k) codes to prevent detection errors
`in peak detection channels.
`as to the best (d,k) code to use at a
`One can get a clue
`specified data rate with a particular head and dizk combination
`by seeing which code spectrum in Figure
`5 matches" the
`head/disk transfer function best. This comparison can be
`strengthened by taking a closer look a t code patterns and their
`impact on the peak detection process. To start,
`we do a
`comparison which will explain the prevalence of MFM today.
`When peak detection was introduced along with a
`variable-frequency oscillator (VFO) clocking circuit, a coding
`technique was needed to give very frequent clock recovery
`information to the VFO. It is known as Frequency Modulation
`related to Phase Encoding
`(FM), or Double Frequency, and is
`and Manchester code. The code was at rate 1/2, and the code
`To encode, write 2 bits for each
`mapping rules were simple.
`data bit, the first always being "1," the second being the data
`bit. Decoding involves simply grouping the detected bits into
`pairs, and dropping the first bit of each pair. Using RLL code
`nomenclature, FM is a rate 1/2 (0,l) RLL code. This is the
`reason that rate 1/2 for (d,k)=CO,l) was included in Figure 4.
`It should be mentioned that FM is also a
`DC-balanced
`code, meaning that the associated write signals have zero
`average power at DC. In fact, at any point in time, the number
`signal is positive
`of preceding clock
`intervals in which the
`in which it is negative by a t most 1.
`differs from the number
`With this additional constraint, the FM code is 100% efficient.
`This DC-balanced property
`is not required, however, for most
`magnetic disk storage applications.
`In FM, the k=l parameter made accurate clock
`6 shows uncoded data and
`synchronization possible. Figure
`rate 1/2 (0,l) bit patterns which correspond to the same linear
`user bit density. The minimum allowable magnetic transition
`spacing is indicated by the solid bar at left above each pattern.
`in which the peak must be sensed is
`The detection window
`indicated by the dotted bar at right above each pattern. We
`see that the FM code cuts the size of the detection window in
`reduces the minimum transition
`half, and simultaneously
`spacing
`by a factor
`two. The drastic increase in
`of
`intersymbol interference certainly negated
`t o some extent the
`potential benefits obtained by the introduction of peak sensing
`and the VFO.
`
`-
` -
`' -
`
`+-----I
`
`1
`.
`1
`.
`+--i
`H
`. 1 . 1 . 1 . 1 . 0 . 1 . 1 . 1 .
`
`k---i
`H
`. 1 . 0 . 1 . 0 . 0 . 0 . 1 . 0 .
`
`.
`
`k---i
`
`.
`
`1
`
`.
`
`0
`
`Data:
`
`FM'
`
`MFM:
`
`1/2(2,7):
`
`. 1 . 0 . 0 . 1 . 0 . 0 . 0 . 0 .
`p---,
`. 0 . 0 . 0 .
`. 1 . 0 . 1
`2/3(1,7):
`Fig. 6 . RLL code patterns
`Modified Frequency Modulation (MFM) was developed,
`as the name suggests, to improve upon the FM recording code.
`The observation was made that not all
`of the redundant bits
`need to be "1". Inserting a "1" in the first.position of each
`code bit pair only when the current data bit and previous data
`bit are "0," and inserting "0" otherwise, produced a rate
`1/2
`(1,3) code. The k=3 parameter turned out to be still adequate
`
`
`Page 2 of 6
`
`

`

`1346
`
`I
`
`20
`
`d = l represented a doubling of the
`for clock recovery, and the
`6 shows
`minimum transition spacing compared to FM. Figure
`1/2 (0,l)
`and rate 1/2
`the comparison of "worst case" rate
`user bit density, one
`(1,3) bit patterns. At a specified linear
`would anticipate considerable improvement in detector
`performance from MFM. MFM became an industry standard in
`flexible and "Winchester"-technology drives.
`More recently, other RLL (d,k) constraints have been
`1 / 2 ( 2 , l l ) code
`introduced. For example, ISS used a rate
`called 3PM [3] in its 8434 disk drive and a rate 2/3 (1,7) code
`in its 8470 drive [4]. Also, IBM utilized a rate 1/2 (2,7) code
`[SI in its 3370-3380 family of high-end drives.
`Figure 6 gives heuristic Justification of the use of these
`codes instead of MFM. In comparing
`1/2 (2,7)
`to MFM, at
`fixed linear density, we see that the ' worst case" intersymbol
`(2,7) code gives a minimum transition
`interference for the
`spacing which is 50% larger than that of MFM. The detection
`window size remains unchanged. Provided that the VFO can
`handle a k=7 parameter, we conclude that use of the (2,7) code
`leads t o a considerable improvement in detector performance.
`2/3 (1,7) code to MFM, we find
`Similarly, in comparing the
`that the (1,7) has 33% larger minimum transition spacing, as
`well as a
`33% larger detection window. Again, we can
`of (1,7)
`conclude that the error rate can be reduced by use
`instead of MFM.
`The code comparison method breaks down when we try to
`1/2 (2,7)
`and the 2/3 (1,7)
`codes. The
`choose between the
`2/3(1,7) code has a 33% larger detection window than the
`1/2(2,7), but the minimum transition spacing is llo/o.less. The
`on the specific signal and noise
`optimal choice depends
`characteristics of the head-disk combination and other channel
`components, as well as additional signal processing options
`such as readback equalization and write precompensation.
`More sophisticated performance evaluation tools are required,
`been devoted to the development of
`and several studies have
`such tools and their application to code selection. See, for
`example, Huber
`[6]. Using the peak detection channel model
`[7], error-rate curves were computed for FM,
`reported in
`B
`MFM, and (2,7) codes to illustrate the progress achieved via
`improved coding. These calculations assumed conventional
`thin-film head, particulate medium with no significant disk
`defects, low-pass filtering, and no write precompensation. The
`results are shown
`in Figure 7. In addition, Figure 7 shows a
`projected range of improved performance that can be achieved
`of (2,7) or (1,7) codes in conjunction with write
`by use
`precompensation and readback equalization. These projections
`are consistent with simulated and experimental results given in
`several published studies. For example, Jacoby and Kost
`[4]
`reported that a data rate increase
`of 10% was achieved in an
`equalized channel by use of a rate 2/3 (1,7) code in place of a
`rate 1/2 (2,7) code.
`.- + x
`0
`
`- .-
`Q
`m
`Q
`2
`a -10
`2
`w"
`a
`0
`-I -20
`4
`
`a
`16
`12
`Linear Density (KBPI)
`Fig. 7. RLL code performance calculation
`These calculations indicate that recording code progress
`since 1966 has increased linear density by a factor
`approximately 2.5. This represents a significant contribution
`to the overall factor
`of increase due to improvements in
`storage technology, for example, as reported for IBM disk
`drives in [SI.
`5. RECORDING CODE CONSTRUCTION
`AND IMPLEMENTATION
`on
`Once the optimal code parameters'are selected, based
`modeling or experimentation, it is necessary t o devise encoding
`and decoding rules for an efficient code which can be
`implemented in simple logic circuits or look-up tables. This
`section addresses the problem
`of code construction and
`implementation.
`To illustrate some of the techniques and algorithms that
`have evolved in the construction
`of practical, efficient
`recording codes, we develop a sequence of examples. We first
`of MFM
`will describe practical code properties in the context
`
`
`
`A
`
`of
`
`code. Then, we will examine some of the methods developed to
`design (d,k) codes, emphasizing
`(2,7) and (1,7) codes. The
`of Franaszek [l] and the
`sequence state coding methods
`look-ahead techniques of Patel [9], Jacoby [3], Franaszek [lo],
`[ll], Jacoby and Kost
`Cohn and Jacoby
`[4], and Lempel and
`Cohn [12] will be discussed.
`on the recent sliding block code
`Finally, ,we focus
`construction algorithm of Adler, Coppersmith, Hassner [13],
`based on work of Marcus [14]. This technique, derived from
`the branch
`of mathematics known as symbolic dynamics,
`represents a theoretical breakthrough in code construction,
`with significant practical implications. For the first time, the
`algorithm provides an explicit recipe, justified by mathematical
`proofs, for construction
`of simple, efficient RLL codes with
`limited error propagation. The method incorporates many
`of
`the key ideas which appear in the work
`of Franaszek, Patel,
`Jacoby, Cohn and Lempel, generalizing them and making
`precise the construction steps and the scope
`of
`their
`applicability.
`- ------ -
`_-- _-
`Properties of Practical Code Mappings
`We now discuss some properties that practical code
`possess, using MFM to illustrate them. The essential
`properties are:
`1) high efficiency,
`2) simple encoder and decoder implementations, and
`3) limited error propagation.
`The MFM code, as defined earlier, is a rate 1/2 (1,3)
`code. It has high efficiency, 0.5/0.5515, or approximately 91%.
`The encoder is characterized by two encoding rules. The first
`rule, which we call rul: A, is used to encode a data bit
`if the
`,yy 0". The second rule B, is used if
`the
`previous data bit
`of a block
`1 , Both rules take the form
`previous bit was
`code, mapping 1 bit to 2 bits. The MFM encoder can be
`represented in table form, as shown in Figure 8.
`State
`
`
`Code Data
`Data
`0
`1
`
`mappings
`
`0
`
`OO/A
`
`10/A
`NO
`1
`
`N1
`
`
`01/B 01/B
`Fig. 8. Encoder and decoder tables for MFM
`The columns labeled A and B describe the block codes for the
`two rules. Each entry
`in these columns also indicates the next
`i s t o be used t o encode
`encoder state, that is, the rule which
`the next bit.
`The MFM encoder is an example
`of a finite-state machine
`(FSM), with fixed length inputs and outputs. A FSM is simply
`a set of encoding rules which indicate how t o map input words
`to output words, and also define which
`encoding rule to use
`after each encoding operation. A
`FSM also has a graphical
`an important role
`in the later
`representation which will play
`discussion of code construction techniques. The nodes (states)
`in the graph correspond to columns
`in the encoder table, and
`the graph edges have labels "x/y" where x
`is an input word,
`1s the corresponding codeword. The labeled edges
`and y
`emanating from a state define the
`encoding rule, and the state
`in which an edge terminates indicates the state, or encoding
`rule, to use next. The FSM graph for MFM is shown in
`Figure 9.
`is particularly convenient
`The FSM encoder structure
`because it is quite easily implemented as a sequential logic
`network or ROM-based look-up table. Each encoder cycle
`encodes a single data bit into 2 code bits, which are a function
`of the data bit and the contents
`of a 1-bit state indicator
`register, and then updates the state indicator.
`Decoding is accomplished by grouping the code string into
`2-bit blocks and dropping the redundant first bit in each block.
`The decoding :able is shown in Figure 8 also. The symbol "N"
`represents a not care" bit position in which the a5tual bit
`Zalue does not affect
`decoding. For example, both
`10" and
`00" decode to "0". This block decoder ensures that error
`propagation is no more than 1 user bit.
`The MFM decoder is an example of a sliding blo;k decode:[
`which decodes a codeword by looking at a window
`containing the codeword and a finite number of preceeding and
`following codewords in the string. In the MFM case, the
`window only contains the codeword
`being decoded. One can
`think of such a decoder in terms of a sliding window that shifts
`d o n g the codestring one codeword a t a time, producing at each
`on the window
`shift a decoded data word, depending only
`contents. This structure ensures finite error propagation, since an
`erroneous codeword can only affect the decoding decisions
`while it is contained in the sliding
`window. A sliding block
`decoder is also conveniently implemented
`in a logic network,
`with the sliding block embodied in a shift register. Each MFM
`
`
`Page 3 of 6
`
`

`

`decoding cycle shifts 2 code bits into the register and generates
`a decoded data bit.
`
`01
`
`00
`
`Fig. 9. MFM encoder Fig. 10. G2 for (1,3) Fig. 11. Subgraph H
`
`-- Secpence ----- State C o d a
`Franaszek [l] introduced sequence state methods into the
`investigation of efficient constrained code construction. The
`t o build a FSM encoder in which the states
`essential idea is
`(encoding rules) correspond to the states in a FSTD
`by
`representation of the constraints. The codewords produced
`a particular encoding rule
`in the FSM must
`be generated by
`following paths through the FSTD which start at the
`corresponding state.
`We illustrate the sequence state methods by rederiving
`the FSM encoder for the MFM code. We begin with the FSTD
`for the (1,3) constraint, shown in Figure 3. Denote this graph
`by G. We want the FSM encoding rules t o map 1 bit to 2 bits,
`so an edge in the FSM graph should have a codeword label
`which is 2 bits long. Therefore, an edge in the FSM graph
`must correspond to a sequence of 2 edges in the FSTD, each of
`which had a 1 bit codeword label. With this in mind, we now
`G J , as a candidate for the underlying graph
`de ine the graph called the square of the FSTD G, and denoted
`of the FSM
`encoder. This is the FSTD which has the same states as G, but
`in which, each edge corresponds t o a consecutive pair of edges
`in G, and the edge label is the corresponding sequence of 2 edge
`is shown in Figure
`labels from G. The FSTD G2 for thi case
`G 1 had at least
`10. Note that
`if each state in
`2 edges
`emanating from it, we could construct an FSM encoder by
`simply assigning the input words "0" and "1" to two distinct
`edges from each state, discarding any excess edges.
`Here, though, G2 does not have this property. This can
`be seen f om Figure 10. It can also be seen by noting that the
`matrix TI, the matrix square
`of the state-transition matrix T
`for FSTD G, is the state-transition matrix for the FSTD
`G2.
`This matrix is:
`
`1 0 1 0
`1 1 0 1
`2
`T =
`1 1 0 0
`0 1 0 0
`
`j) can be seen to count the total
`The entry in (row i, column
`number of edges from state i to state j in G2. The row sum for
`each row must be a t least 2 if each state has at least 2 outgoing
`edges. Clearly the row sum for row 4 is only 1.
`H of
`However, we can observe that there is a subgraph
`G2 which does have the desired number of outgoing edges from
`each state. Namely, we eliminate state 4 and all
`edges which
`it Alternatively, we note that the submatrix
`enter or leave
`obtained from Ti by eliminating the last row and column has
`row sums exactly
`2. Input labels can now
`be assigned to the
`edges in the subgraph H to yield a FSM encoder structure,
`shown in Figure
`11. States 2 and 3 have the property that
`their outgoing edges are identical in terms of output labels and
`next states. In other words, they describe the same encoding
`rule. Tpey may
`be merged, therefore, into a single aggregate
`state, 2 . The outgoing edges from 2' are those common
`t o
`states 2 and 3, while the incoming edges are simply redirected
`to 2' from states 2 and 3. If we relabel state 1 as state B and
`state 2' as state A, the resulting FSM is exactly the FSM
`shown in Figure 9.
`is
`For the RLL (2,7) constraint, the Shannon capacity
`given by C=0.5172 ... If we try to construct a FSM encoder
`which encodes 1 bit into 2 bits, as we did with MFM above, we
`of the square of the standard
`find that there is no subgraph
`(2,7) FSTD with at least 2 outgoing edges from each state. We
`know from Shannon's result that a code is possible at rate 1 2,
`SO one strategy is to take higher powers of the graph, say G4m,
`and try to derive from it a FSM encoder in which one encodes
`A computer
`m input bits at a time into
`2m code bits.
`calculation of powers of the matrix T shows that the smallest
`value of m for which this is possible is m=17
`In the resulting
`FSM encoder, each state would require 2 l 7 outgoing edges.
`The table form
`of t e encoder would require a table
`of
`encoding rules, each 2 19 x34 bits in size!
`
`1347
`
`Code
`
`A 000100
`
`100100
`001000
`00100100
`00001 000
`
`D a t i
`
`001 0
`001 1
`
`Fig. 12. 'Variable-length (2.7) code
`
`In general, this
`used to construct
`techni ue can be
`efficient (d,k) codes, with h i t e error propagation. The
`drawback, as seen in the (2,7) example, is that the encoder and
`decoder implementations can still be very complex, involving
`long codewords and otentially large error propagation.
`Franaszek [5] round a considerably simpler code mapping
`by utilizing FSM structures with variable-length input words
`a detailed
`and codewords. Space limitations preclude
`discussion of the technique, but we will describe the 1/2 (2,7)
`code he constructed, as well as properties of the variable-length
`FSM codes generated by the method.
`The variable-length FSM encoder for the
`1/2 (2.7) code
`reduces t o a single state, yielding a variable-length block code
`as shown in Fi ure
`12. The codewords form a
`prefix-free list,
`that is, no wor8 is a prefix of another. This ensures that any
`concatenation of codewords has a unique decomposition into a
`string of codewords. In additign, Franaszek selected the
`codewords so that the patterns
`1000" and "0100" delimit
`
`
`
`
`
`codeword boundaries. These two properties ensure
`decodability with finite error propagation. The corresponding
`data word list is also prefix-free, and additionally has the
`fuU. This means that every semi-infinite
`property of being
`binary data string has a unique decomposition into input
`of data. It is interesting to
`words, guaranteeing encodability
`of a (2,7) encoder based
`note that the actual implementation
`on this variable-length code involved the translation of this
`code description into an equivalent fixed-length FSM encoder
`mapping 1 data bit to
`2 code bits during each encoding
`operation. The number
`of states used required a 4-bit state
`indicator memory. The decoder implementation took the form
`of a sliding block decoder, decoding 2 code bits into 1 data bit
`during each decoding operation. The sliding window was a
`of 8 code bits. The error propagation was
`shift register
`therefore no more than 4 data bits. [15].
`In general,' the variable-length
`sequence state coding
`with

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket