Spatially-Coupled Codes: Recent Trends and Applications in Data Storage and Memories
- Prof. Lara Dolecek
Spatially-Coupled Codes: Recent Trends and Applications in Data - - PowerPoint PPT Presentation
Spatially-Coupled Codes: Recent Trends and Applications in Data Storage and Memories Prof. Lara Dolecek ECE Department, UCLA NVMW, UC San Diego, March 2019 Data-driven Demand for Dense and Reliable Memories and Storage [Source: HortonWorks] w
1
[Source: HortonWorks]
1
[Source: HortonWorks] [Source: Western Digital]
2
2
3
3
[Parnell ’14] [Garani ’18]
[Parnell ’14] [Garani ’18]
4
et al., Lentmeier et al., Mitchell et al., Kasai, and many others]
5
Ah Ahmed Ha Hareedy (now Post stdoc c at Duke ke) Siyi yi (Prisca sca) Ya Yang Ruiyi yi (Jo John) Wu Wu Lev Lev Ta Tauz Ho Homa Esf sfahaniza zadeh An Andrew Ta Tan Ze Zehui (Alex) x) Ch Chen Dr
sh Divsa vsalar Pr
cia Pr
Puneet Gu Gupta ta
val Cassu ssuto
Lar Lara a Dol
ecek ek
6
Ah Ahmed Ha Hareedy (now Post stdoc c at Duke ke) Siyi yi (Prisca sca) Ya Yang Ruiyi yi (Jo John) Wu Wu Lev Lev Ta Tauz Ho Homa Esf sfahaniza zadeh An Andrew Ta Tan Dr
sh Divsa vsalar Pr
cia Pr
Puneet Gu Gupta ta
val Cassu ssuto
Spatially y co coupled co codes s rese search ch team
Ze Zehui (Alex) x) Ch Chen
Lar Lara a Dol
ecek ek
6
Ah Ahmed Ha Hareedy (now Post stdoc c at Duke ke) Siyi yi (Prisca sca) Ya Yang Ruiyi yi (Jo John) Wu Wu Lev Lev Ta Tauz Ho Homa Esf sfahaniza zadeh An Andrew Ta Tan Dr
sh Divsa vsalar Pr
cia Pr
Puneet Gu Gupta ta
val Cassu ssuto
Givi ving talks ks at NV NVMW 2019
Ze Zehui (Alex) x) Ch Chen
Lar Lara a Dol
ecek ek
6
7
8
9
circles: variable nodes squares: check nodes
columns: variable nodes rows: check nodes
10
circles: variable nodes squares: check nodes
columns: variable nodes rows: check nodes
10
columns: variable nodes rows: check nodes circles: variable nodes squares: check nodes
𝝉𝒈𝒋,𝒌 is a circulant matrix with size p×p and power 𝑔
+,,.
𝐽 𝐽 𝐽 𝐽 𝐽 𝐽 𝜏 𝜏0 𝜏1 𝜏2 𝐽 𝜏0 𝜏2 𝜏 𝜏1 𝐽 𝜏1 𝜏 𝜏2 𝜏0
11
𝝉𝒈𝟐,𝟐 𝝉𝒈𝟐,𝟑 𝝉𝒈𝟑,𝟐 𝝉𝒈𝟑,𝟑 𝝉𝒈𝟐,𝟒 𝝉𝒈𝟑,𝟒 𝝉𝒈𝟐,𝟐 𝝉𝒈𝟐,𝟑 𝝉𝒈𝟑,𝟐 𝝉𝒈𝟑,𝟑 𝝉𝒈𝟐,𝟒 𝝉𝒈𝟑,𝟒 𝝉𝒈𝟐,𝟐 𝝉𝒈𝟐,𝟑 𝝉𝒈𝟑,𝟐 𝝉𝒈𝟑,𝟑 𝝉𝒈𝟐,𝟒 𝝉𝒈𝟑,𝟒 𝝉𝒈𝟐,𝟐 𝝉𝒈𝟐,𝟐 𝝉𝒈𝟐,𝟐 𝝉𝒈𝟑,𝟐 𝝉𝒈𝟑,𝟐 𝝉𝒈𝟑,𝟐 𝝉𝒈𝟑,𝟑 𝝉𝒈𝟑,𝟑 𝝉𝒈𝟑,𝟑 𝝉𝒈𝟐,𝟑 𝝉𝒈𝟐,𝟑 𝝉𝒈𝟐,𝟑 𝝉𝒈𝟐,𝟒 𝝉𝒈𝟐,𝟒 𝝉𝒈𝟐,𝟒 𝝉𝒈𝟑,𝟒 𝝉𝒈𝟑,𝟒 𝝉𝒈𝟑,𝟒
> +?9
12
𝐽 𝐽 𝐽 𝐽 𝐽 𝐽 𝜏 𝜏0 𝜏1 𝜏2 𝐽 𝜏0 𝜏2 𝜏 𝜏1 𝐽 𝜏1 𝜏 𝜏2 𝜏0
columns: variable nodes rows: check nodes Each 𝜏k is a 5x5 circulant
13
𝐽 𝐽 𝐽 𝐽 𝐽 𝐽 𝜏 𝜏0 𝜏1 𝜏2 𝐽 𝜏0 𝜏2 𝜏 𝜏1 𝐽 𝜏1 𝜏 𝜏2 𝜏0
columns: variable nodes rows: check nodes circles: variable nodes squares: check nodes Each 𝜏k is a 5x5 circulant
14
……….… 0 0 … 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Received sequence:
15
……….… 0 0 … 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Variable to check messages: Variable value is 1 Variable value is 0
16
……….… 0 0 … 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Check processing: Check is not satisfied Check is satisfied
17
……….… 0 0 … 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Check to variable node messages: Flip your current value (F) Keep your current value (S)
18
……….… 0 0 … 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Variable node processing – majority vote: F, F, F, F F, S, S, S S, S, S, S F, F, F, S
19
……….… 0 0 … 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Variable node processing – majority vote: F, F, F, F F, F, F, S F, S, S, S S, S, S, S
20
0 0 ……….… 0 0 0 … 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Variable node processing – majority vote:
21
0 0 ……….… 0 0 0 … 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Variable to check messages: Variable node is 1 Variable node is 0
22
0 0 ……….… 0 0 0 … 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Check processing: Check is not satisfied Check is satisfied
23
0 0 ……….… 0 0 0 … 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Check processing: Check is not satisfied Check is satisfied End of decoding: all checks are satisfied DECODING IS SUCCESSFUL
24
0 ……….… ……….… 0 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Received sequence:
25
0 ……….… ……….… 0 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Variable to check messages: Variable value is 1 Variable value is 0
26
0 ……….… ……….… 0 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Check processing: Check is not satisfied Check is satisfied Checks that receive two 1’s so they are satisfied
27
0 ……….… ……….… 0 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Check to variable node messages: Flip your current value (F) Keep your current value (S)
28
0 ……….… ……….… 0 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Variable node processing – majority vote: S, S, S, S S, S, F, S S, F, F, S S, F, S, S S, S, F, S S, F, S, S
29
0 ……….… ……….… 0 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Variable node processing – majority vote: S, S, S, S S, S, F, S S, F, F, S S, F, S, S S, S, F, S S, F, S, S No updates are made despite the presence of unsatisfied checks.
30
0 ……….… ……….… 0 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Variable node processing – majority vote:
31
0 ……….… ……….… 0 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Variable to check messages: Variable value is 1 Variable value is 0
32
0 ……….… ……….… 0 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Check processing: Check is not satisfied Check is satisfied
33
0 ……….… ……….… 0 0 circles: variable nodes squares: check nodes Assume all-zeros codeword was transmitted. Check processing: Check is not satisfied Check is satisfied Continue ad infinitum with the same unsatisfied check nodes End of decoding: reach maximum number of iterations. DECODING IS UNSUCCESSFUL
34
35
S S S S S F F F
(4,4) elementary AS
36
(3,3) elementary AS
(4,4) elementary AS
36
(3,3) elementary AS
37
𝑥: 𝑥0 𝑥1 𝑥2 𝑥B 𝑥C 𝑥D 𝑥E 𝑥F 𝑥:9 𝑥:0 𝑥:: 𝑥:1 𝑥:2 𝑥:B 𝑥:C
(4, 4) NB AS; w’s are in GF(q)\{0}
37
𝑥: 𝑥0 𝑥1 𝑥2 𝑥B 𝑥C 𝑥D 𝑥E 𝑥F 𝑥:9 𝑥:0 𝑥:: 𝑥:1 𝑥:2 𝑥:B 𝑥:C
37
(4, 4) NB AS; w’s are in GF(q)\{0}
𝑥: 𝑥0 𝑥1 𝑥2 𝑥B 𝑥C 𝑥D 𝑥E 𝑥F 𝑥:9 𝑥:0 𝑥:: 𝑥:1 𝑥:2 𝑥:B 𝑥:C
37
(4, 4) NB AS; w’s are in GF(q)\{0}
38
38
Th Threshold voltage distribution fo for MLC Flash Memories
38
Th Threshold voltage distribution fo for MLC Flash Memories
39
(4, 2, 2, 5, 0) GAST (6, 2, 0, 9, 0) GAST
39
40
common denominator (4, 2) (5, 3)
40
common denominator (4, 2) (5, 3)
40
common denominator (4, 2) (5, 3)
41
42
42
43
𝜏K
L,L
𝜏K
L,M
𝜏K
L,N
𝜏K
L,O
𝜏K
L,P
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,L
𝜏K
M,M
𝜏K
M,N
𝜏K
M,O
𝜏K
M,P
𝜏K
M,Q
𝜏K
M,R
𝜏K
N,L
𝜏K
N,M
𝜏K
N,N
𝜏K
N,O
𝜏K
N,P
𝜏K
N,Q
𝜏K
N,R
𝜏K
L,L
𝜏K
L,M
𝜏K
L,N
𝜏K
L,O
𝜏K
L,P
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,L
𝜏K
M,M
𝜏K
M,N
𝜏K
M,O
𝜏K
M,P
𝜏K
M,Q
𝜏K
M,R
𝜏K
N,L
𝜏K
N,M
𝜏K
N,N
𝜏K
N,O
𝜏K
N,P
𝜏K
N,Q
𝜏K
N,R
43
𝜏K
L,L
𝜏K
L,M
𝜏K
L,N
𝜏K
L,O
𝜏K
L,P
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,L
𝜏K
M,M
𝜏K
M,N
𝜏K
M,O
𝜏K
M,P
𝜏K
M,Q
𝜏K
M,R
𝜏K
N,L
𝜏K
N,M
𝜏K
N,N
𝜏K
N,O
𝜏K
N,P
𝜏K
N,Q
𝜏K
N,R
𝜏K
L,L
𝜏K
L,M
𝜏K
L,N
𝜏K
L,O
𝜏K
L,P
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,L
𝜏K
M,M
𝜏K
M,N
𝜏K
M,O
𝜏K
M,P
𝜏K
M,Q
𝜏K
M,R
𝜏K
N,L
𝜏K
N,M
𝜏K
N,N
𝜏K
N,O
𝜏K
N,P
𝜏K
N,Q
𝜏K
N,R
44
𝜏K
L,M
𝜏K
L,O
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,M
𝜏K
M,N
𝜏K
M,P
𝜏K
M,R
𝜏K
N,N
𝜏K
N,P
𝜏K
N,Q
44
𝜏K
L,M
𝜏K
L,O
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,M
𝜏K
M,N
𝜏K
M,P
𝜏K
M,R
𝜏K
N,N
𝜏K
N,P
𝜏K
N,Q
44
𝜏K
L,M
𝜏K
L,O
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,M
𝜏K
M,N
𝜏K
M,P
𝜏K
M,R
𝜏K
N,N
𝜏K
N,P
𝜏K
N,Q
44
𝜏K
L,M
𝜏K
L,O
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,M
𝜏K
M,N
𝜏K
M,P
𝜏K
M,R
𝜏K
N,N
𝜏K
N,P
𝜏K
N,Q
44
𝜏K
L,M
𝜏K
L,O
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,M
𝜏K
M,N
𝜏K
M,P
𝜏K
M,R
𝜏K
N,N
𝜏K
N,P
𝜏K
N,Q
44
𝜏K
L,M
𝜏K
L,O
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,M
𝜏K
M,N
𝜏K
M,P
𝜏K
M,R
𝜏K
N,N
𝜏K
N,P
𝜏K
N,Q
44
𝜏K
L,M
𝜏K
L,O
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,M
𝜏K
M,N
𝜏K
M,P
𝜏K
M,R
𝜏K
N,N
𝜏K
N,P
𝜏K
N,Q
44
𝜏K
L,M
𝜏K
L,O
𝜏K
L,Q
𝜏K
L,R
𝜏K
M,M
𝜏K
M,N
𝜏K
M,P
𝜏K
M,R
𝜏K
N,N
𝜏K
N,P
𝜏K
N,Q
45
45
∗ 𝑢: ∗ 𝑢0 ∗ 𝑢{9,:} ∗
∗
∗
∗
45
]
– solid lines span one replicas, – dash lines span two replicas, – dash-dot lines span three replicas.
46
R1 R2 …. RL R1 R2 R3
– 𝐺
: _ is the number of cycles that start in first replica and span k replicas.
] with parameter κ = 5, γ = 3, m = 2, L = 3.
47
: :
: 1
:
Expressions for 𝐆𝟐
𝐥 are also derived explicitly.
𝐪 is designed using t*, we apply the CPO to further
Protograph Unlabeled graph
48
49
49
50
51
52
≠ 0 ≠ 0
. . .
52
≠ 0 ≠ 0
. . .
53
54
55
56
Code Name 𝛿 Code Spec Length and Rate Uncoupled Code 2 4 Uncoupled (𝑛 = 0) AB circulant powers length = 8,670, rate = 0.765 SC Code 4 SC (𝑛 = 1) CV-AB construction length = 8,670, rate = 0.757 SC Code 5 SC (𝑛 = 1) OO-AB construction SC Code 6 SC (𝑛 = 1) OO-CPO construction Code Name 𝛿 Code Spec Length and Rate Uncoupled Code 1 3
Uncoupled (𝑛 = 0) AB circulant powers
length = 8,670, rate = 0.824 SC Code 1
SC (𝑛 = 1) CV-AB construction
length = 8,670, rate = 0.818 SC Code 2
SC (𝑛 = 1) OO-AB construction
SC Code 3
SC (𝑛 = 1) OO-CPO construction
57
SNR (dB)
4 4.5 5 5.5 6 6.5 7
BER
10-12 10-11 10-10 10-9 10-8 10-7 10-6 10-5 10-4 10-3 10-2 Uncoupled Code 1 SC Code 1, CV SC Code 2, OO SC Code 3, OO-CPO
SNR (dB)
3 3.5 4 4.5 5 5.5
BER
10-10 10-9 10-8 10-7 10-6 10-5 10-4 10-3 10-2 10-1 Uncoupled Code 2 SC Code 4, CV SC Code 5, OO SC Code 6, OO-CPO
57
SNR (dB)
4 4.5 5 5.5 6 6.5 7
BER
10-12 10-11 10-10 10-9 10-8 10-7 10-6 10-5 10-4 10-3 10-2 Uncoupled Code 1 SC Code 1, CV SC Code 2, OO SC Code 3, OO-CPO
58
Section 1 Section 2 Section 𝑗 Section 𝑂
…
– Example: CN rreceives information from (𝑛+1) consecutive sections.
𝐷𝑂
59
60
SNR (dB)
4.5 5 5.5 6 6.5 7
BER
10-12 10-11 10-10 10-9 10-8 10-7 10-6 10-5 10-4 10-3 Uncoupled Code 1 Uncoupled Code 1, Reg. Intrvg SC Code 1 SC Code 1, Eff. Intrvg SC Code 2
61
62
62
ˆ + A: + A0
63
ˆ
ˆ
ˆ
ˆ ), 𝑁 𝐷+,, = 0.
64
ˆ ), 𝑁 𝐷+,, = 0.
“” (ineffective),
_ –?:
64
SNR (dB)
2 2.5 3 3.5 4 4.5 5
BER
10-12 10-10 10-8 10-6 10-4 10-2 100
SC-Code-2 MD-SC-Code
length 2.89 K bits and rate 0.74. (𝛿=4,𝜆=17,𝑞=17,𝑛=1,𝑀=10, and OO-CPO)
length 14.45 K bits and rate 0.76. (𝛿=4,𝜆=17,𝑞=17,𝑛=1,𝑀=50, and OO-CPO)
Five SC Code 1 as constituent SC codes, length 14.45 K bits, and rate 0.74. Here: MD density 𝑈=23 or 33.82%
65
Code SC Code 2 MD-SC Code # cycles-6 153,714 1,700
66
67
– Framework extension for irregular SC codes. – Theoretical development of multidimensional SC codes (𝑂 > 3) and testing on representative channels. – Design and implementation of accompanying low-latency decoding algorithms.
– Graph coding with locality and with random access [see also: Ram and Cassuto, NVMW 2019]. – Graph coding in ML applications and with natural redundancy [see also: Jiang at al. NVMW 2017; NVMW 2018].
68
–
non-binary graph-based codes: theoretical analysis and applications,” IEEE Trans. On Information Theory, 2019, to appear. –
spatially-coupled codes via optimized partitioning and lifting,” IEEE Trans. On Communications, Jan. 2019. –
response channels: optimal object-minimization approach,” in Proc. IEEE Globecom, 2018. –
design through informed relocation of circulants,” in Proc. IEEE Allerton, 2018. –
SNR variation: spatial coupling and efficient interleaving,” IEEE Trans. Magnetics, Aug. 2018. –
spatially-coupled codes: minimum overlap partitioning,” in Proc. IEEE ISIT, 2017. –
coupled codes for Flash memories,” in Proc. IEEE ITW, 2017.
–
suitable for dense Flash memory and magnetic storage,” IEEE J. Sel. Areas Communications, Sept. 2016.
69
70