Syndrome-Coupled Rate-Compatible Error-Correcting Codes for Flash Memories Pengfei Huang 1 , Yi Liu 1 , Xiaojie Zhang 2 , Paul H. Siegel 1 , Erich F. Haratsch 3 1 Center for Memory and Recording Research, UCSD 2 CNEX Labs, San Jose, CA 3 Seagate Technology, CA NVMW, Mar. 12, 2018 Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 1 / 24
Outline Introduction and Background 1 Syndrome-Coupled Code Construction 2 Correctable Patterns and Decoding 3 Capacity-Achieving Rate-Compatible Codes 4 Applications to MLC Flash Memories 5 Summary 6 Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 2 / 24
Motivation Flash memory channels degrade with use. 10 -2 Bit Error Rate (BER) 10 -3 10 -4 10 -5 Average RBER Lower Page RBER Upper Page RBER 10 -6 0 2000 4000 6000 8000 10000 Program/Erase (P/E) Cycle Count Stronger error correction capability is needed as wear increases. We propose a general code construction to address this need: syndrome-coupled rate-compatible error-correcting codes Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 3 / 24
Introduction to Rate-Compatible Codes Rate-compatible codes: a family of extended codes {C i } i =1 ,..., M . Code C i +1 obtained from code C i by adding redundancy symbols. Decreasing rate, but increasing error-correcting capability. Example: a family of 3-level rate-compatible codes. Codes: C 1 ≺ C 2 ≺ C 3 . Rates: R 1 > R 2 > R 3 . r 2 r 3 c 1 c 2 c 3 Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 4 / 24
Introduction to Rate-Compatible Codes Rate-compatible codes: a family of extended codes {C i } i =1 ,..., M . Code C i +1 obtained from code C i by adding redundancy symbols. Decreasing rate, but increasing error-correcting capability. Example: a family of 3-level rate-compatible codes. Codes: C 1 ≺ C 2 ≺ C 3 . Rates: R 1 > R 2 > R 3 . r 2 r 3 c 1 c 2 c 3 Challenge: How to systematically add these redundancy symbols. Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 4 / 24
Outline Introduction and Background 1 Syndrome-Coupled Code Construction 2 Correctable Patterns and Decoding 3 Capacity-Achieving Rate-Compatible Codes 4 Applications to MLC Flash Memories 5 Summary 6 Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 5 / 24
Syndrome-Coupled Code Construction Example: a family of 3-level rate-compatible codes C 1 ≺ C 2 ≺ C 3 . Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 6 / 24
Syndrome-Coupled Code Construction Example: a family of 3-level rate-compatible codes C 1 ≺ C 2 ≺ C 3 . 1) Choose nested codes C 3 1 ⊂ C 2 1 ⊂ C 1 1 = C 1 = [ n 1 , n 1 − v 1 , d 1 ] q . 1 = [ n 1 , n 1 − � i C i m =1 v m , d i ] q for 1 ≤ i ≤ 3, d 1 ≤ d 2 ≤ d 3 . Parity-check matrices of C 1 1 , C 2 1 , and C 3 1 . � � H C 1 H C 1 1 1 H C 2 H C 1 H C 2 1 = H C 3 1 = 1 |C 1 H C 2 1 1 1 |C 1 1 H C 3 1 |C 2 1 Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 6 / 24
Syndrome-Coupled Code Construction Example: a family of 3-level rate-compatible codes C 1 ≺ C 2 ≺ C 3 . 1) Choose nested codes C 3 1 ⊂ C 2 1 ⊂ C 1 1 = C 1 = [ n 1 , n 1 − v 1 , d 1 ] q . 1 = [ n 1 , n 1 − � i C i m =1 v m , d i ] q for 1 ≤ i ≤ 3, d 1 ≤ d 2 ≤ d 3 . Parity-check matrices of C 1 1 , C 2 1 , and C 3 1 . � � H C 1 H C 1 1 1 H C 2 H C 1 H C 2 1 = H C 3 1 = 1 |C 1 H C 2 1 1 1 |C 1 1 H C 3 1 |C 2 1 2) Choose two auxiliary nested codes A 3 2 ⊂ A 2 2 . A 3 2 = [ n 2 , v 2 − λ 3 2 ] q and A 2 2 = [ n 2 , v 2 ] q . Parity-check matrices of A 2 2 and A 3 2 . � � H A 2 2 H A 2 H A 3 2 = H A 3 2 2 |A 2 2 Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 6 / 24
Syndrome-Coupled Code Construction Example: a family of 3-level rate-compatible codes C 1 ≺ C 2 ≺ C 3 . 1) Choose nested codes C 3 1 ⊂ C 2 1 ⊂ C 1 1 = C 1 = [ n 1 , n 1 − v 1 , d 1 ] q . 1 = [ n 1 , n 1 − � i C i m =1 v m , d i ] q for 1 ≤ i ≤ 3, d 1 ≤ d 2 ≤ d 3 . Parity-check matrices of C 1 1 , C 2 1 , and C 3 1 . � � H C 1 H C 1 1 1 H C 2 H C 1 H C 2 1 = H C 3 1 = 1 |C 1 H C 2 1 1 1 |C 1 1 H C 3 1 |C 2 1 2) Choose two auxiliary nested codes A 3 2 ⊂ A 2 2 . A 3 2 = [ n 2 , v 2 − λ 3 2 ] q and A 2 2 = [ n 2 , v 2 ] q . Parity-check matrices of A 2 2 and A 3 2 . � � H A 2 2 H A 2 H A 3 2 = H A 3 2 2 |A 2 2 3) Choose another auxiliary code A 3 3 = [ n 3 , v 3 + λ 3 2 ] q . Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 6 / 24
❝ ✉ s ❝ s ❝ ❛ s s ❝ ❝ ❛ ❝ ❝ s ❝ s ❝ ❛ ❛ ❛ s s ❝ ❝ ❛ ❛ ❝ ❝ Encoding Given: Length- k information vector ✉ over F q . Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 7 / 24
s ❝ s ❝ ❛ s s ❝ ❝ ❛ ❝ ❝ s ❝ s ❝ ❛ ❛ ❛ s s ❝ ❝ ❛ ❛ ❝ ❝ Encoding Given: Length- k information vector ✉ over F q . 1) Compute codeword in C 1 ❝ 1 = E C 1 ( ✉ ) ∈ C 1 . Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 7 / 24
s ❝ s ❝ ❛ ❛ ❛ s s ❝ ❝ ❛ ❛ ❝ ❝ Encoding Given: Length- k information vector ✉ over F q . 1) Compute codeword in C 1 ❝ 1 = E C 1 ( ✉ ) ∈ C 1 . 2) Compute extra redundancy for C 2 s 2 = ❝ 1 H T (compute syndrome s 2 of ❝ 1 ) C 2 1 |C 1 1 ❛ 2 2 = E A 2 2 ( s 2 ) (encode syndrome s 2 ) ❝ 2 = ( ❝ 1 , ❛ 2 2 ) (append to ❝ 1 to get ❝ 2 ∈ C 2 ) Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 7 / 24
Encoding Given: Length- k information vector ✉ over F q . 1) Compute codeword in C 1 ❝ 1 = E C 1 ( ✉ ) ∈ C 1 . 2) Compute extra redundancy for C 2 s 2 = ❝ 1 H T (compute syndrome s 2 of ❝ 1 ) C 2 1 |C 1 1 ❛ 2 2 = E A 2 2 ( s 2 ) (encode syndrome s 2 ) ❝ 2 = ( ❝ 1 , ❛ 2 2 ) (append to ❝ 1 to get ❝ 2 ∈ C 2 ) 3) Compute extra redundancy for C 3 s 3 = ❝ 1 H T (compute syndrome s 3 of ❝ 1 ) C 3 1 |C 2 1 Λ 3 2 = ❛ 2 2 H T (compute syndrome Λ 3 2 of ❛ 2 2 ) A 3 2 |A 2 2 ❛ 3 3 ( s 3 , Λ 3 2 ) (encode coupled syndrome s 3 , Λ 3 3 = E A 3 2 ) ❝ 3 = ( ❝ 1 , ❛ 2 2 , ❛ 3 3 ) (append to ❝ 2 to get ❝ 3 ∈ C 3 ) Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 7 / 24
Encoding: Summary Syndrome-coupled encoding : = E C 1 ( ✉ ) ❝ 1 � � ( ❝ 1 , ❛ 2 = 2 ) = E C 1 ( ✉ ) , E A 2 2 ( s 2 ) ❝ 2 � � ( ❝ 1 , ❛ 2 2 , ❛ 3 3 ( s 3 , Λ 3 = 3 ) = E C 1 ( ✉ ) , E A 2 2 ( s 2 ) , E A 3 2 ) ❝ 3 r 2 r 3 c 1 c 2 c 3 Key idea: generate and encode syndromes progressively. Generalizes to any number of levels. Applicable to many codes, e.g., BCH, RS, LDPC, and Polar. Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 8 / 24
Minimum Distance Theorem Assume the auxiliary codes in the construction have minimum distances: d min ( A 2 d min ( A 3 2 ) = d 2 − d 1 2 ) = d 3 − d 1 d min ( A 3 3 ) = d 3 − d 2 Then, the syndrome-coupled codes C i , 1 ≤ i ≤ 3 , have length N i = � i j =1 n j , dimension k = n 1 − v 1 , and minimum distance d i . C 1 1 = [ n 1 , n 1 − v 1 , d 1 ] 1 = [ n 1 , n 1 − � 2 C 2 A 2 i =1 v i , d 2 ] 2 = [ n 2 , v 2 , d 2 − d 1 ] C 3 1 = [ n 1 , n 1 − � 3 A 3 2 = [ n 2 , v 2 − λ 3 A 3 3 = [ n 3 , v 3 + λ 3 i =1 v i , d 3 ] 2 , d 3 − d 1 ] 2 , d 3 − d 2 ] C 1 = [ n 1 , k , d 1 ] q ≺ C 2 = [ n 1 + n 2 , k , d 2 ] q ≺ C 3 = [ n 1 + n 2 + n 3 , k , d 3 ] q . Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 9 / 24
Outline Introduction and Background 1 Syndrome-Coupled Code Construction 2 Correctable Patterns and Decoding 3 Capacity-Achieving Rate-Compatible Codes 4 Applications to MLC Flash Memories 5 Summary 6 Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 10 / 24
❝ ❝ ❛ ❛ ✉ s s ② ② ② ② ② ② ② Correctable Error-Erasure Patterns C 1 = [ n 1 , k , d 1 ] q ≺ C 2 = [ n 1 + n 2 , k , d 2 ] q ≺ C 3 = [ n 1 + n 2 + n 3 , k , d 3 ] q . Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 11 / 24
② ② Correctable Error-Erasure Patterns C 1 = [ n 1 , k , d 1 ] q ≺ C 2 = [ n 1 + n 2 , k , d 2 ] q ≺ C 3 = [ n 1 + n 2 + n 3 , k , d 3 ] q . � � Transmit: ❝ 3 = ( ❝ 1 , ❛ 2 2 , ❛ 3 3 ( s 3 , Λ 3 3 ) = E C 1 ( ✉ ) , E A 2 2 ( s 2 ) , E A 3 2 ) ∈ C 3 . Receive: ② = ( ② 1 , ② 2 , ② 3 ), ② ∈ ( F q ∪ { ? } ) n 1 + n 2 + n 3 . Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 11 / 24
Correctable Error-Erasure Patterns C 1 = [ n 1 , k , d 1 ] q ≺ C 2 = [ n 1 + n 2 , k , d 2 ] q ≺ C 3 = [ n 1 + n 2 + n 3 , k , d 3 ] q . � � Transmit: ❝ 3 = ( ❝ 1 , ❛ 2 2 , ❛ 3 3 ( s 3 , Λ 3 3 ) = E C 1 ( ✉ ) , E A 2 2 ( s 2 ) , E A 3 2 ) ∈ C 3 . Receive: ② = ( ② 1 , ② 2 , ② 3 ), ② ∈ ( F q ∪ { ? } ) n 1 + n 2 + n 3 . For 1 ≤ i ≤ 3, let t i and τ i denote the number of errors and erasures in the sub-block ② i of the received word ② . Theorem The code C 3 can correct any combined error and erasure pattern that satisfies the following conditions: 2 t 1 + τ 1 ≤ d 3 − 1 , 2 t 2 + τ 2 ≤ d 3 − d 1 − 1 , 2 t 3 + τ 3 ≤ d 3 − d 2 − 1 . Huang et al. Syndrome-Coupled Rate-Compatible Codes Mar. 12, 2018 11 / 24
Recommend
More recommend