US8307267B2 - Programmable soft-output Viterbi algorithm system and method - Google Patents

Programmable soft-output Viterbi algorithm system and method Download PDF

Info

Publication number
US8307267B2
US8307267B2 US12/048,830 US4883008A US8307267B2 US 8307267 B2 US8307267 B2 US 8307267B2 US 4883008 A US4883008 A US 4883008A US 8307267 B2 US8307267 B2 US 8307267B2
Authority
US
United States
Prior art keywords
bits
channel
user
bit
postcoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US12/048,830
Other versions
US20090231745A1 (en
Inventor
Raman Venkataramani
Alexander Kuznetsov
Ara Patapoutian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Seagate Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Priority to US12/048,830 priority Critical patent/US8307267B2/en
Assigned to SEAGATE TECHNOLOGY LLC reassignment SEAGATE TECHNOLOGY LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PATAPOUTIAN, ARA, KUZNETSOV, ALEXANDER VASILIEVICH, VENKATARAMANI, RAMAN CHATAPURAM
Assigned to WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE, JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND FIRST PRIORITY REPRESENTATIVE reassignment WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE SECURITY AGREEMENT Assignors: MAXTOR CORPORATION, SEAGATE TECHNOLOGY INTERNATIONAL, SEAGATE TECHNOLOGY LLC
Publication of US20090231745A1 publication Critical patent/US20090231745A1/en
Assigned to SEAGATE TECHNOLOGY HDD HOLDINGS, SEAGATE TECHNOLOGY LLC, SEAGATE TECHNOLOGY INTERNATIONAL, MAXTOR CORPORATION reassignment SEAGATE TECHNOLOGY HDD HOLDINGS RELEASE Assignors: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Assigned to THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT reassignment THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT SECURITY AGREEMENT Assignors: SEAGATE TECHNOLOGY LLC
Publication of US8307267B2 publication Critical patent/US8307267B2/en
Application granted granted Critical
Assigned to SEAGATE TECHNOLOGY US HOLDINGS, INC., EVAULT INC. (F/K/A I365 INC.), SEAGATE TECHNOLOGY LLC, SEAGATE TECHNOLOGY INTERNATIONAL reassignment SEAGATE TECHNOLOGY US HOLDINGS, INC. TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Assignors: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SEAGATE SINGAPORE INTERNATIONAL HEADQUARTERS PTE. LTD., SEAGATE TECHNOLOGY LLC
Assigned to SEAGATE TECHNOLOGY PUBLIC LIMITED COMPANY, SEAGATE TECHNOLOGY LLC, SEAGATE TECHNOLOGY, SEAGATE HDD CAYMAN, SEAGATE TECHNOLOGY (US) HOLDINGS, INC., SEAGATE TECHNOLOGY HDD HOLDINGS, SEAGATE TECHNOLOGY INTERNATIONAL, I365 INC. reassignment SEAGATE TECHNOLOGY PUBLIC LIMITED COMPANY RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: THE BANK OF NOVA SCOTIA
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10268Improvement or modification of read or write signals bit detection or demodulation methods
    • G11B20/10287Improvement or modification of read or write signals bit detection or demodulation methods using probabilistic methods, e.g. maximum likelihood detectors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10268Improvement or modification of read or write signals bit detection or demodulation methods
    • G11B20/10287Improvement or modification of read or write signals bit detection or demodulation methods using probabilistic methods, e.g. maximum likelihood detectors
    • G11B20/10296Improvement or modification of read or write signals bit detection or demodulation methods using probabilistic methods, e.g. maximum likelihood detectors using the Viterbi algorithm
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Definitions

  • the present disclosure is generally related to a programmable soft-output Viterbi algorithm (SOVA) system and method.
  • SOVA programmable soft-output Viterbi algorithm
  • Such storage devices include data channel circuitry to facilitate the transfer of data between the storage device and a host system, such as a processor, a computer, other electronic circuitry, or any combination thereof.
  • a host system such as a processor, a computer, other electronic circuitry, or any combination thereof.
  • Such data channel circuitry typically utilizes data decoding circuitry and error correction circuitry to reliably reproduce data written to and read from a storage medium, such as a rotatable magnetic disc media.
  • the channel detector circuitry uses a soft-output Viterbi algorithm (SOVA) detector to estimate hard decisions associated with channel bits of the readback signal.
  • SOVA soft-output Viterbi algorithm
  • Channel preceding is a technique for improving bit and sector failure rates in the presence of correlated bit errors; however, conventional SOVA detectors are not adapted to work with channel precoding, since the SOVA detector cannot be used to compute reliabilities (soft decisions) related to original unprecoded bits directly from reliabilities of the channel bits determined by the conventional SOVA.
  • a channel detector includes a programmable look-up table (LUT) to relate user bits to channel bits.
  • the programmable LUT is adapted to be implemented on a state trellis of arbitrary radix.
  • the channel detector further includes a sectional precoder coupled to a channel and having access to the programmable LUT.
  • the sectional precoder is adapted to map channel bits to user bits and vice versa using a programmable LUT.
  • a method in another particular embodiment, includes mapping the user bits to channel bits via a programmable precoder during a write operation using a programmable look-up table (LUT) that is programmed to operating conditions associated with the channel.
  • the method further includes receiving readback samples from a channel having inter-symbol interference, decoding the readback samples using a soft-output channel detector, and determining user bit decisions and their reliabilities using an integrated postcoder map specified by the programmable LUT.
  • the method also includes outputting the determined user bit decisions.
  • a system in still another particular embodiment, includes an input to receive a signal including correlated noise and a channel detector coupled to the input.
  • the channel detector includes a memory to store precoder instructions and a precoder having access to the memory and adapted to map channel bits to user bits and vice versa based on the precoder instructions.
  • the channel detector further includes an inner decoder adapted to iteratively decode the channel bits into end-user data.
  • the channel detector further includes an output terminal to provide an output including the end-user data.
  • FIG. 1 is a block diagram of a particular illustrative embodiment of a system including a storage device having a read/write channel with a programmable precoder;
  • FIG. 2 is a block diagram of a particular illustrative embodiment of a system including a read channel having a programmable precoder;
  • FIG. 3 is a block diagram of a system including a portion of a read/write channel, such as the read/write channel of FIG. 1 , having a channel detector that includes a programmable precoder;
  • FIG. 4 is a diagram of a particular illustrative embodiment of a portion of a radix-4 trellis illustrating a mapping of user bits to channel bits;
  • FIG. 7 is a flow diagram of a particular illustrative embodiment of a method of decoding a readback signal in a channel having correlated noise using a programmable precoder outside of the SOVA detector;
  • FIG. 8 is a flow diagram of another particular embodiment of a method of decoding a readback signal in a channel having correlated noise using a programmable precoder inside of the SOVA detector.
  • FIG. 1 is a block diagram of a particular illustrative embodiment of a system 100 including a storage device 102 having a read/write channel 114 with a programmable precoder 116 .
  • the storage device 102 is adapted to communicate with a host system 104 .
  • the host system 102 can be a computer, a processor, a personal digital assistant (PDA), another electronic device, or any combination thereof.
  • PDA personal digital assistant
  • the storage device 102 includes recording subsystem circuitry 106 and a head-disc assembly 108 .
  • the recording subsystem circuitry 106 includes an interface circuit 110 , which includes a data buffer for temporarily buffering the data and a sequencer for directing the operation of the read/write channel 114 and the preamplifier 130 during data transfer operations.
  • the interface circuit 110 is coupled to the host system 104 and to a control processor 112 , which is adapted to control operation of the storage device 102 .
  • the control processor 112 is coupled to a servo circuit 118 that is adapted to control the position of one or more read/write heads 134 relative to one or more discs 136 as part of a servo loop established by the one or more read/write heads 134 .
  • the one or more read/write heads 134 are mounted to a rotary actuator assembly to which a coil 132 of a voice coil motor (VCM) is attached.
  • VCM voice coil motor
  • a VCM includes a pair of magnetic flux paths between which the coil 132 is disposed so that the passage of current through the coil causes magnetic interaction between the coil 132 and the magnetic flux paths, resulting in the controlled rotation of the actuator assembly and the movement of the one or more heads 134 relative to the surfaces of the one or more discs 136 .
  • the servo circuit 118 is used to control the application of current to the coil 132 , and hence the position of the heads 134 with respect to the tracks.
  • the control circuitry 106 further includes a spindle circuit 120 that is coupled to a spindle motor 138 to control the rotation of the one or more discs 136 .
  • the control circuitry 106 further includes programming and parameter values stored at a dynamic random access memory (DRAM) 122 , a non-volatile flash memory 124 , other memory 126 , or any combination thereof.
  • DRAM dynamic random access memory
  • the programmable precoder 116 may execute instructions retrieved from one of the non-volatile flash memory 124 or the other memory 126 .
  • the programmable precoder 116 may access a programmable look-up table (LUT) that is stored at one of the non-volatile flash memory 124 or the other memory 126 .
  • LUT programmable look-up table
  • the read/write channel 114 includes a programmable precoder 116 that is adapted to utilize a look-up table stored at the flash memory 124 , at the other memory 126 , or at a memory within the read/write channel 114 , such as a memory 326 illustrated in FIG. 3 .
  • the programmable precoder 116 is adapted to map user bits to channel bits using the look-up table.
  • the read/write channel 114 may also include a soft-output detector, such as a soft-output Viterbi algorithm (SOVA) detector that is adapted to calculate reliabilities of user bits and/or channel bits related to each other by the programmable precoder 116 .
  • SOVA soft-output Viterbi algorithm
  • FIG. 2 is a block diagram of a particular illustrative embodiment of a system 200 including a read channel 204 having a programmable precoder 226 .
  • the read channel 204 is coupled to a head-disc assembly 202 , which includes a storage medium, such as a magnetic disc 206 .
  • the head-disc assembly 202 further includes a read/write head 208 that is movable relative to the magnetic disc 206 to read and write data from and to the magnetic disc 206 .
  • the read/write head 208 is coupled to a preamplifier 210 , which is adapted to amplify a readback signal received from the read/write head 208 and to provide the readback signal to the read channel 204 .
  • the readback signal includes correlated noise, such as inter-symbol interference.
  • the read channel 204 includes a variable gain amplifier 212 that is coupled to the preamplifier 210 to receive the readback signal.
  • the variable gain amplifier 212 provides the readback signal to an analog-to-digital (A/D) converter 214 , which samples (digitizes) the readback signal.
  • a timing/gain control circuit 216 is coupled to the variable gain amplifier 212 and to the A/D converter 214 to control the gain of the variable gain amplifier 212 and a sample rate of the A/D converter 214 .
  • the output of the A/D converter 214 is provided to an equalizer 218 , which is adapted to perform time-domain equalization to filter the digitized readback signal to a pre-selected partial response, maximum likelihood detection (PRML) target waveform, for example.
  • PRML maximum likelihood detection
  • the output of the equalizer 218 is provided to a channel detector 220 , which convert the readback signal to user bits and provides the recovered user bits to a run-length limited (RLL) and/or error correction code (ECC) decoder 222 , which provides corrected user bit data at an output 224 .
  • the output may be coupled to a host system via an interface, such as the interface 110 illustrated in FIG. 1 .
  • the channel detector 220 includes a programmable precoder 226 to map channel bits to user bits and vice versa.
  • the programmable precoder 226 may be a look-up table that defines a bi-directional mapping between channel bits and user bits.
  • the programmable precoder 226 may be a processor adapted to execute instructions that control the programmable precoder 226 to map user bits to channel bits and vice versa.
  • the programmable precoder 226 can be implemented as a logic circuit with one or more selectable gates or switches that can be selectively activated to program the precoder 226 . In this particular instance, the logic circuit can be implemented without a microprocessor or a look-up table.
  • the channel detector 220 further includes one or more inner decoders and/or soft-output decoders 228 that receive the permuted coded user bits and their reliabilities from the SOVA detector 322 , which uses the mapping information from the programmable precoder 226 (such as a look-up table).
  • the inner decoders/soft-output decoders 228 are adapted to calculate a priori reliabilities of the user bits and to supply the a priori reliabilities back to the SOVA detector 322 .
  • the inner decoders/soft-output decoders 228 include a soft-output Viterbi algorithm (SOVA) decoder.
  • SOVA Soft-output Viterbi algorithm
  • FIG. 3 is a block diagram of a system 300 including a portion of a read/write channel, such as the read/write channel 114 of FIG. 1 , having a channel detector 302 that includes a programmable precoder 324 .
  • the channel detector 302 includes an input 314 to receive a signal including correlated noise, such as inter-symbol interference (ISI) from a signal source, such as a receiver circuit, a storage media, another source, or any combination thereof.
  • ISI inter-symbol interference
  • the received signal at the input 314 is a readback signal.
  • the channel detector 302 provides estimates of coded user bits and their reliabilities to a de-interleaver 304 , which provides a de-interleaved version of the coded user bits to a soft-input soft-output (SISO) inner decoder 306 , which is adapted to iteratively decode the signal and return decoded user bits via a feedback loop 312 .
  • the SISO inner decoder 306 provides the decoded data to the channel detector 302 via an interleaver 310 .
  • the SISO inner decoder 306 is adapted to utilize a message-passing algorithm (MPA) to decode the signal.
  • MPA message-passing algorithm
  • the SISO inner decoder 306 Upon completion of the decoding iterations, the SISO inner decoder 306 also provides decoded data to an output 316 via a threshold filter 308 .
  • the channel detector 302 includes a soft-output Viterbi algorithm (SOVA) detector 322 .
  • the channel detector 302 further includes a programmable precoder 324 and a memory 326 that is accessible to the programmable precoder 324 .
  • the memory 326 is adapted to store a look-up table (LUT), precoder instructions, or any combination thereof (generally designated as LUT/Instructions 328 ).
  • the programmable precoder 324 includes logic adapted to use the look-up table to map channel bits from a received signal to user bits and vice versa.
  • the programmable precoder 324 includes a processor and the LUT/Instructions 328 include instructions executable by the processor to receive a signal and to map channel bits of the received signal to user bits and vice versa.
  • the SOVA detector 322 is adapted to receive mapped user bits from the programmable precoder 324 and to decode the received signal using the mapped user bits using the LUT/instructions 328 .
  • the SOVA detector 322 is adapted to calculate reliabilities related to the user bits based on the received signal and to update reliabilities associated with the mapped user bits based on the calculated reliabilities.
  • the channel detector 302 receives a signal including correlated noise at the input 314 .
  • the correlated noise is inter-symbol interference (ISI), which is a form of distortion of a signal in which one symbol within a signal interferes with subsequent symbols (i.e., neighboring symbols).
  • ISI has a similar effect as noise, making readback data less reliable.
  • the channel detector 302 uses the programmable precoder 324 to reduce a raw bit error rate of the channel by reducing the number of errors (frequency of errors) associated with typical error events.
  • the programmable precoder 324 is adapted to map user bits from the received signal to channel bits using the LUT/instructions 328 .
  • the channel bits and user bits are provided to the SOVA decoder 322 and the SOVA decoder 322 makes hard bit decisions related to the mapped user bits and provides bit-level reliability data (such as log-likelihood ratios, LLRs).
  • the SOVA decoder 322 is adapted to compute reliabilities associated with the mapped bits from the programmable precoder 324 .
  • the channel detector 302 provides the mapped user bits and the LLRs to the SISO inner decoder 306 via the de-interleaver 304 .
  • the SISO inner decoder 306 uses an iterative message-passing algorithm (MPA) to decode the mapped user bits and the LLRs and to calculate hard bit decisions and reliability data.
  • MPA iterative message-passing algorithm
  • the SISO inner decoder 306 provides the hard bit decisions and the reliability data to the output 316 via the threshold filter 308 and provides the hard bit decisions to the channel detector 302 via the interleaver 310 .
  • the LUT/instructions 328 may include multiple look-up tables (LUTs), which may include data related to particular operating conditions associated with an electronic device.
  • the LUT/instructions 328 may include selection logic to allow the programmable precoder 324 to select a particular LUT of a plurality of programmable LUTs stored at the memory 326 based on one or more operating conditions of the electronic device.
  • the channel characteristics of a magnetic recording system such as a disc drive, can be dependent on the radial distance of the data track from the center of a rotating disc, such as the one or more discs 136 illustrated in FIG. 1 .
  • the programmable precoder 324 may include logic that is adapted to select a look-up table (LUT)/instructions 328 from a plurality of LUTs stored at the memory 326 based on a radial distance of the data track from the center of the disc.
  • LUT look-up table
  • the programmable precoder 324 can use operating conditions to tune its own performance.
  • the radial distance could be used to adaptively program the LUT/instructions 328 for use with the programmable precoder 324 and the SOVA detector 322 of the channel detector 302 .
  • each read/write head of a multi-platter disc drive may have an associated look-up table, and the programmable precoder 324 may map user bits to channel bits and vice versa using the selected LUT/instructions 328 set from the memory 326 that is particular to the read/write head.
  • the SOVA detector 322 uses a technique that is modified to compute reliabilities (soft decisions) associated with user bits directly, avoiding recalculation of the reliabilities of the user bits from the channel bits.
  • a SOVA algorithm may be summarized as follows: when two paths merge at any state during the course of the Viterbi decoding, the difference between the cumulative path-metrics between the survivor path and the non-survivor path determines reliabilities of channel bits associated with previous hard decisions.
  • the SOVA detector 322 updates the reliabilities of the user bits (rather than the channel bits) based on a path metric difference.
  • the channel detector 202 with the programmable precoder 324 and the SOVA decoder 322 using the modified SOVA technique provide an enhanced data detection, which can reduce bit rate errors in channels with correlated noise.
  • the programmable precoder 324 is a non-polynomial precoder, which can be represented in terms of a look-up table.
  • the programmable precoder 324 can map a group of L user bits to a corresponding group of L channel bits (and vice versa), depending on the previous M bits in the channel state.
  • the mapping defined by the LUT/instructions 328 is invertible conditioned on the original state of a branch in the trellis.
  • the programmable precoder 324 may be described by a look-up table (LUT) consisting of 2 M+L rows, where L represents a length (i.e., a number of bits to be mapped) and M represents a memory (i.e., a number of recent state bits).
  • L represents a length (i.e., a number of bits to be mapped)
  • M represents a memory (i.e., a number of recent state bits).
  • the programmable precoder 324 that is defined by such a LUT can be referred to as a sectional precoder of memory (M) and length (L).
  • mapping illustrated in TABLE 1 describes a non-polynomial, inverse precoder (postcoder) because the mapping defines a mapping from the channel bits to the user bits.
  • this particular form facilitates its integration with the SOVA detector 322 .
  • the the programmable precoder 324 utilizes a non-polynomial mapping that can outperform polynomial precoders by reducing a bit error rate (BER) for user bits.
  • the non-polynomial, programmable precoder 324 can be defined by a small programmable look-up table, such TABLE 1, which may be stored at the memory 326 as illustrated by LUT/instructions 328 .
  • the SOVA detector 322 computes the reliabilities of the user bits using the programmable look-up table (i.e., LUT/instructions 328 ) for the precoder mapping. It should be understood that additional columns may be added that relate to operating conditions to allow the programmable precoder 324 to select a particular set of rows within the table based on a correspondence to a particular operating condition.
  • a sectional (programmable) non-polynomial precoder is applied to magnetic recording channels.
  • the magnetic recording channels include a perpendicular recording channel.
  • the channel detector 200 uses a soft-output Viterbi algorithm (SOVA) detector that is optimized for the channel based on data-dependent noise-prediction (DDNP).
  • SOVA soft-output Viterbi algorithm
  • SNRs signal-to-noise ratios
  • Table 2 A precoder mapping table with a memory of 1 and a length of 3 for a magnetic recording channel at 60% jitter is illustrated in Table 2 below.
  • a precoder mapping table with a memory of 1 and a length of 3 for a magnetic recording channel at 90% jitter is illustrated in Table 3 below.
  • the programmable precoders 222 illustrated by the mappings of TABLES 2 and 3 are not equivalent to any polynomial precoder and provide up to approximately 0.15 dB gain in system performance compared to conventional polynomial precoders for magnetic recording channels.
  • the following discussion is restricted to the programmable precoders that are memoryless, which reduces complexity and renders the implementation tractable.
  • a mapping from channel bits to user bits for a memoryless, programmable precoder is illustrated in TABLES 4 and 5 below for magnetic recording channels having jitter at 60% and 90%, respectively.
  • a typically segment of the trellis consists of 2 ⁇ states at a time (n) where ⁇ represents the channel memory connected to 2 ⁇ states at time n+1, and two branches leaving/entering each state correspond to a value of an incoming channel bit.
  • represents the channel memory connected to 2 ⁇ states at time n+1
  • two branches leaving/entering each state correspond to a value of an incoming channel bit.
  • computations for Viterbi and SOVA algorithms take place at the baud rate.
  • the trellis can be implemented in terms of its radix-2 ⁇ form, where we combine ⁇ segments of the original trellis into a single segment.
  • a radix-2 ⁇ implementation there are 2 ⁇ branches leaving/entering each state (corresponding to ⁇ bits per state transition). As far as hard and soft outputs are concerned, both implementations are equivalent.
  • the SOVA decoder 322 can be used in conjunction with an arbitrary programmable precoder 324 specified by the LUT/instructions 328 .
  • the programmable precoder 324 may be programmed by updating the LUT/instructions 328 .
  • the programmable precoder 324 uses a mapping (LUT/instructions 328 ) having a section length (L) and memory (M) that is not more than a channel memory ( ⁇ ), i.e., M ⁇ .
  • L section length
  • M memory
  • channel memory
  • the branches are labeled according to the programmable precoder described by TABLE 1.
  • the radix-4 trellis 400 includes user bit labels (generally indicated in plain text) that can be found using the programmable lookup table given the (M) state variable bits and the channel bit label (generally indicated in bold and italics).
  • the (M) newest bits of the state variable and the (L) incoming channel bits uniquely determine the respective (L) user bits corresponding to any branch in the trellis.
  • the radix-4 trellis 400 includes four possible state values 402 , 404 , 406 , and 408 at a first bit state (S n ) and four possible state values 412 , 414 , 416 , and 418 at a second bit state (S n+1 ).
  • a branch computation metric uses the state and channel bit labels (such as 00, 01, 10, and 11, illustrated in bold and italics for channel bits and in plain text for user bits) as usual.
  • the SOVA detector such as the SOVA detector 322 illustrated in FIG. 3 , operates using the user bit labels assigned to each branch.
  • the SOVA detector computes metric differences, traces the multiple paths back to compare the user bits rather than the channel bits on all of the paths to assign/update reliabilities to the user bits.
  • the branch metric computation uses the state and channel bit label as usual.
  • LLR log-likelihood ratio
  • the signed LLR of a bit a m can be defined as follows:
  • ⁇ i ⁇ ( S n ) ⁇ i ⁇ ( S ) - min i ⁇ ⁇ i ⁇ ( S n ) ( Equation ⁇ ⁇ 2 )
  • the new hard decisions are represented as â m i *(S n ) and their associated log-likelihood ratios (LLRs) can be updated as follows.
  • all paths merge at a state (S n ).
  • Infinite reliabilities are assigned to those (newest) bits ⁇ a m :nL ⁇ m ⁇ nL+L ⁇ for which LLRs have not yet been assigned.
  • Equations 3 and 4 above perform max-log maximum a posteriori (MAP) decoding.
  • the LLR updates (Equations 3 and 4) need to be performed only on successfully decoded L-bit blocks of user bits.
  • the LLR updates for incomplete blocks are postponed to a future trellis state when the complete L-bit block is received.
  • ⁇ ⁇ ( S n - 1 , S n ) 1 2 ⁇ ( ⁇ y 2 ⁇ n - 3 ⁇ x 2 ⁇ n - 2 ⁇ x 2 ⁇ n - 1 - x 2 ⁇ n - 2 ⁇ 2 + ⁇ y 2 ⁇ n + 1 - 3 ⁇ x 2 ⁇ n + 1 - 2 ⁇ x 2 ⁇ n - x 2 ⁇ n - 1 ⁇ 2 ) ( Equation ⁇ ⁇ 6 )
  • the trellis 500 includes four bit-state values 00, 01, 10, and 11 at first, second, third, and fourth states (S ⁇ 1 , S 0 , S 1 , and S 2 ).
  • the trellis 500 includes a first bit-state value (00) 502 , a second bit-state value (01) 504 , a third bit-state value (10) 506 , and a fourth bit-state value (11) 508 .
  • the trellis 500 includes a first bit-state value (00) 512 , a second bit-state value (01) 514 , a third bit-state value (10) 516 , and a fourth bit-state value (11) 518 .
  • the trellis 500 includes a first bit-state value (00) 522 , a second bit-state value (01) 524 , a third bit-state value (10) 526 , and a fourth bit-state value (11) 528 .
  • the trellis 500 includes a first bit-state value (00) 532 , a second bit-state value (01) 534 , a third bit-state value (10) 536 , and a fourth bit-state value (11) 538 .
  • the initial state of the radix-4 trellis 500 is indicated at a first state (S ⁇ 1 ) is at a first bit-state value (00) 502 .
  • y 0 ⁇ 3, 5, 3, 4, 2, 1, . . . ⁇
  • an initial state metric of 0 can be assigned to the first state (S ⁇ 1 ), such that the selected bit-state at the first state (S ⁇ 1 ) is the first bit-state value (00) 502 .
  • An infinite metric is assigned to all of the second, third, and fourth bit-state values (01, 10, and 11) 504 , 506 , and 508 of the first state (S ⁇ 1 ).
  • the six decisions are error free.
  • the channel bit decisions are readily determined using the postcoder look-up table.
  • the postcoder map is an inverse of a precoder map defined in a precoder look-up table.
  • reliabilities can be calculated for each of the first, second, third, and fourth bit-value states 522 , 524 , 526 , and 528 , respectively.
  • the Viterbi path is illustrated as a solid line converging from the bit-state value (11) 518 at the second state (S 0 ).
  • the user bit labels corresponding to each of the branches are shown.
  • the user bit labels can be obtained from the programmable look-up table based on the incoming channel bits and a newest bit of origin state. Observe that the user bit labels on all incoming branches at the second bit-state value (01) 524 can be different, unlike the channel bit labels, which are the same on all incoming branches.
  • TABLE 6 illustrates the four merging paths in a decreasing order of likelihood and the path metric difference ( ⁇ ) relative to the survivor path.
  • the most likely path for which a 0 has a different decision is P 2 .
  • those paths are P 2 and P 3 , respectively.
  • all four paths (P 1 , P 2 , P 3 , and P 4 ) have the same decision for a 3 , rendering the hard decision on the a 3 bit completely reliable (with infinite LLR).
  • LLRs log-likelihood ratios
  • the signed LLRs can be obtained as follows:
  • the signed LLRs obtained from Equation 7 as it relates to the first, second, third, and fourth bit-state values (00, 01, 10, 11) 522 , 524 , 526 , and 528 at the third bit state (S 1 ) is shown in TABLE 7.
  • FIG. 6 is a diagram of still another particular illustrative embodiment of a radix 4-trellis 600 illustrating four state paths merging at a fourth bit state (S 2 ) having a bit-state value (00) 632 .
  • the trellis includes a first bit state (S ⁇ 1 ), a second bit state (S 0 ), a third bit state (S 1 ) and the fourth bit state (S 2 ).
  • Each of the first, second, third and fourth bit states have four possible bit-state values.
  • the first bit state (S ⁇ 1 ) includes a first bit-state value (00) 602 , a second bit-state value (01) 604 , a third bit-state value (10) 606 , and a fourth bit-state value (11) 608 .
  • the second bit state (S 0 ) includes a first bit-state value (00) 612 , a second bit-state value (01) 614 , a third bit-state value (10) 616 , and a fourth bit-state value (11) 618 .
  • the third bit state (S 1 ) includes a first bit-state value (00) 622 , a second bit-state value (01) 624 , a third bit-state value (10) 626 , and a fourth bit-state value (11) 628 .
  • the fourth bit state (S 2 ) includes a first bit-state value (00) 632 , a second bit-state value (01) 634 , a third bit-state value (10) 636 , and a fourth bit-state value (11) 638 .
  • the radix-4 trellis 600 illustrated in FIG. 6 corresponds to the radix-4 trellis 500 illustrated in FIG. 5 , but the numbers are incremented to correspond to the figure number.
  • TABLE 8 illustrates temporary hard decisions in decreasing order of likelihood for the bit-state value (00) 632 .
  • the LLRs of the previous bits (a 0 , . . . , a 3 ) are updated according to Equations 3 and 4, above.
  • L 0 ( S 2 ) ⁇ min ⁇ 2.342,2.342+5.444,4.319+6.465,1.319+6.909 ⁇ ⁇ 2.342
  • L 1 ( S 2 ) ⁇ min ⁇ 2.342,2.342+5.444,6.465,6.909 ⁇ 2.342
  • L 2 ( S 2 ) ⁇ min ⁇ 3.023,5.444,4.319+6.465, ⁇ +6.909 ⁇ ⁇ 3.023
  • L 3 ( S 2 ) ⁇ min ⁇ ,6.022+5.444,6.465,1.319+6.909 ⁇ ⁇ 6.465
  • a path metric for a first path P 1 from the first bit-state value (00) 622 of the third state (S 1 ) to the first bit-state value (00) 632 of the fourth state (S 2 ) is 6.976.
  • the path metric for a second path P 2 from the second bit-state value (01) 624 of the third state (S 1 ) to the first bit-state value (00) 632 of the fourth state (S 2 ) is 1.532.
  • the path metric for a third path P 3 from the third bit-state value (10) 626 of the third state (S 1 ) to the first bit-state value (00) 632 of the fourth state (S 2 ) is 8.441.
  • the path metric for a fourth path P 4 from the fourth bit-state value (11) 628 of the third state (S 1 ) to the first bit-state value (00) 632 of the fourth state (S 2 ) is 7.997.
  • a path metric difference ( ⁇ ) can be calculated to update the log-likelihood ratios (LLRs).
  • preceding improves the performance of a communication system that has correlated channel bit errors, such as bit errors in a magnetic recording system, by lowering the raw bit error rate (BER) as seen by the error correction coding (ECC) and/or run-length limited (RLL) decoder.
  • a programmable precoder can be represented by a look-up table to map user bits to channel bits and vice versa.
  • the programmable precoder can be a polynomial or a non-polynomial precoder. While such preceding can be simple, the programmable precoder allows the read channel to be tuned or programmed for a particular channel. Further, postcoding at the decoder side can be performed jointly with the SOVA detector to enhance performance of the system.
  • sectional non-polynomial preceding represents a viable technique to improve system performance at a channel decoder.
  • a sectional non-polynomial precoder can be efficiently stored in a programmable lookup table and can be used in connection with a soft-output Viterbi algorithm (SOVA) detector or other soft-output detectors to achieve significant gains relative to the best polynomial precoders for the magnetic recording channels.
  • SOVA Soft-output Viterbi algorithm
  • the sectional non-polynomial precoder can be used to de-correlate channel bit errors and improving overall performance.
  • reliabilities may be computed directly for user bits, instead of sub-optimally post-processing channel bit reliabilities. In channels that have inter-symbol interference or other characteristics, direct computation of reliabilities for the user bits improves the performance of the decoder.
  • arbitrary precoders with a section length (L) can be integrated with a radix-2 ⁇ Viterbi trellis implementation.
  • the SOVA detector can be hardwired for a single precoder, such as 1/(1+D) polynomial precoder or for a specific mapping table.
  • the programmable precoder can be tuned or adjusted for a particular channel, for particular operating conditions (such as a signal-to-noise ratio, transition noise levels, and/or other noise), or any combination thereof.
  • the programmable precoder used in connection with a SOVA detector renders the SOVA detector programmable, allowing the channel detector to be readily adapted to different channels by simply optimizing the precoder mapping table.
  • mapping table that is specific to a particular read/write head, a particular disc, a portion of a recording media, or any combination thereof.
  • the channel is known to have spatially-varying correlated noise, it is possible to store the optimal mapping tables for each zone on the recording surface.
  • the channel characteristics in a magnetic recording system are dependent on the radial distance of the data track from the center.
  • the precoder logic may select a mapping table from a plurality of mapping tables based on a radial distance of the data track from the center for the purpose of mapping user bits to channel bits and vice versa.
  • the radial distance could be used to adaptively program a look-up table for use with a precoder and a SOVA detector.
  • FIG. 7 is a flow diagram of a particular illustrative embodiment of a method of decoding a channel having correlated noise.
  • user bits are mapped to channel bits via a programmable precoder during a write operation using a programmable look-up table (LUT) that is programmed to operating conditions associated with the channel.
  • LUT programmable look-up table
  • the programmable precoder includes a processor and a memory accessible to the processor. The memory stores instructions executable by the processor to access instructions to map the user bits to the channel bits according to the programmable LUT.
  • readback samples are received from a channel having inter-symbol interference.
  • the readback samples are decoded using a soft-output channel detector.
  • the soft-output channel detector includes a high radix trellis and a sectional precoder.
  • user bit decisions and their reliabilities are determined using an integrated postcoder map specified by the programmable LUT.
  • user bit decisions are determined by providing the readback signal to a soft-output Viterbi algorithm (SOVA) detector that includes the integrated postcoder map.
  • SOVA Soft-output Viterbi algorithm
  • the integrated post coder map is used to map the channel bits to user bits to make user bit decisions. Proceeding to 710 , the determined user bit decisions are output. The method terminates at 712 . In a particular embodiment, the method also includes error correction coding the output to produce a corrected output.
  • FIG. 8 is a flow diagram of another particular embodiment of a method of decoding a channel having correlated channel bit errors.
  • precoder logic of an electronic device selects a programmable LUT from a plurality of programmable LUTs based on operating conditions associated with a channel, where the plurality of programmable LUTs stored at a memory of the electronic device, and where the selected programmable LUT is adapted to map user bits to channel bits and vice versa.
  • the precoder logic can be adapted to receive servo control data associated with a radial position of the read/write head relative to a center of a disc platter of a disc drive and to select a particular programmable LUT based on the radial position.
  • the precoder logic can be adapted to select a particular programmable LUT that is associated with a particular data source, such as a particular read/write head.
  • a particular data source such as a particular read/write head.
  • each of the read/write heads of a storage device may have its own LUT that can be selectively activated to map user bits to channel bits and vice versa based on the source read/write head for the particular readback signal.
  • user bits are mapped to channel bits via the selected programmable precoder during a write operation using the selected programmable LUT.
  • readback samples are received from the channel, where the channel includes correlated noise, such as inter-symbol interference.
  • the readback samples are decoded using a soft-output Viterbi algorithm (SOVA) detector that is adapted to determine reliabilities based on user bits using a postcoder based on the selected programmable LUT.
  • SOVA detector includes a high radix trellis and is adapted to communicate with a sectional precoder. Proceeding to 810 , the determined user bit decisions are output. The method terminates at 812 .
  • the programmable precoder may be used with other detectors as well, provided the detectors are adapted for use with the programmable precoder.
  • reliability data calculated from the outputs of the precoder can be based on an inverse mapping to the readback data that is derived from the LUT, rather than calculating reliabilities from the determined channel information.
  • the soft-output Viterbi detector which is described with respect to FIGS. 1-8 above, works with an arbitrary radix trellis implementation and is not limited to a precoder section length.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

In a particular embodiment, a channel detector is disclosed that includes a programmable look-up table (LUT) to relate user bits to channel bits. The programmable LUT is adapted to be implemented on a state trellis of arbitrary radix. The channel detector further includes a sectional precoder coupled to a channel and having access to the programmable LUT. The sectional precoder is adapted to map channel bits to user bits and vice versa using a programmable LUT.

Description

FIELD OF THE DISCLOSURE
The present disclosure is generally related to a programmable soft-output Viterbi algorithm (SOVA) system and method.
BACKGROUND
In general, modern electronic devices utilize storage devices, such as hard disc drives, to store vast amounts of data. As electronic devices have become smaller, data storage devices have been designed to store more data in less area. Typically, such storage devices include data channel circuitry to facilitate the transfer of data between the storage device and a host system, such as a processor, a computer, other electronic circuitry, or any combination thereof. Such data channel circuitry typically utilizes data decoding circuitry and error correction circuitry to reliably reproduce data written to and read from a storage medium, such as a rotatable magnetic disc media.
Within data detection circuits, the use of low-density parity check (LDPC) codes and iterative decoding is becoming commonplace in today's magnetic recording systems. In some instances, the channel detector circuitry uses a soft-output Viterbi algorithm (SOVA) detector to estimate hard decisions associated with channel bits of the readback signal. However, correlated bit errors in the detected output can adversely impact the efficiency of the SOVA detector.
Channel preceding is a technique for improving bit and sector failure rates in the presence of correlated bit errors; however, conventional SOVA detectors are not adapted to work with channel precoding, since the SOVA detector cannot be used to compute reliabilities (soft decisions) related to original unprecoded bits directly from reliabilities of the channel bits determined by the conventional SOVA.
SUMMARY
In a particular embodiment, a channel detector includes a programmable look-up table (LUT) to relate user bits to channel bits. The programmable LUT is adapted to be implemented on a state trellis of arbitrary radix. The channel detector further includes a sectional precoder coupled to a channel and having access to the programmable LUT. The sectional precoder is adapted to map channel bits to user bits and vice versa using a programmable LUT.
In another particular embodiment, a method is disclosed that includes mapping the user bits to channel bits via a programmable precoder during a write operation using a programmable look-up table (LUT) that is programmed to operating conditions associated with the channel. The method further includes receiving readback samples from a channel having inter-symbol interference, decoding the readback samples using a soft-output channel detector, and determining user bit decisions and their reliabilities using an integrated postcoder map specified by the programmable LUT. The method also includes outputting the determined user bit decisions.
In still another particular embodiment, a system includes an input to receive a signal including correlated noise and a channel detector coupled to the input. The channel detector includes a memory to store precoder instructions and a precoder having access to the memory and adapted to map channel bits to user bits and vice versa based on the precoder instructions. The channel detector further includes an inner decoder adapted to iteratively decode the channel bits into end-user data. The channel detector further includes an output terminal to provide an output including the end-user data.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a particular illustrative embodiment of a system including a storage device having a read/write channel with a programmable precoder;
FIG. 2 is a block diagram of a particular illustrative embodiment of a system including a read channel having a programmable precoder;
FIG. 3 is a block diagram of a system including a portion of a read/write channel, such as the read/write channel of FIG. 1, having a channel detector that includes a programmable precoder;
FIG. 4 is a diagram of a particular illustrative embodiment of a portion of a radix-4 trellis illustrating a mapping of user bits to channel bits;
FIG. 5 is a diagram of another particular illustrative embodiment of a portion of a radix-4 trellis illustrating four state paths merging at a state (S1=01);
FIG. 6 is a diagram of still another particular illustrative embodiment of a portion of a radix 4-trellis illustrating four state paths merging at a state (S2=00);
FIG. 7 is a flow diagram of a particular illustrative embodiment of a method of decoding a readback signal in a channel having correlated noise using a programmable precoder outside of the SOVA detector; and
FIG. 8 is a flow diagram of another particular embodiment of a method of decoding a readback signal in a channel having correlated noise using a programmable precoder inside of the SOVA detector.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
FIG. 1 is a block diagram of a particular illustrative embodiment of a system 100 including a storage device 102 having a read/write channel 114 with a programmable precoder 116. The storage device 102 is adapted to communicate with a host system 104. In a particular embodiment, the host system 102 can be a computer, a processor, a personal digital assistant (PDA), another electronic device, or any combination thereof.
The storage device 102 includes recording subsystem circuitry 106 and a head-disc assembly 108. The recording subsystem circuitry 106 includes an interface circuit 110, which includes a data buffer for temporarily buffering the data and a sequencer for directing the operation of the read/write channel 114 and the preamplifier 130 during data transfer operations. The interface circuit 110 is coupled to the host system 104 and to a control processor 112, which is adapted to control operation of the storage device 102. The control processor 112 is coupled to a servo circuit 118 that is adapted to control the position of one or more read/write heads 134 relative to one or more discs 136 as part of a servo loop established by the one or more read/write heads 134. Generally, the one or more read/write heads 134 are mounted to a rotary actuator assembly to which a coil 132 of a voice coil motor (VCM) is attached. As is known in the art, a VCM includes a pair of magnetic flux paths between which the coil 132 is disposed so that the passage of current through the coil causes magnetic interaction between the coil 132 and the magnetic flux paths, resulting in the controlled rotation of the actuator assembly and the movement of the one or more heads 134 relative to the surfaces of the one or more discs 136. The servo circuit 118 is used to control the application of current to the coil 132, and hence the position of the heads 134 with respect to the tracks.
The control circuitry 106 further includes a spindle circuit 120 that is coupled to a spindle motor 138 to control the rotation of the one or more discs 136. The control circuitry 106 further includes programming and parameter values stored at a dynamic random access memory (DRAM) 122, a non-volatile flash memory 124, other memory 126, or any combination thereof. In a particular embodiment, the programmable precoder 116 may execute instructions retrieved from one of the non-volatile flash memory 124 or the other memory 126. In another particular embodiment, the programmable precoder 116 may access a programmable look-up table (LUT) that is stored at one of the non-volatile flash memory 124 or the other memory 126.
In a particular example, the read/write channel 114 includes a programmable precoder 116 that is adapted to utilize a look-up table stored at the flash memory 124, at the other memory 126, or at a memory within the read/write channel 114, such as a memory 326 illustrated in FIG. 3. The programmable precoder 116 is adapted to map user bits to channel bits using the look-up table. In a particular embodiment, the read/write channel 114 may also include a soft-output detector, such as a soft-output Viterbi algorithm (SOVA) detector that is adapted to calculate reliabilities of user bits and/or channel bits related to each other by the programmable precoder 116.
FIG. 2 is a block diagram of a particular illustrative embodiment of a system 200 including a read channel 204 having a programmable precoder 226. The read channel 204 is coupled to a head-disc assembly 202, which includes a storage medium, such as a magnetic disc 206. The head-disc assembly 202 further includes a read/write head 208 that is movable relative to the magnetic disc 206 to read and write data from and to the magnetic disc 206. The read/write head 208 is coupled to a preamplifier 210, which is adapted to amplify a readback signal received from the read/write head 208 and to provide the readback signal to the read channel 204. In a particular embodiment, the readback signal includes correlated noise, such as inter-symbol interference.
The read channel 204 includes a variable gain amplifier 212 that is coupled to the preamplifier 210 to receive the readback signal. The variable gain amplifier 212 provides the readback signal to an analog-to-digital (A/D) converter 214, which samples (digitizes) the readback signal. A timing/gain control circuit 216 is coupled to the variable gain amplifier 212 and to the A/D converter 214 to control the gain of the variable gain amplifier 212 and a sample rate of the A/D converter 214. The output of the A/D converter 214 is provided to an equalizer 218, which is adapted to perform time-domain equalization to filter the digitized readback signal to a pre-selected partial response, maximum likelihood detection (PRML) target waveform, for example. The output of the equalizer 218 is provided to a channel detector 220, which convert the readback signal to user bits and provides the recovered user bits to a run-length limited (RLL) and/or error correction code (ECC) decoder 222, which provides corrected user bit data at an output 224. The output may be coupled to a host system via an interface, such as the interface 110 illustrated in FIG. 1.
The channel detector 220 includes a programmable precoder 226 to map channel bits to user bits and vice versa. In a particular embodiment, the programmable precoder 226 may be a look-up table that defines a bi-directional mapping between channel bits and user bits. In another particular embodiment, the programmable precoder 226 may be a processor adapted to execute instructions that control the programmable precoder 226 to map user bits to channel bits and vice versa. In another particular example, the programmable precoder 226 can be implemented as a logic circuit with one or more selectable gates or switches that can be selectively activated to program the precoder 226. In this particular instance, the logic circuit can be implemented without a microprocessor or a look-up table.
The channel detector 220 further includes one or more inner decoders and/or soft-output decoders 228 that receive the permuted coded user bits and their reliabilities from the SOVA detector 322, which uses the mapping information from the programmable precoder 226 (such as a look-up table). In a particular example, the inner decoders/soft-output decoders 228 are adapted to calculate a priori reliabilities of the user bits and to supply the a priori reliabilities back to the SOVA detector 322. In a particular embodiment, the inner decoders/soft-output decoders 228 include a soft-output Viterbi algorithm (SOVA) decoder.
FIG. 3 is a block diagram of a system 300 including a portion of a read/write channel, such as the read/write channel 114 of FIG. 1, having a channel detector 302 that includes a programmable precoder 324. The channel detector 302 includes an input 314 to receive a signal including correlated noise, such as inter-symbol interference (ISI) from a signal source, such as a receiver circuit, a storage media, another source, or any combination thereof. In a particular example, the received signal at the input 314 is a readback signal. The channel detector 302 provides estimates of coded user bits and their reliabilities to a de-interleaver 304, which provides a de-interleaved version of the coded user bits to a soft-input soft-output (SISO) inner decoder 306, which is adapted to iteratively decode the signal and return decoded user bits via a feedback loop 312. The SISO inner decoder 306 provides the decoded data to the channel detector 302 via an interleaver 310. In a particular embodiment, the SISO inner decoder 306 is adapted to utilize a message-passing algorithm (MPA) to decode the signal. Upon completion of the decoding iterations, the SISO inner decoder 306 also provides decoded data to an output 316 via a threshold filter 308.
The channel detector 302 includes a soft-output Viterbi algorithm (SOVA) detector 322. The channel detector 302 further includes a programmable precoder 324 and a memory 326 that is accessible to the programmable precoder 324. The memory 326 is adapted to store a look-up table (LUT), precoder instructions, or any combination thereof (generally designated as LUT/Instructions 328). In a particular example, the programmable precoder 324 includes logic adapted to use the look-up table to map channel bits from a received signal to user bits and vice versa. In another particular example, the programmable precoder 324 includes a processor and the LUT/Instructions 328 include instructions executable by the processor to receive a signal and to map channel bits of the received signal to user bits and vice versa. The SOVA detector 322 is adapted to receive mapped user bits from the programmable precoder 324 and to decode the received signal using the mapped user bits using the LUT/instructions 328. In a particular example, the SOVA detector 322 is adapted to calculate reliabilities related to the user bits based on the received signal and to update reliabilities associated with the mapped user bits based on the calculated reliabilities.
In a particular embodiment, the channel detector 302 receives a signal including correlated noise at the input 314. In a particular example, the correlated noise is inter-symbol interference (ISI), which is a form of distortion of a signal in which one symbol within a signal interferes with subsequent symbols (i.e., neighboring symbols). In general, ISI has a similar effect as noise, making readback data less reliable. The channel detector 302 uses the programmable precoder 324 to reduce a raw bit error rate of the channel by reducing the number of errors (frequency of errors) associated with typical error events. In a particular example, the programmable precoder 324 is adapted to map user bits from the received signal to channel bits using the LUT/instructions 328. The channel bits and user bits are provided to the SOVA decoder 322 and the SOVA decoder 322 makes hard bit decisions related to the mapped user bits and provides bit-level reliability data (such as log-likelihood ratios, LLRs). The SOVA decoder 322 is adapted to compute reliabilities associated with the mapped bits from the programmable precoder 324.
The channel detector 302 provides the mapped user bits and the LLRs to the SISO inner decoder 306 via the de-interleaver 304. The SISO inner decoder 306 uses an iterative message-passing algorithm (MPA) to decode the mapped user bits and the LLRs and to calculate hard bit decisions and reliability data. The SISO inner decoder 306 provides the hard bit decisions and the reliability data to the output 316 via the threshold filter 308 and provides the hard bit decisions to the channel detector 302 via the interleaver 310.
In a particular example, the LUT/instructions 328 may include multiple look-up tables (LUTs), which may include data related to particular operating conditions associated with an electronic device. For example, the LUT/instructions 328 may include selection logic to allow the programmable precoder 324 to select a particular LUT of a plurality of programmable LUTs stored at the memory 326 based on one or more operating conditions of the electronic device. For example, the channel characteristics of a magnetic recording system, such as a disc drive, can be dependent on the radial distance of the data track from the center of a rotating disc, such as the one or more discs 136 illustrated in FIG. 1. In a particular example, the programmable precoder 324 may include logic that is adapted to select a look-up table (LUT)/instructions 328 from a plurality of LUTs stored at the memory 326 based on a radial distance of the data track from the center of the disc. By selecting a desired LUT based on the operating condition, the programmable precoder 324 can use operating conditions to tune its own performance. Moreover, in a particular example, the radial distance could be used to adaptively program the LUT/instructions 328 for use with the programmable precoder 324 and the SOVA detector 322 of the channel detector 302. In a particular example, each read/write head of a multi-platter disc drive may have an associated look-up table, and the programmable precoder 324 may map user bits to channel bits and vice versa using the selected LUT/instructions 328 set from the memory 326 that is particular to the read/write head.
In a particular embodiment, the SOVA detector 322 uses a technique that is modified to compute reliabilities (soft decisions) associated with user bits directly, avoiding recalculation of the reliabilities of the user bits from the channel bits. Conventionally, a SOVA algorithm may be summarized as follows: when two paths merge at any state during the course of the Viterbi decoding, the difference between the cumulative path-metrics between the survivor path and the non-survivor path determines reliabilities of channel bits associated with previous hard decisions. At the SOVA detector 322, when two paths merge at any state of a trellis, the SOVA detector 322 updates the reliabilities of the user bits (rather than the channel bits) based on a path metric difference. The channel detector 202 with the programmable precoder 324 and the SOVA decoder 322 using the modified SOVA technique (described in detail below) provide an enhanced data detection, which can reduce bit rate errors in channels with correlated noise.
In a particular embodiment, the programmable precoder 324 is a non-polynomial precoder, which can be represented in terms of a look-up table. The programmable precoder 324 can map a group of L user bits to a corresponding group of L channel bits (and vice versa), depending on the previous M bits in the channel state. In a particular example, the mapping defined by the LUT/instructions 328 is invertible conditioned on the original state of a branch in the trellis. In this example, the programmable precoder 324 may be described by a look-up table (LUT) consisting of 2M+L rows, where L represents a length (i.e., a number of bits to be mapped) and M represents a memory (i.e., a number of recent state bits). The programmable precoder 324 that is defined by such a LUT can be referred to as a sectional precoder of memory (M) and length (L). An example of a precoder defined by a look-up table (LUT) of memory (M=1) and length (L=2) is illustrated below in TABLE 1.
TABLE 1
Mapping for an example precoder having a memory (M = 1) and
length (L = 2).
State bit (x2n−1) Channel bits (x2n, x2n+1) User bits (a2n, a2n+1)
0 00 00
0 01 01
0 10 11
0 11 10
1 00 01
1 01 11
1 10 10
1 11 00
The mapping illustrated in TABLE 1 describes a non-polynomial, inverse precoder (postcoder) because the mapping defines a mapping from the channel bits to the user bits. However, this particular form facilitates its integration with the SOVA detector 322.
While polynomial precoders are known and are simple to implement, the the programmable precoder 324 utilizes a non-polynomial mapping that can outperform polynomial precoders by reducing a bit error rate (BER) for user bits. The non-polynomial, programmable precoder 324 can be defined by a small programmable look-up table, such TABLE 1, which may be stored at the memory 326 as illustrated by LUT/instructions 328. In a particular example, the SOVA detector 322 computes the reliabilities of the user bits using the programmable look-up table (i.e., LUT/instructions 328) for the precoder mapping. It should be understood that additional columns may be added that relate to operating conditions to allow the programmable precoder 324 to select a particular set of rows within the table based on a correspondence to a particular operating condition.
In a particular example, a sectional (programmable) non-polynomial precoder is applied to magnetic recording channels. In this example, the magnetic recording channels include a perpendicular recording channel. The channel detector 200 uses a soft-output Viterbi algorithm (SOVA) detector that is optimized for the channel based on data-dependent noise-prediction (DDNP).
In a particular example, testing reveals that a programmable precoder 222 with a memory (M=1) and a length (L=3) can be used in connection with the SOVA detector for signals at 60% and 90% jitter and for signal-to-noise ratios (SNRs) in the range from 20 dB to 24 dB. A precoder mapping table with a memory of 1 and a length of 3 for a magnetic recording channel at 60% jitter is illustrated in Table 2 below.
TABLE 2
Mapping for an example precoder (M = 1, L = 3) at 60% jitter
Channel bits User bits
State bit (x3n−1) (x3n, x3n+1, x3n+2) (a3n, a3n+1, a3n+2)
0 or 1 000 000
0 or 1 001 001
0 or 1 010 100
0 or 1 011 010
0 or 1 100 111
0 or 1 101 011
0 or 1 110 110
0 or 1 111 101
A precoder mapping table with a memory of 1 and a length of 3 for a magnetic recording channel at 90% jitter is illustrated in Table 3 below.
TABLE 3
Mapping for an example precoder (M = 1, L = 3) at 90% jitter.
Channel bits User bits
State bit (x3n−1) (x3n, x3n+1, x3n+2) (a3n, a3n+1, a3n+2)
0 or 1 000 000
0 or 1 001 001
0 or 1 010 100
0 or 1 011 101
0 or 1 100 111
0 or 1 101 011
0 or 1 110 110
0 or 1 111 010
In a particular example, at length (L=3), a desired mapping for a programmable precoder 324, such as the precoders illustrated by the look-up tables illustrated in TABLES 2 and 3 may be memoryless (i.e., M=0), which simplifies the look-up tables. In another particular example, the programmable precoders 222 illustrated by the mappings of TABLES 2 and 3 are not equivalent to any polynomial precoder and provide up to approximately 0.15 dB gain in system performance compared to conventional polynomial precoders for magnetic recording channels.
In another particular example, the programmable precoder 324 can be implemented as a sectional precoder with a memory (M=0) and a length (L=4). For clarity, the following discussion is restricted to the programmable precoders that are memoryless, which reduces complexity and renders the implementation tractable. A mapping from channel bits to user bits for a memoryless, programmable precoder is illustrated in TABLES 4 and 5 below for magnetic recording channels having jitter at 60% and 90%, respectively.
TABLE 4
Mapping for an example precoder (M = 0, L = 4) at 60% jitter.
Channel bits User bits
(x4n, x4n+1, x4n+2, x4n+3) (a4n, a4n+1, a4n+2, a4n+3)
0000 0000
0001 0001
0010 0011
0011 0010
0100 1011
0101 0111
0110 1101
0111 0100
1000 1001
1001 0101
1010 1111
1011 0110
1100 1010
1101 1110
1110 1100
1111 1000
TABLE 5
Mapping for an example precoder (M = 0, L = 4) at 90% jitter.
Channel bits User bits
(x4n, x4n+1, x4n+2, x4n+3) (a4n, a4n+1, a4n+2, a4n+3)
0000 0000
0001 0001
0010 0111
0011 0101
0100 0010
0101 0011
0110 0110
0111 0100
1000 1000
1001 1001
1010 1111
1011 1101
1100 1010
1101 1011
1110 1110
1111 1100
It should be understood that a typically segment of the trellis consists of 2μ states at a time (n) where μ represents the channel memory connected to 2μ states at time n+1, and two branches leaving/entering each state correspond to a value of an incoming channel bit. Typically, computations for Viterbi and SOVA algorithms take place at the baud rate. However, it is sometimes advantageous from a design perspective to run the Viterbi and SOVA algorithms on the trellis at a slower rate for an increased computational complexity per clock cycle. To run a trellis clock at 1/λ of the baud rate, the trellis can be implemented in terms of its radix-2λ form, where we combine λ segments of the original trellis into a single segment. In a radix-2λ implementation, there are 2λ branches leaving/entering each state (corresponding to λ bits per state transition). As far as hard and soft outputs are concerned, both implementations are equivalent.
In general, the SOVA decoder 322 can be used in conjunction with an arbitrary programmable precoder 324 specified by the LUT/instructions 328. In a particular example, the programmable precoder 324 may be programmed by updating the LUT/instructions 328. In a particular example, the programmable precoder 324 uses a mapping (LUT/instructions 328) having a section length (L) and memory (M) that is not more than a channel memory (λ), i.e., M≦λ. In this example, it is convenient to view the SOVA detector in terms of a trellis of radix-2L form (L=λ) where both the precoder and the trellis operate on L-bit segments of bits.
More generally, the SOVA detector 322 can be implemented with an arbitrary programmable precoder 324 specified by the LUT/instructions 328 for an arbitrary choice of precoder section length (L) and number of bits per transition (λ) provided that the channel memory (μ) satisfies the condition μ≧μ0=M+L−gcd(λ, L) where “gcd” denotes the greatest common divisor. In particular the SOVA can always be implemented for an unspecified λ if μ≧μ0=M+L−1.
Some detector chips that are commercially available already implement a radix-16 Viterbi algorithm. In a particular embodiment, the non-polynomial, programmable precoder 324 has section length L=4 that can be integrated smoothly with the existing radix-16 implementations of the Viterbi detector. In a particular example, a programmable memoryless precoder 324 (with M=0) admits a simple precoder implementation, where L user bits are mapped to L channel bits regardless of the state variable.
FIG. 4 is a diagram of a particular illustrative embodiment of a segment of a radix-4 trellis 400 illustrating a mapping of L=2 user bits to 2 channel bits. The radix-4 trellis 400 has 2L=4 branches leaving/entering any state in the trellis, where there are two 2-bit labels on every branch in the trellis: the incoming channel bits and the user bits. In the radix-4 trellis segment 400 shown, the branches are labeled according to the programmable precoder described by TABLE 1. The radix-4 trellis 400 includes user bit labels (generally indicated in plain text) that can be found using the programmable lookup table given the (M) state variable bits and the channel bit label (generally indicated in bold and italics). The (M) newest bits of the state variable and the (L) incoming channel bits uniquely determine the respective (L) user bits corresponding to any branch in the trellis.
The radix-4 trellis 400 includes four possible state values 402, 404, 406, and 408 at a first bit state (Sn) and four possible state values 412, 414, 416, and 418 at a second bit state (Sn+1). In general, a branch computation metric uses the state and channel bit labels (such as 00, 01, 10, and 11, illustrated in bold and italics for channel bits and in plain text for user bits) as usual. However, the SOVA detector, such as the SOVA detector 322 illustrated in FIG. 3, operates using the user bit labels assigned to each branch. In other words, when multiple paths merge at a state, the SOVA detector computes metric differences, traces the multiple paths back to compare the user bits rather than the channel bits on all of the paths to assign/update reliabilities to the user bits. The branch metric computation uses the state and channel bit label as usual.
A summary of the implementation details of the log-likelihood ratio (LLR) computation for the user bits is provided below. In a particular example, a conventional SOVA algorithm can be superimposed on a radix-2L trellis.
In this example, the signed LLR of a bit am can be defined as follows:
L m = log P ( a m = 0 ) P ( a m = 1 ) ( Equation 1 )
Suppose that a cumulative metric of the i-th path ending at a state Sn at time (n) is μi(Sn). At any stage during the decoding, let the hard decisions and the associated log-likelihood ratios (LLRs) on the i-th path be defined as âm i(Sn) and Lm i(Sn), respectively, for m≦nL+L−1. The hard decisions are obtained by simply tracing the path back through the trellis and recording the (plain text) user bit labels for every branch. The user bit labels themselves can be found readily using the programmable postcoder lookup table. Metric differences between the i-th path and the survivor path can be calculated as follows:
Δ i ( S n ) = μ i ( S ) - min i μ i ( S n ) ( Equation 2 )
Let i* denote the surviving path. Thus, the new hard decisions are represented as âm i*(Sn) and their associated log-likelihood ratios (LLRs) can be updated as follows. In a particular example, all paths merge at a state (Sn). Infinite reliabilities are assigned to those (newest) bits {am:nL≦m<nL+L} for which LLRs have not yet been assigned. The LLRs of the bits (new and old) {am:m<nL+L} are updated as follows (with the definitions σ(0)=1 and σ(1)=−1):
L m ( S n ) σ ( a ^ m i * ) min i Λ m i ( S n ) ( Equation 3 ) Λ m i ( S n ) = { Δ i ( S n ) if a ^ m i a ^ m i * L m i ( S n ) + Δ i ( S n ) if a ^ m i = a ^ m i * ( Equation 4 )
Equations 3 and 4 above perform max-log maximum a posteriori (MAP) decoding.
In a particular example, the SOVA algorithm may be superimposed on a radix-2λ trellis for an arbitrary λ different from L provided that the channel memory satisfies μ≧μ0=M+L−gcd(λ, L). The LLR updates (Equations 3 and 4) need to be performed only on successfully decoded L-bit blocks of user bits. The LLR updates for incomplete blocks are postponed to a future trellis state when the complete L-bit block is received.
In a particular example, consider an inter-symbol interference channel described by the following equation:
y n=3x n+2x n−1 +x n−2 +w n  (Equation 5)
where xn ε {0,1} and yn are the channel input and output bits, respectively, and where wn is additive zero-mean white Gaussian noise with variance σw 2=1. Furthermore, using a programmable precoder having a memory and a length (M=1, L=2) specified by TABLE 1 to map the user bits to channel bits.
Referring again to the radix-4 trellis 400 illustrated in FIG. 4, a branch metric for the transition from a state (Sn−1)=(x2n−2, x2n−1) to a state (Sn)=(x2n, x2n+1) can be calculated as follows:
γ ( S n - 1 , S n ) = 1 2 ( y 2 n - 3 x 2 n - 2 x 2 n - 1 - x 2 n - 2 2 + y 2 n + 1 - 3 x 2 n + 1 - 2 x 2 n - x 2 n - 1 2 ) ( Equation 6 )
Referring now to FIG. 5, a diagram of another particular illustrative embodiment of a portion of a radix-4 trellis 500 illustrating four state paths merging at a state (S1=01) is shown. The trellis 500 includes four bit- state values 00, 01, 10, and 11 at first, second, third, and fourth states (S−1, S0, S1, and S2). At the first state (S−1), the trellis 500 includes a first bit-state value (00) 502, a second bit-state value (01) 504, a third bit-state value (10) 506, and a fourth bit-state value (11) 508. At the second state (S0), the trellis 500 includes a first bit-state value (00) 512, a second bit-state value (01) 514, a third bit-state value (10) 516, and a fourth bit-state value (11) 518. At the third state (S1), the trellis 500 includes a first bit-state value (00) 522, a second bit-state value (01) 524, a third bit-state value (10) 526, and a fourth bit-state value (11) 528. At the fourth state (S2), the trellis 500 includes a first bit-state value (00) 532, a second bit-state value (01) 534, a third bit-state value (10) 536, and a fourth bit-state value (11) 538.
In a particular example, a user bit input sequence begins with the six bits a={1, 0, 1, 1, 0, 1, . . . }. Assuming that xn=0 for n<0, the initial state of the radix-4 trellis 500 is indicated at a first state (S−1) is at a first bit-state value (00) 502. The programmable precoder maps this state value to the channel bit input sequence x={1, 1, 0, 1, 0, 0, . . . }. Thus, a noise-free output is given by y0={3, 5, 3, 4, 2, 1, . . . } and a typical noisy received sequence {yn:n≧0} is as y={2.1413, 4.4864, 1.9450, 3.6733, 1.3757, 1.6729, . . . }.
Tracing through the steps of the programmable SOVA algorithm with the above-received noise sequence (y), an initial state metric of 0 can be assigned to the first state (S−1), such that the selected bit-state at the first state (S−1) is the first bit-state value (00) 502. An infinite metric is assigned to all of the second, third, and fourth bit-state values (01, 10, and 11) 504, 506, and 508 of the first state (S−1). Using the Viterbi algorithm, it can be verified that at time n=2, the first bit-state value (00) 532 at the fourth state (S2) has a lowest state metric of 1.5317 and the Viterbi path that ends on the fourth state (S2) is {circumflex over (x)}={1, 0, 1, 1, 0, 1}. In this example, the six decisions are error free. The user bit decisions are obtained by applying the postcoder map (illustrated in TABLE 1) to the channel bit decisions â={1, 0, 1, 1, 0, 1}. The channel bit decisions are readily determined using the postcoder look-up table. The postcoder map is an inverse of a precoder map defined in a precoder look-up table.
Referring again to FIG. 5, the operation of the SOVA algorithm can be explained with respect to the trellis 500. Since all paths start at S−1=00, i.e., at a first bit-state value (00) 502, there are no merging paths at any of the first, second, third, and fourth bit- state values 512, 514, 516, and 518 at the second state (S0) at time (0). Thus, the temporary bit decisions at the first, second, third, and fourth bit- state values 512, 514, 516, and 518 at the second state (S0) are assigned infinite reliabilities at time 0. At the third state (S1) at the time n=1, reliabilities can be calculated for each of the first, second, third, and fourth bit-value states 522, 524, 526, and 528, respectively. For a moment, consider only bit paths that merge at the second bit-state value (01) 524. The Viterbi path is illustrated as a solid line converging from the bit-state value (11) 518 at the second state (S0). The user bit labels corresponding to each of the branches are shown. The user bit labels can be obtained from the programmable look-up table based on the incoming channel bits and a newest bit of origin state. Observe that the user bit labels on all incoming branches at the second bit-state value (01) 524 can be different, unlike the channel bit labels, which are the same on all incoming branches.
The cumulative branch metrics (14.475, 3.452, 4.133, and 1.110) are also indicated on the last branch of each path merging at the bit-value state (S1=01) 524. TABLE 6 illustrates the four merging paths in a decreasing order of likelihood and the path metric difference (Δ) relative to the survivor path.
TABLE 6
User bits
Path (Pi) (a0, . . . , a3) Path metric (μi) Δi = μi − miniμi
P1 1011 1.110 0
P2 0111 3.452 2.342
P3 1101 4.133 3.023
P4 0001 14.475 13.365
In TABLE 6, the Path (P1) is the most likely path (survivor) with hard decisions (a0, a1, a2, a3)=(1, 0, 1, 1). The most likely path for which a0 has a different decision is P2. For a1 and a2, those paths are P2 and P3, respectively. In this particular example, all four paths (P1, P2, P3, and P4) have the same decision for a3, rendering the hard decision on the a3 bit completely reliable (with infinite LLR).
Therefore, the log-likelihood ratios (LLRs) for these decisions can be assigned as follows: L0(S1)=L1(S1)=Δ2=2.342, L2(S1)=Δ3=3.023, and L3(S1)=∞. It should be noted that these are user bit log-likelihood ratios (LLRs) conditioned on ending at the first bit-value state (S1=01) 524.
If a similar process is performed for the bit state (S1 ε {00, 10, 11}) 522, 526, and 528, respectively, the signed LLRs can be obtained as follows:
L m i ( S 1 ) = log ( P ( a m = 0 ) P ( a m = 1 ) ) ( Equation 7 )
for the i-th path merging at the bit state (S2). The signed LLRs obtained from Equation 7 as it relates to the first, second, third, and fourth bit-state values (00, 01, 10, 11) 522, 524, 526, and 528 at the third bit state (S1) is shown in TABLE 7.
TABLE 7
S1 a0 a1 a2 a3
00 −2.342 2.342 −6.022
01 −2.342 2.342 −3.023 −∞
10 −1.319 −1.978 −∞ −1.319
11 −4.319 −4.978 −4.319
FIG. 6 is a diagram of still another particular illustrative embodiment of a radix 4-trellis 600 illustrating four state paths merging at a fourth bit state (S2) having a bit-state value (00) 632. The trellis includes a first bit state (S−1), a second bit state (S0), a third bit state (S1) and the fourth bit state (S2). Each of the first, second, third and fourth bit states have four possible bit-state values. The first bit state (S−1) includes a first bit-state value (00) 602, a second bit-state value (01) 604, a third bit-state value (10) 606, and a fourth bit-state value (11) 608. The second bit state (S0) includes a first bit-state value (00) 612, a second bit-state value (01) 614, a third bit-state value (10) 616, and a fourth bit-state value (11) 618. The third bit state (S1) includes a first bit-state value (00) 622, a second bit-state value (01) 624, a third bit-state value (10) 626, and a fourth bit-state value (11) 628. The fourth bit state (S2) includes a first bit-state value (00) 632, a second bit-state value (01) 634, a third bit-state value (10) 636, and a fourth bit-state value (11) 638. In a particular example, the radix-4 trellis 600 illustrated in FIG. 6 corresponds to the radix-4 trellis 500 illustrated in FIG. 5, but the numbers are incremented to correspond to the figure number.
Consider the paths at the bit state (S2) that are merging to the bit-state value (00) 632 at time n=2. TABLE 8 illustrates temporary hard decisions in decreasing order of likelihood for the bit-state value (00) 632.
TABLE 8
User bits
Path (Pi) (a0, . . . , a5) Path metric (μi) Δi = μi − miniμi
P1 101101 1.532 0
P2 100100 6.976 5.444
P3 111001 7.997 6.465
P4 111100 8.441 6.909
The LLRs of the two newest bits (a4 and a5) are assigned based on the path metric difference (Δ) values in TABLE 8. Specifically, the LLR for the bit (a4) is represented as L4(S2)=∞ and the LLR for the bit (a5) is represented as L5(S2)=5.444. The LLRs of the previous bits (a0, . . . , a3) are updated according to Equations 3 and 4, above. The LLRs of the bits (a0, . . . , a3) conditioned on passing through the bit state (S2) are as follows:
L 0(S 2)←−min{2.342,2.342+5.444,4.319+6.465,1.319+6.909}=−2.342
L 1(S 2)←min{2.342,2.342+5.444,6.465,6.909}=2.342
L 2(S 2)←−min{3.023,5.444,4.319+6.465,∞+6.909}=−3.023
L 3(S 2)←−min{∞,6.022+5.444,6.465,1.319+6.909}=−6.465
Computing the log-likelihood ratios (LLRs) for other states S2 ε {01, 10, 11}, the algorithm continues for n>2. In particular, a path metric for a first path P1 from the first bit-state value (00) 622 of the third state (S1) to the first bit-state value (00) 632 of the fourth state (S2) is 6.976. The path metric for a second path P2 from the second bit-state value (01) 624 of the third state (S1) to the first bit-state value (00) 632 of the fourth state (S2) is 1.532. The path metric for a third path P3 from the third bit-state value (10) 626 of the third state (S1) to the first bit-state value (00) 632 of the fourth state (S2) is 8.441. The path metric for a fourth path P4 from the fourth bit-state value (11) 628 of the third state (S1) to the first bit-state value (00) 632 of the fourth state (S2) is 7.997. A path metric difference (Δ) can be calculated to update the log-likelihood ratios (LLRs).
In general, preceding improves the performance of a communication system that has correlated channel bit errors, such as bit errors in a magnetic recording system, by lowering the raw bit error rate (BER) as seen by the error correction coding (ECC) and/or run-length limited (RLL) decoder. A programmable precoder can be represented by a look-up table to map user bits to channel bits and vice versa. In a particular example, the programmable precoder can be a polynomial or a non-polynomial precoder. While such preceding can be simple, the programmable precoder allows the read channel to be tuned or programmed for a particular channel. Further, postcoding at the decoder side can be performed jointly with the SOVA detector to enhance performance of the system.
In a particular example, sectional non-polynomial preceding represents a viable technique to improve system performance at a channel decoder. A sectional non-polynomial precoder can be efficiently stored in a programmable lookup table and can be used in connection with a soft-output Viterbi algorithm (SOVA) detector or other soft-output detectors to achieve significant gains relative to the best polynomial precoders for the magnetic recording channels. The sectional non-polynomial precoder can be used to de-correlate channel bit errors and improving overall performance. By integrating postcoding at the SOVA decoder, reliabilities may be computed directly for user bits, instead of sub-optimally post-processing channel bit reliabilities. In channels that have inter-symbol interference or other characteristics, direct computation of reliabilities for the user bits improves the performance of the decoder.
In a particular example, arbitrary precoders with a section length (L) can be integrated with a radix-2λ Viterbi trellis implementation. In a particular embodiment, the SOVA detector can be hardwired for a single precoder, such as 1/(1+D) polynomial precoder or for a specific mapping table. However, by allowing the precoder to be programmable, the programmable precoder can be tuned or adjusted for a particular channel, for particular operating conditions (such as a signal-to-noise ratio, transition noise levels, and/or other noise), or any combination thereof. The programmable precoder used in connection with a SOVA detector renders the SOVA detector programmable, allowing the channel detector to be readily adapted to different channels by simply optimizing the precoder mapping table.
In another particular example, during manufacturing, it is possible to specify a mapping table that is specific to a particular read/write head, a particular disc, a portion of a recording media, or any combination thereof. Furthermore, if the channel is known to have spatially-varying correlated noise, it is possible to store the optimal mapping tables for each zone on the recording surface. For example, the channel characteristics in a magnetic recording system are dependent on the radial distance of the data track from the center. In a particular example, the precoder logic may select a mapping table from a plurality of mapping tables based on a radial distance of the data track from the center for the purpose of mapping user bits to channel bits and vice versa. Moreover, in a particular example, the radial distance could be used to adaptively program a look-up table for use with a precoder and a SOVA detector.
FIG. 7 is a flow diagram of a particular illustrative embodiment of a method of decoding a channel having correlated noise. At 702, user bits are mapped to channel bits via a programmable precoder during a write operation using a programmable look-up table (LUT) that is programmed to operating conditions associated with the channel. In a particular embodiment, the programmable precoder includes a processor and a memory accessible to the processor. The memory stores instructions executable by the processor to access instructions to map the user bits to the channel bits according to the programmable LUT.
Continuing to 704, readback samples are received from a channel having inter-symbol interference. Advancing to 706, the readback samples are decoded using a soft-output channel detector. In a particular example, the soft-output channel detector includes a high radix trellis and a sectional precoder. Moving to 708, user bit decisions and their reliabilities are determined using an integrated postcoder map specified by the programmable LUT. In a particular example, user bit decisions are determined by providing the readback signal to a soft-output Viterbi algorithm (SOVA) detector that includes the integrated postcoder map. In another particular example, the integrated post coder map is used to map the channel bits to user bits to make user bit decisions. Proceeding to 710, the determined user bit decisions are output. The method terminates at 712. In a particular embodiment, the method also includes error correction coding the output to produce a corrected output.
FIG. 8 is a flow diagram of another particular embodiment of a method of decoding a channel having correlated channel bit errors. At 802, precoder logic of an electronic device selects a programmable LUT from a plurality of programmable LUTs based on operating conditions associated with a channel, where the plurality of programmable LUTs stored at a memory of the electronic device, and where the selected programmable LUT is adapted to map user bits to channel bits and vice versa. In a particular example, the precoder logic can be adapted to receive servo control data associated with a radial position of the read/write head relative to a center of a disc platter of a disc drive and to select a particular programmable LUT based on the radial position. In another particular example, the precoder logic can be adapted to select a particular programmable LUT that is associated with a particular data source, such as a particular read/write head. In this example, each of the read/write heads of a storage device may have its own LUT that can be selectively activated to map user bits to channel bits and vice versa based on the source read/write head for the particular readback signal.
Moving to 804, user bits are mapped to channel bits via the selected programmable precoder during a write operation using the selected programmable LUT. Continuing to 806, readback samples are received from the channel, where the channel includes correlated noise, such as inter-symbol interference. Advancing to 808, the readback samples are decoded using a soft-output Viterbi algorithm (SOVA) detector that is adapted to determine reliabilities based on user bits using a postcoder based on the selected programmable LUT. In a particular example, the SOVA detector includes a high radix trellis and is adapted to communicate with a sectional precoder. Proceeding to 810, the determined user bit decisions are output. The method terminates at 812.
In general, while the above-discussion has described a programmable precoder used in connection with a soft-output Viterbi algorithm detector to reduce readback signal bit errors, it should be understood that the programmable precoder may be used with other detectors as well, provided the detectors are adapted for use with the programmable precoder. In a particular example, reliability data calculated from the outputs of the precoder can be based on an inverse mapping to the readback data that is derived from the LUT, rather than calculating reliabilities from the determined channel information. Further, it should be understood that the soft-output Viterbi detector, which is described with respect to FIGS. 1-8 above, works with an arbitrary radix trellis implementation and is not limited to a precoder section length.
Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.

Claims (18)

1. An assembly comprising:
a postcoder adapted to assign user bit labels from one or more look-up tables (LUTs) to each branch of a trellis;
the one or more look-up tables (LUTs) providing a relation between channel bits and user bits; and
a detector component configured to receive an input signal including one or more input channel bits and provide an output including one or more output user bits wherein the detector component uses the postcoder to decode the input signal using the user bits determined from the one or more LUTs in the branches of the trellis.
2. The assembly of claim 1, wherein the one or more LUTs defines a non-polynomial postcoder.
3. The assembly of claim 1, wherein the detector component comprises a soft-output Viterbi algorithm (SOVA) detector adapted to calculate a path metric difference between possible states of the user bits using the postcoder and the one or more LUTS, based upon reliabilities of the user bits and adapted to update reliabilities of the user bits based on the path metric difference.
4. The assembly of claim 3 comprising an inner decoder configured to receive the user bits and the reliabilities of the user bits and output decoded user data using a message passing algorithm to interface with the SOVA detector.
5. The assembly of claim 1 wherein the postcoder is configured to select one of a plurality of LUTs stored in memory based upon operating conditions and the postcoder includes logic to select the one of the plurality of LUTs to decode the input signal.
6. The assembly of claim 1, wherein the postcoder comprises logic adapted to access the one or more LUTs.
7. The assembly of claim 1 wherein the detector component forms a component of a magnetic recording channel wherein the input signal is received from a magnetic recording head.
8. The assembly of claim 1, wherein the detector component includes a soft-output Viterbi algorithm (SOVA) detector adapted to operate using the user bit labels.
9. The assembly of claim 8, wherein the SOVA detector uses the postcoder to compute reliabilities of the user bits.
10. The assembly of claim 1, wherein the one or more LUTs are programmed to operating conditions associated with a read channel of the assembly.
11. A method comprising:
mapping user bits to channel bits via a precoder during a write operation using one or more look-up tables (LUTs);
receiving from a channel readback samples including one or more of the channel bits;
decoding the readback samples using a soft-output channel detector which interfaces with a postcoder;
assigning user bit labels to branches of a trellis using a postcoder map;
determining user bit decisions and their reliabilities for the readback samples based upon a likelihood path metric using the trellis and the postcoder map specified by the one or more LUTs; and
outputting the determined user bit decisions.
12. The method of claim 11, wherein the postcoder comprises logic and a memory accessible to the logic, wherein the one or more LUTs are programmed in the memory.
13. The method of claim 11, comprising providing the readback samples to a soft-output Viterbi algorithm (SOVA) detector and using the postcoder map to determine the user bit decisions.
14. A system comprising:
an input to receive a signal;
a channel detector coupled to the input, the channel detector comprising:
a memory including one or more look-up tables LUTs that provide a relation between channel bits and user bits programmed in the memory;
a postcoder having access to the memory and adapted to map the channel bits to the user bits and adapted to assign user bit labels from the one or more LUTs to each branch of a trellis;
a decoder adapted to iteratively decode one or more channel bits of the input signal into user bit decisions using the user bit labels from the postcoder in branches of the trellis; and
an output terminal to provide an output including the user bit decisions.
15. The system of claim 14 wherein the postcoder comprises a processor and instructions in the memory executable by the processor to map the channel bits to the user bits.
16. The system of claim 14, wherein the postcoder comprises logic, and wherein the relation between the channel bits and the user bits is provided by the one or more look-up tables (LUTs) accessible to the logic to map the channel bits to the user bits.
17. The system of claim 16, wherein the decoder comprises a soft-output Viterbi algorithm (SOVA) decoder.
18. The system of claim 16, wherein the one or more LUTs include a plurality of LUTs that provide the relation between the channel bits and the user bits dependent upon a data track position on a rotating storage media.
US12/048,830 2008-03-14 2008-03-14 Programmable soft-output Viterbi algorithm system and method Active 2031-05-07 US8307267B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/048,830 US8307267B2 (en) 2008-03-14 2008-03-14 Programmable soft-output Viterbi algorithm system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/048,830 US8307267B2 (en) 2008-03-14 2008-03-14 Programmable soft-output Viterbi algorithm system and method

Publications (2)

Publication Number Publication Date
US20090231745A1 US20090231745A1 (en) 2009-09-17
US8307267B2 true US8307267B2 (en) 2012-11-06

Family

ID=41062772

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/048,830 Active 2031-05-07 US8307267B2 (en) 2008-03-14 2008-03-14 Programmable soft-output Viterbi algorithm system and method

Country Status (1)

Country Link
US (1) US8307267B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8885779B2 (en) * 2013-03-14 2014-11-11 Seagate Technology Llc Channel detector implementation with postcoder
US9304851B2 (en) 2013-11-27 2016-04-05 Seagate Technology Llc Decoding with log likelihood ratios stored in a controller
US20170257232A1 (en) * 2016-03-02 2017-09-07 Mstar Semiconductor, Inc. Equalizer apparatus and viterbi algorithm based decision method

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433975B2 (en) * 2010-08-13 2013-04-30 Nxp B.V. Bitwise reliability indicators from survivor bits in Viterbi decoders
US8737460B2 (en) * 2012-07-16 2014-05-27 Seagate Technology, Llc Equalizer and detector arrangement employing joint entropy-based calibration
KR102039062B1 (en) * 2013-02-14 2019-10-31 한국전자통신연구원 Apparatus and method for decoding maximum a posteriori
US9130599B2 (en) * 2013-12-24 2015-09-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods of converting detector output to multi-level soft information
US9213602B1 (en) * 2014-06-23 2015-12-15 Seagate Technology Llc Write mapping to mitigate hard errors via soft-decision decoding
US9654314B2 (en) * 2014-10-13 2017-05-16 Nec Corporation Joint transmitter and receiver map algorithm for enhancing filtering tolerance in a bandwidth-limited system
WO2020170435A1 (en) * 2019-02-22 2020-08-27 三菱電機株式会社 Error correcting decoding device and error correcting decoding method

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142421A (en) * 1990-09-21 1992-08-25 U.S. Philips Corporation Device for recording a digital information signal on a record carrier
US5311547A (en) * 1992-02-03 1994-05-10 At&T Bell Laboratories Partial-response-channel precoding
US5621761A (en) * 1994-12-09 1997-04-15 General Instrument Corporation Of Delaware Rotationally invariant trellis coding incorporating transparent binary convolutional codes
US6252731B1 (en) 1997-10-16 2001-06-26 Seagate Technology Llc Parametric optimization using disc drive read channel quality measurements
US6513141B1 (en) * 1999-05-07 2003-01-28 Cirrus Logic Inc. Sampled amplitude read channel employing a trellis sequence detector and a post processor for generating error metrics used to correct errors made by the trellis sequence detector
US20030066020A1 (en) 2001-06-11 2003-04-03 Fujitsu Limited Recording and reproducing apparatus, signal decoding circuit, error correction method and iterative decoder
US20040068747A1 (en) * 2002-10-02 2004-04-08 Robertson Neil C. Networked multimedia system
US6757122B1 (en) * 2002-01-29 2004-06-29 Seagate Technology Llc Method and decoding apparatus using linear code with parity check matrices composed from circulants
US6791995B1 (en) 2002-06-13 2004-09-14 Terayon Communications Systems, Inc. Multichannel, multimode DOCSIS headend receiver
US20040233981A1 (en) * 2001-07-26 2004-11-25 Porter John David Method and apparatus for predistorting data
US7030789B1 (en) * 2004-12-01 2006-04-18 Hitachi Global Storage Technologies Netherlands B.V. Techniques for applying modulation constraints to data using periodically changing symbol mappings
US7050418B2 (en) 1997-10-31 2006-05-23 Interdigital Technology Corporation Modem for processing CDMA signals
US20060222094A1 (en) * 2005-04-04 2006-10-05 Makhlouf Isam R Channel estimation using linearly constrained filter coefficients
US20060282753A1 (en) * 2005-05-18 2006-12-14 Seagate Technology Llc Second stage SOVA detector
US7251768B2 (en) 2002-04-22 2007-07-31 Regents Of The University Of Minnesota Wireless communication system having error-control coder and linear precoder
US20080188190A1 (en) * 2007-02-05 2008-08-07 Narayan Prasad Multi-rank beamforming precoding apparatus and method
US20080240303A1 (en) * 2007-03-30 2008-10-02 Rose Shao Map detector with a single state metric engine
US20090150746A1 (en) * 2007-12-06 2009-06-11 Panu Chaichanavong Iterative decoder systems and methods
US20090225878A1 (en) * 2008-03-06 2009-09-10 Haralabos Papadopoulos Adaptive forward-backward soft output m-algorithm receiver structures

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142421A (en) * 1990-09-21 1992-08-25 U.S. Philips Corporation Device for recording a digital information signal on a record carrier
US5311547A (en) * 1992-02-03 1994-05-10 At&T Bell Laboratories Partial-response-channel precoding
US5621761A (en) * 1994-12-09 1997-04-15 General Instrument Corporation Of Delaware Rotationally invariant trellis coding incorporating transparent binary convolutional codes
US6252731B1 (en) 1997-10-16 2001-06-26 Seagate Technology Llc Parametric optimization using disc drive read channel quality measurements
US7050418B2 (en) 1997-10-31 2006-05-23 Interdigital Technology Corporation Modem for processing CDMA signals
US6513141B1 (en) * 1999-05-07 2003-01-28 Cirrus Logic Inc. Sampled amplitude read channel employing a trellis sequence detector and a post processor for generating error metrics used to correct errors made by the trellis sequence detector
US20030066020A1 (en) 2001-06-11 2003-04-03 Fujitsu Limited Recording and reproducing apparatus, signal decoding circuit, error correction method and iterative decoder
US7237173B2 (en) 2001-06-11 2007-06-26 Fujitsu Limited Recording and reproducing apparatus, signal decoding circuit, error correction method and iterative decoder
US20040233981A1 (en) * 2001-07-26 2004-11-25 Porter John David Method and apparatus for predistorting data
US6757122B1 (en) * 2002-01-29 2004-06-29 Seagate Technology Llc Method and decoding apparatus using linear code with parity check matrices composed from circulants
US7251768B2 (en) 2002-04-22 2007-07-31 Regents Of The University Of Minnesota Wireless communication system having error-control coder and linear precoder
US6791995B1 (en) 2002-06-13 2004-09-14 Terayon Communications Systems, Inc. Multichannel, multimode DOCSIS headend receiver
US20040068747A1 (en) * 2002-10-02 2004-04-08 Robertson Neil C. Networked multimedia system
US7030789B1 (en) * 2004-12-01 2006-04-18 Hitachi Global Storage Technologies Netherlands B.V. Techniques for applying modulation constraints to data using periodically changing symbol mappings
US20060222094A1 (en) * 2005-04-04 2006-10-05 Makhlouf Isam R Channel estimation using linearly constrained filter coefficients
US20060282753A1 (en) * 2005-05-18 2006-12-14 Seagate Technology Llc Second stage SOVA detector
US20080188190A1 (en) * 2007-02-05 2008-08-07 Narayan Prasad Multi-rank beamforming precoding apparatus and method
US20080240303A1 (en) * 2007-03-30 2008-10-02 Rose Shao Map detector with a single state metric engine
US20090150746A1 (en) * 2007-12-06 2009-06-11 Panu Chaichanavong Iterative decoder systems and methods
US20090225878A1 (en) * 2008-03-06 2009-09-10 Haralabos Papadopoulos Adaptive forward-backward soft output m-algorithm receiver structures

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Fossorier et al., M.; "On the Equivalence Between SOVA and Max-Log-MAP Decodings," IEEE Communications Letters, V. 2, No. 5, May 1998, pp. 137-139.
Hagenauer, & Papke, J. & L.; Decoding "Turbo"-Codes with the Soft Output Viterbi Algorithm (SOVA), IEEE Publication, 1994, p. 164.
Moon, & Park, J. & J.; "Pattern-Dependent Noise Prediction in Signal-Dependent Noise," IEEE Journal on Selected Areas in Communications, V. 19, N. 4, Apr. 2001. pp. 730-743.
Ta, C. H. and Weiss, S. (2005) Design of Precoding and Equalisation for Broadband MIMO Transmission. In: 2nd IEE/EURASIP Conference on DSP Enabled Radio, Sep. 19-20, University of Southampton. 30/1-30/5. *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8885779B2 (en) * 2013-03-14 2014-11-11 Seagate Technology Llc Channel detector implementation with postcoder
US9304851B2 (en) 2013-11-27 2016-04-05 Seagate Technology Llc Decoding with log likelihood ratios stored in a controller
US20170257232A1 (en) * 2016-03-02 2017-09-07 Mstar Semiconductor, Inc. Equalizer apparatus and viterbi algorithm based decision method
US10044528B2 (en) * 2016-03-02 2018-08-07 Mstar Semiconductor, Inc. Equalizer apparatus and Viterbi algorithm based decision method

Also Published As

Publication number Publication date
US20090231745A1 (en) 2009-09-17

Similar Documents

Publication Publication Date Title
US8307267B2 (en) Programmable soft-output Viterbi algorithm system and method
US7031090B2 (en) Information recording and reproducing apparatus and method and signal decoding circuit having improved noise processing characteristics
US7415651B2 (en) Data communication system with multi-dimensional error-correction product codes
US7827464B2 (en) Iterative read channel architectures with coded modulation
JP4198904B2 (en) Recording / reproducing apparatus, signal decoding circuit, error correcting method, and iterative decoder
US7805664B1 (en) Likelihood metric generation for trellis-based detection and/or decoding
US8699167B2 (en) Systems and methods for data detection using distance based tuning
JP4652310B2 (en) Decoder and reproducing apparatus
US7779325B2 (en) Data detection and decoding system and method
US20060156171A1 (en) Combining spectral shaping with turbo coding in a channel coding system
US8291304B2 (en) Signal processing device, signal processing method, and signal reproducing apparatus
KR20110118612A (en) Error correction performance tuning system, disk drive test method and disk drive test system
US7788572B1 (en) Parallel maximum a posteriori detectors with forward and reverse viterbi operators having different convergence lengths on a sampled data sequence
Wu et al. Detection-decoding on BPMR channels with written-in error correction and ITI mitigation
US7555070B1 (en) Parallel maximum a posteriori detectors that generate soft decisions for a sampled data sequence
US8271863B2 (en) Forward decision aided nonlinear Viterbi detector
US8464119B1 (en) Defect recovery for iteratively-decoded data channel
Xie et al. Improving burst error tolerance of LDPC-centric coding systems in read channel
US9548762B2 (en) Normalization factor adaptation for LDPC decoding for hard disk drive systems
US8917467B1 (en) Systems and methods for ATI mitigation
US7421643B2 (en) Data detection and decoding system and a method of detecting and decoding data
US8885779B2 (en) Channel detector implementation with postcoder
Dholakia et al. On iterative decoding for magnetic recording channels
Wu et al. Noise predictive turbo systems
Aviran et al. Noise-predictive turbo equalization for partial-response channels

Legal Events

Date Code Title Description
AS Assignment

Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VENKATARAMANI, RAMAN CHATAPURAM;KUZNETSOV, ALEXANDER VASILIEVICH;PATAPOUTIAN, ARA;REEL/FRAME:021143/0827;SIGNING DATES FROM 20080314 TO 20080317

Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VENKATARAMANI, RAMAN CHATAPURAM;KUZNETSOV, ALEXANDER VASILIEVICH;PATAPOUTIAN, ARA;SIGNING DATES FROM 20080314 TO 20080317;REEL/FRAME:021143/0827

AS Assignment

Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE, CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNORS:MAXTOR CORPORATION;SEAGATE TECHNOLOGY LLC;SEAGATE TECHNOLOGY INTERNATIONAL;REEL/FRAME:022757/0017

Effective date: 20090507

Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND FIRST PRIORITY REPRESENTATIVE, NEW YORK

Free format text: SECURITY AGREEMENT;ASSIGNORS:MAXTOR CORPORATION;SEAGATE TECHNOLOGY LLC;SEAGATE TECHNOLOGY INTERNATIONAL;REEL/FRAME:022757/0017

Effective date: 20090507

Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT

Free format text: SECURITY AGREEMENT;ASSIGNORS:MAXTOR CORPORATION;SEAGATE TECHNOLOGY LLC;SEAGATE TECHNOLOGY INTERNATIONAL;REEL/FRAME:022757/0017

Effective date: 20090507

Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATE

Free format text: SECURITY AGREEMENT;ASSIGNORS:MAXTOR CORPORATION;SEAGATE TECHNOLOGY LLC;SEAGATE TECHNOLOGY INTERNATIONAL;REEL/FRAME:022757/0017

Effective date: 20090507

AS Assignment

Owner name: SEAGATE TECHNOLOGY HDD HOLDINGS, CALIFORNIA

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001

Effective date: 20110114

Owner name: MAXTOR CORPORATION, CALIFORNIA

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001

Effective date: 20110114

Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001

Effective date: 20110114

Owner name: SEAGATE TECHNOLOGY INTERNATIONAL, CALIFORNIA

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001

Effective date: 20110114

AS Assignment

Owner name: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT, CANADA

Free format text: SECURITY AGREEMENT;ASSIGNOR:SEAGATE TECHNOLOGY LLC;REEL/FRAME:026010/0350

Effective date: 20110118

Owner name: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT,

Free format text: SECURITY AGREEMENT;ASSIGNOR:SEAGATE TECHNOLOGY LLC;REEL/FRAME:026010/0350

Effective date: 20110118

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001

Effective date: 20130312

Owner name: EVAULT INC. (F/K/A I365 INC.), CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001

Effective date: 20130312

Owner name: SEAGATE TECHNOLOGY US HOLDINGS, INC., CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001

Effective date: 20130312

Owner name: SEAGATE TECHNOLOGY INTERNATIONAL, CAYMAN ISLANDS

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001

Effective date: 20130312

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SEAGATE TECHNOLOGY LLC;SEAGATE SINGAPORE INTERNATIONAL HEADQUARTERS PTE. LTD.;REEL/FRAME:067489/0509

Effective date: 20240423