LDPC Decoding: VLSI Architectures and Implementations

Similar documents
Digital Television Lecture 5

Low-complexity Low-Precision LDPC Decoding for SSD Controllers

Performance Evaluation of Low Density Parity Check codes with Hard and Soft decision Decoding

Error Patterns in Belief Propagation Decoding of Polar Codes and Their Mitigation Methods

IEEE C /02R1. IEEE Mobile Broadband Wireless Access <

Iterative Joint Source/Channel Decoding for JPEG2000

Error Protection: Detection and Correction

Decoding of Block Turbo Codes

Lab/Project Error Control Coding using LDPC Codes and HARQ

Outline. Communications Engineering 1

Power Efficiency of LDPC Codes under Hard and Soft Decision QAM Modulated OFDM

EE 435/535: Error Correcting Codes Project 1, Fall 2009: Extended Hamming Code. 1 Introduction. 2 Extended Hamming Code: Encoding. 1.

FPGA Implementation Of An LDPC Decoder And Decoding. Algorithm Performance

Basics of Error Correcting Codes

Error Control Coding. Aaron Gulliver Dept. of Electrical and Computer Engineering University of Victoria

MULTILEVEL CODING (MLC) with multistage decoding

Performance comparison of convolutional and block turbo codes

Reduced-Complexity VLSI Architectures for Binary and Nonbinary LDPC Codes

Vector-LDPC Codes for Mobile Broadband Communications

Improving LDPC Decoders via Informed Dynamic Scheduling

Performance Optimization of Hybrid Combination of LDPC and RS Codes Using Image Transmission System Over Fading Channels

Performance of Combined Error Correction and Error Detection for very Short Block Length Codes

n Based on the decision rule Po- Ning Chapter Po- Ning Chapter

IJESRT. (I2OR), Publication Impact Factor: 3.785

Low-Complexity LDPC-coded Iterative MIMO Receiver Based on Belief Propagation algorithm for Detection

IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 50, NO. 1, JANUARY

ECE 6640 Digital Communications

Multiple-Bases Belief-Propagation for Decoding of Short Block Codes

A Survey of Advanced FEC Systems

FPGA-Based Design and Implementation of a Multi-Gbps LDPC Decoder

High-Rate Non-Binary Product Codes

Multitree Decoding and Multitree-Aided LDPC Decoding

Background Dirty Paper Coding Codeword Binning Code construction Remaining problems. Information Hiding. Phil Regalia

The throughput analysis of different IR-HARQ schemes based on fountain codes

Coding & Signal Processing for Holographic Data Storage. Vijayakumar Bhagavatula

Spreading Codes and Characteristics. Error Correction Codes

ITERATIVE decoding of classic codes has created much

Project. Title. Submitted Sources: {se.park,

Dual-Mode Decoding of Product Codes with Application to Tape Storage

6. FUNDAMENTALS OF CHANNEL CODER

FREDRIK TUFVESSON ELECTRICAL AND INFORMATION TECHNOLOGY

Low Power LDPC Decoder design for ad standard

CHAPTER 4. IMPROVED MULTIUSER DETECTION SCHEMES FOR INTERFERENCE MANAGEMENT IN TH PPM UWB SYSTEM WITH m-zcz SEQUENCES

XJ-BP: Express Journey Belief Propagation Decoding for Polar Codes

LDPC Communication Project

Course Developer: Ranjan Bose, IIT Delhi

Simulink Modelling of Reed-Solomon (Rs) Code for Error Detection and Correction

Single Error Correcting Codes (SECC) 6.02 Spring 2011 Lecture #9. Checking the parity. Using the Syndrome to Correct Errors

Lecture 17 Components Principles of Error Control Borivoje Nikolic March 16, 2004.

Revision of Lecture Eleven

Physical Layer: Modulation, FEC. Wireless Networks: Guevara Noubir. S2001, COM3525 Wireless Networks Lecture 3, 1

ERROR CONTROL CODING From Theory to Practice

Constellation Shaping for LDPC-Coded APSK

Q-ary LDPC Decoders with Reduced Complexity

Nonlinear Multi-Error Correction Codes for Reliable MLC NAND Flash Memories Zhen Wang, Mark Karpovsky, Fellow, IEEE, and Ajay Joshi, Member, IEEE

A brief study on LDPC codes

AN IMPROVED NEURAL NETWORK-BASED DECODER SCHEME FOR SYSTEMATIC CONVOLUTIONAL CODE. A Thesis by. Andrew J. Zerngast

Contents Chapter 1: Introduction... 2

New Forward Error Correction and Modulation Technologies Low Density Parity Check (LDPC) Coding and 8-QAM Modulation in the CDM-600 Satellite Modem

High-performance Parallel Concatenated Polar-CRC Decoder Architecture

Serial Concatenation of LDPC Codes and Differentially Encoded Modulations. M. Franceschini, G. Ferrari, R. Raheli and A. Curtoni

Using TCM Techniques to Decrease BER Without Bandwidth Compromise. Using TCM Techniques to Decrease BER Without Bandwidth Compromise. nutaq.

Error Correcting Code

Channel Coding/Decoding. Hamming Method

Advanced channel coding : a good basis. Alexandre Giulietti, on behalf of the team

Ultra high speed optical transmission using subcarrier-multiplexed four-dimensional LDPCcoded

A Level-Encoded Transition Signaling Protocol for High-Throughput Asynchronous Global Communication

Channel Coding RADIO SYSTEMS ETIN15. Lecture no: Ove Edfors, Department of Electrical and Information Technology

On the reduced-complexity of LDPC decoders for ultra-high-speed optical transmission

Code Design for Incremental Redundancy Hybrid ARQ

Low Power Error Correcting Codes Using Majority Logic Decoding

Hamming Codes as Error-Reducing Codes

ICE1495 Independent Study for Undergraduate Project (IUP) A. Lie Detector. Prof. : Hyunchul Park Student : Jonghun Park Due date : 06/04/04

Page 1. Outline. Basic Idea. Hamming Distance. Hamming Distance Visual: HD=2

ECE 5325/6325: Wireless Communication Systems Lecture Notes, Spring 2013

Lecture 4: Wireless Physical Layer: Channel Coding. Mythili Vutukuru CS 653 Spring 2014 Jan 16, Thursday

Multilevel RS/Convolutional Concatenated Coded QAM for Hybrid IBOC-AM Broadcasting

PROJECT 5: DESIGNING A VOICE MODEM. Instructor: Amir Asif

RADIO SYSTEMS ETIN15. Channel Coding. Ove Edfors, Department of Electrical and Information Technology

TABLE OF CONTENTS CHAPTER TITLE PAGE

FOR THE PAST few years, there has been a great amount

FPGA-BASED DESIGN AND IMPLEMENTATION OF A MULTI-GBPS LDPC DECODER. Alexios Balatsoukas-Stimming and Apostolos Dollas

AHA Application Note. Primer: Reed-Solomon Error Correction Codes (ECC)

Goa, India, October Question: 4/15 SOURCE 1 : IBM. G.gen: Low-density parity-check codes for DSL transmission.

Data Storage Using a Non-integer Number of Bits per Cell

Construction of Adaptive Short LDPC Codes for Distributed Transmit Beamforming

Notes 15: Concatenated Codes, Turbo Codes and Iterative Processing

FORWARD ERROR CORRECTION PROPOSAL FOR EPOC PHY LAYER

The Case for Optimum Detection Algorithms in MIMO Wireless Systems. Helmut Bölcskei

On Performance Improvements with Odd-Power (Cross) QAM Mappings in Wireless Networks

Short-Blocklength Non-Binary LDPC Codes with Feedback-Dependent Incremental Transmissions

Capacity-Approaching Bandwidth-Efficient Coded Modulation Schemes Based on Low-Density Parity-Check Codes

End-To-End Communication Model based on DVB-S2 s Low-Density Parity-Check Coding

A 32 Gbps 2048-bit 10GBASE-T Ethernet Energy Efficient LDPC Decoder with Split-Row Threshold Decoding Method

Intro to coding and convolutional codes

Volume 2, Issue 9, September 2014 International Journal of Advance Research in Computer Science and Management Studies

designing the inner codes Turbo decoding performance of the spectrally efficient RSCC codes is further evaluated in both the additive white Gaussian n

Communications Theory and Engineering

Improvement Of Block Product Turbo Coding By Using A New Concept Of Soft Hamming Decoder

International Journal of Engineering Research in Electronics and Communication Engineering (IJERECE) Vol 1, Issue 5, April 2015

Transcription:

LDPC Decoding: VLSI Architectures and Implementations Module : LDPC Decoding Ned Varnica varnica@gmail.com Marvell Semiconductor Inc

Overview Error Correction Codes (ECC) Intro to Low-density parity-check (LDPC) Codes ECC Decoders Classification Soft vs Hard Information Message Passing Decoding of LDPC Codes Iterative Code Performance Characteristics 2

Error Correction Codes (ECC) 3

Error Correcting Codes (ECC) User message bits Parity bits (redundancy) 4-bit message space 7-bit codeword space 7-bit word space 4-bit message 7-bit codeword Rate = 4 / 7 4

Linear Block Codes Block Codes User data is divided into blocks (units) of length K bits/symbols u u2 u3 u4 u5 Each K bit/symbol user block is mapped (encoded) into an N bit/symbol codeword, where N > K... u p u2 p2 u3 p3 u4 p4 u5 p5... Example: in Flash Devices user block length K = 2Kbytes or 4Kbytes is typical code rate R = K / N is usually ~.9 and higher Important Linear Block Codes Reed-Solomon Codes (non-binary) Bose, Chaudhuri, Hocquenghem (BCH) Codes (binary) Low Density Parity Check (LDPC) Codes Turbo-Codes Iterative (ITR) Codes 5

Generator Matrix and Parity Check Matrix A linear block can be defined by a generator matrix g G g =... g K, g g g... K,............ g g g, N, N... K, N encoding v = u G Codeword User message Matrix associated to G is parity check matrix H, s.t. A vector is a codeword if v H T = G H T = A non-codeword (codeword + noise) will generate a non-zero vector, which is called syndrome T vˆ H = s The syndrome can be used in decoding 6

Example = G ) ( ˆ ) ( ˆ ) ( ) ( = = = = = = T T H v v H v G u v u = H Encoding Decoding 7

Low-Density Parity-Check (LDPC) Codes David MacKay 8

LDPC Codes LDPC code is often defined by parity check matrix H The parity check matrix, H, of an LDPC code with practical length has low density (most entries are s, and only few are s), thus the name Low-Density Parity-Check Code Each bit of an LDPC codeword corresponds to a column of parity check matrix Each rows of H corresponds to a single parity check For example, the first row indicates that for any codeword the sum (modulo 2) of bits,, and N- must be bit bit bit N- H =................................. Parity check equation 9

ECC Decoder Classification: Hard vs Soft Decision Decoding

Hard vs. Soft Decoder Classification Hard decoders only take hard decisions (bits) as the input decoder E.g. Standard BCH and RS ECC decoding algorithm (Berlekamp-Massey algorithm) is a hard decision decoder Hard decoder algorithm could be used if one read is available EDC encoder BCH encoder Hard decisions {,} EDC decoder BCH decoder Front End / Detection

Hard vs. Soft Decoder Classification Error-and-Erasure decoder is a variant of soft information decoder: in addition to hard decisions, it takes erasure flag as an input ** decoder Error-and-Erasure decoder algorithm could be used if two reads are available EDC encoder encoder decisions {,,*} EDC decoder error-anderasure decoder Front End / Detection 2

Hard vs. Soft Decoder Classification Erasure flag is an example of soft information (though very primitive) Erasure flag points to symbol locations that are deemed unreliable by the channel Normally, for each erroneous symbol, decoder has to determine that the symbol is in error and find the correct symbol value. However, if erasure flag identifies error location, then only error value is unknown Therefore, erasure flag effectively reduces number of unknowns that decoder needs to resolve 3

Hard vs. Soft Decoder Classification Example. Rate / Single parity check (SPC) code Each valid -bit SPC codeword c=(c,c, c ) has the sum (mod 2) of all the bits equal to Assume that (,,,,,,,,,,) is transmitted, and (,,,,,,,,,,) is received by decoder The received vector does not satisfy SPC code constraint, indicating to the decoder that there are errors present in the codeword Furthermore, assume that channel detector provides bit level reliability metric in the form of probability (confidence) in the received value being correct Assume that soft information corresponding to the received codeword is given by (.9,.8,.86,.7,.55,,,.8,.98,.68,.99) From the soft information it follows that bit c 4 is least reliable and should be flipped to bring the received codeword in compliance with code constraint 4

Obtaining Hard or Soft Information from Flash Devices 5

One Read: Hard Information Obtaining hard information (decision) via one read One V REF threshold is available: Threshold value should be selected so that the average raw bit-error-rate (BER) is minimized Decision bin hd = V REF Decision bin hd = In each bit-location, the hard-decision hd = or hd = is made This information can be used as input into decoder Shaded area denotes the probability that a bit error is made

Multiple Reads: Soft Information Obtaining soft information via multiple reads Create bins Bins can be optimized in terms of their sizes / distribution of V REF values given the number of available reads (e.g. 5 reads) These bins can be mapped into probabilities Typically, the closer the bin to the middle point, the lower the confidence that the bit value (hard-read value) is actually correct Decision bin A Decision bin B Decision bin C Decision bin C Decision bin B Decision bin A V REF 5 V REF 3 V REF V REF 2 V REF 4 Pr(bit=) = 9% Pr(bit=) = 65% Pr(bit=) = 55% Pr(bit=) = 55% Pr(bit=) = 65% Pr(bit=) = 9% 7

ITR Decoders with Soft Information - RS code: t=2 LDPC code (same parity size) Soft ITR decoders significantly outperform hard decision counterparts -2 SFR -3-4 Hard, single pass decoder Hard input, soft ITR decoder Soft input, Soft ITR decoder 7.6 7.8 8 8.2 8.4 8.6 8.8 9 9.2 9.4 9.6 9.8 SNR [db] Raw BER 8

Decoding LDPC Codes 9

Representation on Bi-Partite (Tanner) Graphs variable nodes encoded bits check nodes parity check constraints Each bit in the parity check matrix is represented by an edge between corresponding variable node (column) and check node (row) = H 2

Hard Decision Decoding: Bit-Flipping Decoder Decision to flip a bit is made based on the number of unsatisfied checks connected to the bit End First Second of step first step Valid codeword The The second Examine left-most bit from number bit Flip is the the the left of Flip only second unsatisfied the bit left-most that only bit has from bit check that bit 2 the unsatisfied neighbors has left 2 unsatisfied check for each neighbors check bit neighbors 2

Bit-Flipping Decoder Progress on a Large LDPC Code Decoder starts with a relatively large number of errors As decoder progresses, some bits are flipped to their correct values Syndrome weight improves As this happens, it becomes easier to identify the bits that are erroneous and to flip the remaining error bits to actual (i.e. written / transmitted) values Number of bit errors 9 5 2 6 4 2 Syndrome weight 3 Iteration 36 6 26 4 6 2 3 4 5 6 7 Iteration 22

Soft Information Representation The information used in soft LDPC decoder represents bit reliability metric, LLR (log-likelihood-ratio) P( bi LLR( b ) = log i P( bi = = The choice to represent reliability information in terms of LLR as opposed to probability metric is driven by HW implementation consideration ) ) The following chart shows how to convert LLRs to probabilities (and vice versa) 23

Soft Information Representation Bit LLR> implies bit= is more likely, while LLR< implies bit= is more likely.9.8.7 P( = ) b i P(b l =).6.5.4.3.2. - -8-6 -4-2 2 4 6 8 LLR 24

Soft Message Passing Decoder LDPC decoding is carried out via message passage algorithm on the graph corresponding to a parity check matrix H m = m = Check nodes (rows of H) m = 2 Bit nodes (columns of H) n = n = n = 2 n = 3 n = 4 n = 5 n = 6 The messages are passed along the edges of the graph First from the bit nodes to check nodes And then from check nodes back to bit nodes 25

Soft LDPC Decoder There are four types of messages Message from the channel to the n-th bit node L n () Message from n-th bit node to the m-th check node Q i n > m Message from the m-th check node to the n-th bit node R () i m > n Overall reliability information for n-th bit-node at the end of iteration () i P n m = m = m = 2 (i) R > 3 R (i) 2 > 3 ( i ) Q 3 > P ( i ) 6 n = n = n = 2 n = 3 n = 4 n = 5 n = 6 L 3 Channel Detector 26

Soft LDPC Decoder (cont.) Message passing algorithms are iterative in nature One iteration consists of upward pass (bit node processing/variable node processing): bit nodes pass the information to the check nodes downward pass (check node processing): check nodes send the updates back to bit nodes The process then repeats itself for several iterations 27

Soft LDPC Decoder (cont.) () Q i > Bits-to-checks pass: n m : n-th bit node sums up all the information it has received at the end of last iteration, except the message that came from m-th check node, and sends it to m-th check node At the beginning of iterative decoding all R messages are initialized to zero m = m = m = 2 R i > 3 R i 2 > 3 Q i 3 > = L 3 + m ' R i m ' > 3 n = n = n = 2 n = 3 n= 4 n = 5 n = 6 L 3 Channel Detector 28

Soft LDPC Decoder (cont.) Checks-to-bits pass: Check node has to receive the messages from all participating bit nodes before it can start sending messages back Least reliable of the incoming extrinsic messages determines magnitude of check-to-bit message. Sign is determined so that modulo 2 sum is satisfied bits to checks m checks to bits m Q i n > m = i Q n = 2 > m 5 i Q n = 3 > 3 m i i i R -5 R = > 2-5 = m > n m n R = m > n 3 n n 2 n 3 n n 2 n 3 29

Soft LDPC Decoder (cont.) At the end of each iteration, the bit node computes overall reliability information by summing up ALL the incoming messages P L R > () i () i n m n m n = + () i P s are then quantized to obtain hard decision values for each bit n x n < n =, else () i, if P Stopping criterion for an LDPC decoder Maximum number of iterations have been processed OR All parity check equations are satisfied 3

LDPC Decoder Error Correction: Example st iteration: m = m = m = 2-9 +7 +4-2 +4 +7 +4 + - n = n = n = 2 n = 3 n = 4 n = 5 n = 6-9 +7-2 +4 +7 + - m = m = m = 2 +4-4 -7 +4-7 -4 - -4 +4 n = n = n = 2 n = 3 n = 4 n = 5 n = 6 3

LDPC Decoder Error Correction: Example APP messages and hard decisions after st iteration: m = m = m = 2 +4-4 -7 +4-7 -4 - -4 +4 n = n = n = 2 n = 3 n = 4 n = 5 n = 6-9 +7-2 +4 +7 + - P: -5 +3-8 -2 +3 +6-7 HD: Valid codeword (syndrome = ) 32

LDPC Decoder Error Correction: Example 2 st iteration: m = m = m = 2-9 -7-4 -2-4 +7-4 + - n = n = n = 2 n = 3 n = 4 n = 5 n = 6-9 -7-2 -4 +7 + - m = m = m = 2 +4 +4 +7-4 -7 +4 - +4-4 n = n = n = 2 n = 3 n = 4 n = 5 n = 6 33

LDPC Decoder Error Correction: Example 2 2 nd iteration: m = m = m = 2-9 -7-2 -2-7 +7-4 + - n = n = n = 2 n = 3 n = 4 n = 5 n = 6-9 -7-2 -4 +7 + - m = m = m = 2 +7 +9 +7-7 -7 +7 - +4-4 n = n = n = 2 n = 3 n = 4 n = 5 n = 6 34

LDPC Decoder Error Correction: Example 2 APP messages and hard decisions after 2 nd iteration: m = m = m = 2 +7 +9 +7-7 -7 +7 - +4-4 n = n = n = 2 n = 3 n = 4 n = 5 n = 6-9 -7-2 -4 +7 + - P: -2 +2-9 -4 +4 +4-5 HD: Valid codeword (syndrome = ) 35

Sum-Product and Min-Sum Decoders Sum-Product: Optimal update rules at the check nodes request implementation of fairly complex tanh() function and its inverse Instead of these update rules, simple approximate rules have been devised: The rules require only computing minimum messages at each check node In order to make approximation work, it is necessary/critical to utilize scaling/offsetting of messages from check to bit nodes This algorithm is widely known as min-sum with scaling/offset and is often choice of implementation in Hardware m m i Q n = > m i Q n = 2 > m 5 i Q n = 3 > 3 m i i R -4 = i > 2-8 4 = m > n R m n R = m > n 3 n n 2 n 3 n n 2 n 3 36

Histogram of LLRs on Large LDPC Codes LDPC min-sum decoder on AWGN channel One critical advantage of soft (min-sum) decoder is that it can utilize the information on bits provided by several reads Using multiple reads reveals additional information for each individual bit position (bin allocation / LLR mapping) Soft decoder could start with a fairly large number of LLRs with incorrect signs Decision bin A Decision bin B Decision bin C Decision bin C Decision bin B Decision bin A V REF 5 V REF 3 V REF V REF 2 V REF 4 Pr(bit=) = 9% Pr(bit=) = 65% Pr(bit=) = 55% Pr(bit=) = 55% Pr(bit=) = 65% Pr(bit=) = 9% 37

Histogram of LLRs on Large LDPC Codes Soft decoder could start with a fairly large number of LLRs with incorrect signs Decoder takes advantage of the original soft information and improves the information on some bits during the initial iteration As iterations progress, propagation of improved information continues. This reduces the number of bit positions with incorrect LLR signs (hard-decisions) Eventually, all bit positions receive correct sign of LLRs: at this point the syndrome will verify that a valid codeword is found and decoder can terminate 9 Number of bit errors 442 294 224 66 4 53 2-6 24 Syndrome weight 874 Iteration Iteration counter 23 45 67 42 322 266 96 6 8 2 3 4 5 6 7 Iteration

Performance / Complexity Trade-Offs The choice of number of iterations is typically made with consideration of the following parameters: Throughput / Latency SNR performance (Capacity gain) Implementation Complexity Power Consumption SNR performance (Capacity gain) Implementation Complexity - Throughput & Latency System Performance Power Consumption -2 SFR -3-4 Fixing throughput/latency & increasing parallelism in implementation SNR [db] Raw BER 39

Code Design, Code Performance Characteristics and Efficient Hardware 4

Quasi-Cyclic LDPC Codes Generally, structure of the matrix needs to accommodate easier HW implementation Typical approach is to use quasi-cyclic LDPC codes P P With such matrix structures, row/column processing in decoding can be parallelized, e.g. process P variable/check nodes in a single clock cycle The same processors could be utilized with scheduling and memory addressing handling different portions of the parity check matrix in different clock cycles 4

Layered / Flooding Decoder Updates of messages may be done in a flooding fashion or in a layered (serial) fashion Both of these decoders benefit from structured matrices that naturally allow for parallel processing of a portion of the matrix, i.e. parallel processing of some number of rows / columns in the matrix The main difference in layered decoding approach is that the information is utilized in serial fashion: New messages are utilized during the current iteration, as opposed to the flooding decoder that obtains new information on all nodes exactly once in each iteration It has been demonstrated that layered/serial decoder can converge in about ½ of the number of iterations needed by flooding decoder 42

LDPC Iterative Decoder Performance Characteristics 43

RS-ECC Performance Characterization RS ECC performance is completely determined by its correction power t (in symbols) For example, RS ECC with correction power t = 6 symbols. This code is capable of correcting up to 2t = 32 symbols of erasure. There is no restriction on the erasure symbol locations within a sector. The code is capable of correcting t = 6 symbol errors regardless of type and location. Sector failure rate of RS ECC keeps falling at exponential rate with SNR increase No flattening of SFR vs. SNR curve is observed at higher SNR s 44

LDPC Decoder Performance Characterization LDPC ITR decoder correction guarantees Little to no deterministic performance guarantees are provided by the code Error correction is probabilistic Code is capable of fixing hundreds of bit errors, but may fail (with small probability) even if there are only few bit errors present Decoder implementation (e.g. quantization of messages) is just as important to the final performance as code design For a fixed ITR code, the differences in decoder implementation can have significant effect on overall performance SyER/SFR LDPC SNR [db] Poor decoder implementation might result in high error floor waterfall region LDPC system operating region RS/BCH error floor region 45

LDPC ITR Decoder Error Rate Characteristics Waterfall region BER/SFR drops rapidly with small change in SNR Error Floor (EF) region (High SNR region) BER/SFR drop is much slower Specific structures in the LDPC code graph lead to decoding errors at high SNRs structures known as Near-Codewords (trapping sets) are dominant in the EF region LDPC RS/BCH LDPC system operating region waterfall region SyER/SFR error floor region SNR [db] 46

Mitigating Error Floor of LDPC Code SFR -5 - Retry mode performance of Iterative code; Rate.89;.5K sector size; Bit-true Simulator On-The-Fly Error Floor Error Floor After Retry Code design can be tailored to achieve the error floor bellow HER requirements Another strategy to push error floor to desired levels is via post-processing methodologies -5-2 7 7.5 8 8.5 9 SNR[dB] 47

Summary Iterative LDPC codes can enable FLASH industry to hit new capacity milestones Types of Decoders: Hard: Bit-Flipping Decoders Soft: Sum-Product (Min-Sum) Decoders Soft message passing decoders offer large SNR gains this translates to capacity gains Optimized ITR codes/decoders are known to deliver performance near the theoretical limits in the channels dominated by random noise, e.g. AWG noise Handling the error floor phenomenon in ITR decoders Code matrix design Decoder design Post-processing 48

APPENDIX 49

LDPC Iterative Error Rate Characteristics In high-snr region, dominant errors are near-codewords (trapping sets) As the name suggests, near-codewords look similar to true codewords. More precisely they have low syndrome weight violating only few of the parity check equations Recall that a valid codeword has syndrome weight of Iterative decoder gets trapped into one of NCW s, and is unable to come out of this steady state (or oscillating state) Even if decoder has time to run s of iterations, it would not be able to come out of the trapping set 5

Code Selection SFR profile as a function of code/decoder selection -2-4 lower error floor higher error floor Optimizing code/decoder selection based on the performance at low SNR s only may lead to impractical code selection. SFR -6-8 There is a trade-off to be made between performance at low SNR s, defect correction, and error floor (performance at high SNR s) - -2 7 7.5 8 8.5 9 SNR 5

Mis-Correction in LDPC Decoding 52

Minimum Distance of a Code The minimum of all the distance between any two code words is called the minimum distance of the code, denoted by d min d min 53

Decoder Miscorrection Miscorrection: For an error correcting code, when the received sequence falls into the decoding area of an erroneous code word, the decoder may deliver the wrong code word as the decoding result. transmitted code word Received sequence Erroneous code word Decoder Error 54

Iterative Error Rate Characteristics Production grade devices will operate in the Error Floor region (High SNR region) Dominant Error Events in error floor region are near-codewords Mis-correction is much lower probability event than dominant nearcodewords BER/SFR LDPC system operating region waterfall region error floor region SNR [db] mis-correction 55