Staircase Codes for High-Speed Optical Communications Frank R. Kschischang Dept. of Electrical & Computer Engineering University of Toronto (Joint work with Lei Zhang, Benjamin Smith, Arash Farhood, Andrew Hunt, John Lodge, and Dmitry Trukhachev) Jacobs University, Bremen, Germany August 21st, 2014 1
Acknowledgements Joint work with: Benjamin P. Smith, Lei Zhang University of Toronto Andrew Hunt and John Lodge Communications Research Centre, Ottawa Arash Farhood Cortina Systems Inc., Sunnyvale/Ottawa Dmitry Trukhachev Dalhousie University, Halifax Thank you to the organizers, especially Werner Henkel, for organizing, and for inviting me to speak! 2
Source: Nicolas Rapp, Fortune Magazine, July 23, 2012 3
eunetworks Optical Fiber Network Map Source: www.eunetworks.de 4
Fiber-Optic Communication Systems: Challenges Reliability P e < 10 15 5
Fiber-Optic Communication Systems: Challenges Reliability P e < 10 15 Speed 100 Gb/s per-channel data rates 5
Fiber-Optic Communication Systems: Challenges Reliability P e < 10 15 Speed 100 Gb/s per-channel data rates Non-Linearity The fiber-optic channel is non-linear in the input power (very interesting topic, but not part of this talk) 5
Outline of Talk This talk is about... Outline FEC for the binary symmetric channel (BSC) After optical (and/or) electrical compensation, suitable as forward-error-correction (FEC) for 100Gb/s PD-QPSK systems without soft information 1 Existing solutions (G.975, G.975.1) 2 Implementation considerations 3 Staircase codes 4 Ensemble analysis 5 Conclusions 6
Measures Net Coding Gain Given a particular BER, we can obtain the corresponding Q via Q = 2erfc 1 (2 BER). The coding gain (CG) of an error-correcting code is defined as CG (in db) = 20 log 10 (Q out /Q in ), and the Net Coding Gain (NCG) is NCG (in db) = CG + 10 log 10 (R), where R is the rate of the code. Overhead Overhead = # redundant symbols # information symbols = n k k = 1 R R 7
Existing Solutions 8
ITU-T G.975 (1996) Reed-Solomon (255,239) Code Coding Symbols are bytes Depth-16 interleaving corrects (some) bursts up to 1024 bits Coding Gain = 6.1 db Net Coding Gain = 5.8 db Overhead = 16/239 = 6.69% P[e] 10-3 10-6 10-9 10-12 10-15 Shannon Limit (C=239/255) 2-PSK Limit (C=239/255) BSC Limit (C=239/255) 6.1 db 0 5 10 15 20 20 log 10 (Q) (db) RS(255,239) uncoded 2-PSK Constraint: Rate and framing structure fixed for future generations 9
ITU-T G.975.1 (2004) Concatenated Codes Product-like codes with algebraic component codes k a n a C C k b Information Symbols Row Parity Π n b Column Parity Parity on Parity 10
ITU-T G.975.1 (2004) Code NCG Notes I.2 8.88 db @ 10 15 Outer RS, Inner CSOC I.3 8.99 db @ 10 15 Outer BCH (t = 3), Inner BCH (t = 10) I.4 8.67 db @ 10 15 Outer RS, Inner BCH (t = 8) I.5 8.5 db @ 10 15 Outer RS, Inner Product (t = 1) I.6 8.02 db @ 10 15 LDPC I.7 8.09 db @ 10 15 Outer BCH (t = 4), Inner BCH (t = 11) I.8 8.00 db @ 10 15 RS(2720,2550) I.9 8.63 db @ 7 10 14 Product BCH (t = 3), Erasure Dec? 11
Objectives Increased Net Coding Gain NCG Shannon Limit of BSC (9.97 db at 10 15 ) Error Floor Error floor 10 15 Lower error floor Insurance in presence of correlated errors Block Length n 2 10 6 or less Low Implementation Complexity Dataflow considerations at 100Gb/s 12
Implementation Considerations 13
Hardware Considerations: Product vs. LDPC Product Code C Π C Algebraic component codes Syndrome-based decoding LDPC Code Π SPC component codes Belief propagation decoding 14
Syndrome-based Decoding of Product Codes Decoding an (n, k) component codeword n received symbols n k symbol syndrome R = 239/255, n 1000, n k 32 For high-rate codes, syndromes provide compression 3 decodings/component 96 bits/decoding 2 1000 components/symbol 0.768 bits/symbol Syndrome Algebraic Decoder Error Locators Update Syndromes Total Dataflow At 100Gb/s, 76.8 Gb/s internal dataflow 15
LDPC Belief Propagation Decoding 15 iterations 2 messages/iteration edge 5 bits/message 3 edges/symbol 450 bits/symbol Π Total Dataflow At 100Gb/s, 45Tb/s internal dataflow! 16
Dataflow Comparison 76.8 Gb/s 45 Tb/s 2 3 orders of magnitude (huge implementation challenge for soft message-passing LDPC decoders). 17
Our Solution 18
Coding with Algebraic Component Codes C 1 C 2 C 3 C l Π Graph Optimization Degrees of Freedom Mixture of component codes (e.g., Hamming, BCH) Multi-edge-type structures 19
Staircase Codes: Construction Consider a sequence of m-by-m matrices B i m B 1 B 0 B 1 B 2 m and a linear, systematic, (n = 2m, k = 2m r) component code C 2m r Information r Parity Encoding Rule i 0, all rows of [ B T i 1 B i] are codewords in C 20
Staircase Codes: Construction B 1 B T 0 B 1 B T 2 B 3 21
Staircase Codes: Construction B 1 B T 0 B 1 B T 2 B 3 21
Staircase Codes: Construction B 1 B T 0 B 1 B T 2 B 3 21
Staircase Codes: Construction B 1 B T 0 B 1 B T 2 B 3 21
Staircase Codes: Construction B 1 B T 0 B 1 B T 2 B 3 21
Staircase Codes: Construction B 1 B T 0 B 1 B T 2 B 3 21
Staircase Codes: Construction B 1 B T 0 B 1 B T 2 B 3 21
Staircase Codes: Properties Hybridization of recursive convolution coding and block coding Recurrent Codes of Wyner-Ash (1963) Info i B i 1 Algebraic Encoder Delay B i Rate : R = 1 r/m Variable-latency (sliding-window) decoder B i 1 B i B i+1 B i+2 B i+3 B i+4 22
Staircase Codes are a type of Braided Block Code I P P Felström, Truhachev, Lentmaier, Zigangirov, Braided Block Codes, IEEE Trans. on Info. Theory, 2009. 23
Staircase Codes are a type of Braided Block Code I P P I P P Felström, Truhachev, Lentmaier, Zigangirov, Braided Block Codes, IEEE Trans. on Info. Theory, 2009. 23
Staircase Codes are a type of Braided Block Code I P P I P P I P P Felström, Truhachev, Lentmaier, Zigangirov, Braided Block Codes, IEEE Trans. on Info. Theory, 2009. 23
Staircase Codes: Properties B T i Bi+1 B T i+2 Bi+3 The multiplicity of (minimal) stalls of size (t + 1) (t + 1) is K = ( ) m t + 1 t+1 j=1 ( )( ) m m, j t + 1 j and the corresponding contribution to the error floor, for transmission over a binary symmetric channel with crossover probability p, is BER floor = K (t + 1)2 m 2 p (t+1)2. 24
General Stall Patterns B T i B i+1 B T i+2 B i+3 (5,5)-stall K L Contribution 4 4 3.55 10 21 4 5 7.81 10 28 5 5 2.54 10 22 5 6 2.21 10 28 6 6 1.40 10 23 6 7 1.49 10 29 7 7 8.53 10 25 7 8 1.83 10 32 Contribution of (K, L)-stalls, p = 4.8 10 3. 25
Graphical Representation most reliable least reliable Π Π Π C C Π 26
Movie Time (Sliding Window Decoding) B i 1 B i B i+1 B i+2 B i+3 B i+4 play movie 27
FPGA-based Simulation Results Code Parameters m = 510, r = 32, triple-error-correcting BCH component code 20 log 10 (Q) (db) 7.5 8.0 8.5 9.0 9.5 10.0 10.5 11.0 10-6 10-7 10-8 10-9 10-10 BER out 10-11 10-12 BSC Limit (C=239/255) Staircase I.9 G.975.1 codes I.3 I.4 I.5 RS(255,239) 10-13 10-14 10-15 10-2 10-3 BER in 10-4 28
Further Staircase Code Designs Systematically searched over space of staircase codes with shortened primitive BCH component decoders over length 2 m with: 1 R {l/(l + 1) : l = 3, 4,..., 16} 2 t {2, 3,..., 6} 3 m {8, 9, 10, 11, 12} Two-stage search process 1 idealized decoding without mis-corrections (to estimate performance) 2 full-blown simulations with actual decoders, with performance extrapolation to a BER of 10 15. 29
Staircase code designs with t = 4 component codes OH (%) m w p NCG (db) Gap (db) 6.25 11 748 4.70e-03 9.44 0.45 9.09 10 480 7.04e-03 9.82 0.52 10.00 10 440 7.54e-03 9.87 0.59 11.11 10 400 8.33e-03 9.96 0.63 12.50 10 360 9.29e-03 10.05 0.68 14.29 10 320 1.03e-02 10.13 0.77 16.67 9 252 1.25e-02 10.32 0.78 20.00 9 216 1.44e-02 10.41 0.92 23.10 9 192 1.62e-02 10.49 1.03 25.00 9 180 1.76e-02 10.56 1.06 33.33 9 144 2.12e-02 10.60 1.38 Table: NCG calculated from extrapolated p. Gap is NCG gap to BSC capacity. 30
Staircase code designs with t = 5 component codes OH (%) m w p NCG (db) Gap (db) 6.67 11 880 5.16e-03 9.54 0.43 7.15 11 825 5.54e-03 9.60 0.45 7.69 11 770 5.90e-03 9.66 0.48 23.10 9 240 1.71e-02 10.58 0.94 25.00 9 225 1.82e-02 10.62 1.00 33.33 9 180 2.24e-02 10.70 1.28 Table: NCG calculated from extrapolated p. Gap is NCG gap to BSC capacity. 31
Net Coding Gain vs. Overhead Net Coding Gain (db) 13 12 11 10 BSC capacity t = 4 staircase codes t = 5 staircase codes Codes from [4] Code from [5] 9 5 10 15 20 25 30 35 Overhead (%) 32
Extrapolated Simulation Results 10 1 10 4 10 7 BER 10 10 10 13 10 16 0.45 0.5 0.55 0.6 0.7 0.8 0.9 1 1.1 1.3 1.7 2.1 2.5 10 2 p 10 2 10 2 33
Ensemble Analysis 34
Prior Work Cores in random graphs [Molloy, 2005][Janson, 2007] A k-core of G is a subgraph in which each vertex has degree at least k. Peeling algorithm to identify graph cores Threshold on core emergence for G(n, p) A (t + 1)-core corresponds to an uncorrectable error pattern Poisson analysis of product codes [Justesen, 2011] Very long component codes No mis-correction assumption Iterative row-column peeling decoding Recursive update of Poisson parameters 35
Prior Work (cont d) Our analysis affirms (with a different approach) these earlier results: Hard-decision decoding of spatial-coupled GLDPC codes [Pfister, 2012, Pfister, 2013] Bounded-distance decoding Density evolution of average bit-error probability Potential threshold 36
References M. Molloy Cores in random hypergraphs and Boolean formulas. Random Structures & Algorithms, vol. 27, no. 1, pp. 124-135, Aug. 2005. S. Janson, M.J. Luczak A simple solution to the k-core problem. Random Structures & Algorithms, vol. 30, no. 1-2, pp. 50-62, Jan. 2007. J. Justesen Performance of product codes and related structures with iterated decoding. IEEE Trans. Commun., vol. 59, no.2, pp. 407-415, Feb. 2011. Y.-Y. Jian, H.D. Pfister, K.R. Narayanan Approaching capacity at high rates with iterative hard-decision decoding. 2012 IEEE International Symposium on Information Theory Proceedings, pp. 2696-2700, 1-6 July 2012. A. Yedla, Y.-Y. Jian, P.S. Nguyen, H.D. Pfister A simple proof of Maxwell saturation for coupled scalar recursions. ArXiv e-prints, Sep. 2013. 37
Staircase Ensemble The (C(n, k, t), v, M, w, L) ensemble C(n, k, t): component code v: variable degree M: component codes per (spatial) position w: coupling width L: coupling length G.709-compatible staircase code C(n, k, t) = (1022, 990, 3) shortened, extended BCH v = 2, M = 512, w = 2, L = Sliding window decoding Product permutations 38
Staircase Ensemble Protograph of staircase ensemble with L = 6, w = 3 C C C C C C C C Π c Π c Π c Π c Π c Π c Π c Π c Π c Π c Π c Π c Π c Π c Π c Π c Π c Π c Π v Π v Π v Π v Π v Π v 0 1 2 3 4 5 6 7 Protograph characteristics Component codewords and variable nodes partitioned deterministically Main source of randomness is Π c 39
Staircase Ensemble Sample from a staircase ensemble with n = 18, v = 2, M = 1, w = 3, L = 3 C C C C C Π c k 0 1 2 3 4 40
Peeling Decoder Key simplifications 1 Independent edge removal as M 2 No mis-corrections (optimistic for small t) Peeling Decoding Algorithm (PD) 1 Sample each variable node from BSC(p). 2 Remove all correctly received variable nodes. 3 Remove all check nodes of degree t. 4 Remove all variable nodes adjacent to check nodes removed in 3. 5 Repeat 3 and 4 until no more check nodes can be removed. 41
Poisson Analysis Check degree Check edges (component codeword bits) are divided into w edge-types: (c 0,..., c n/w 1 c n/w,..., c 2n/w 1... c (w 1)n/w,..., c n 1 ) }{{}}{{}}{{} type 0 type 1 type w-1 A check of degree (i 0, i 1,..., i w 1 ) contains i τ edges of type τ. 42
Poisson Analysis Check degree distribution Let λ = np. For large n, the check degree distribution at position k after PD step 2 is approximately Pr{(i 0,..., i w 1 )} ( Po i τ ; λ ) w where Po(i; x) e x x i /i!. τ [w] τ [w] Po(i τ ; x τ (k, l = 0)). 43
Poisson Analysis Let x(k, l) = ξ x ξ(k, l) and define π(a, x) Po(i; x). i:i>a Check node removal The number of edges of type τ after the l-th iteration of PD step 3 is i τ M Po(i ξ ; x ξ (k, l)) = Mx τ (k, l)π(t, x(k, l)). (i 0,...,i w 1 ): i 0 + +i w 1 t+1 ξ [w] 44
Poisson Analysis Let Pr{E τ,v (k, l)} be the probability that any particular edge of type τ at position k remains after the l-th iteration of PD step 4. Poisson thinning At the beginning of iteration l + 1, the check degree distribution of {(i 0,..., i w 1 ) : i 0 + + i w 1 t + 1} is modified by the Poisson thinning process Pr{(i 0,..., i w 1 )} = Po (i τ ; x τ (k, l) Pr{E τ,v (k, l)}). τ [w] 45
Spatially Coupled Scalar Recursion For the (C(n, k, t), v,, w, L) ensemble, let x(l) = (x(0, l),..., x(l + w 2, l)) T, X = [0, x max ], Y = [0, y max ], and Λ = [0, n]. Define f : Y Λ X, g : X Y f (x, λ) = λx v 1 g(x) = π(t, x). Let f, g denote the element-wise application of f, g on a vector x and A be the canonical spatial-coupling matrix. Proposition 1 Under the initial condition x( 1) = (,..., ) T, the ensemble average Poisson parameter prior to iteration l 0 of PD is x(l) = A T f(ag(x(l 1)), λ). 46
Potential Threshold Potential function The single-system potential function for the coupled scalar recursion in Proposition 1 is [Pfister, 2013] x g(x) U s (x, λ) = xg(x) g(z) dz 0 0 ( t 1 = xπ(t, x) x π(i + 1, x) i=0 f (z, λ) dz ) λ 1 [π(t, x)]v 1 v 47
Potential Functions 16 x 10 7 14 12 10 8 U s (x,λ) 6 4 2 0 2 4 0 2 4 6 8 10 12 x top to bottom: p = 0.005697 (below threshold); p = 0.005755 (threshold); p = 0.005687 (above threshold) (n = 1022, t = 3) 48
Computed Thresholds w. Binary Primitive BCH codes (no mis-corrections) 7 10 2 6 10 2 5 10 2 4 10 2 p 3 10 2 2 10 2 1 10 2 0 0.5 0.6 0.7 0.8 0.9 1 R 49
Conclusions and Future Directions At rate 239/255, staircase codes provide best-in-class 9.41 db NCG with an efficient hardware realization Future work Analysis of component code decoding with mis-corrections GMD decoding between coupled component codes 50