NAND ECC ๊ณ ๊ธ
NAND ECC ๊ณ ๊ธ ๊ธฐ์ ๋ถ์
LDPC ยท BCH ยท ์ฝ๋ฉ ์ด๋ก ยท ์ํํธ/ํ๋ ๋์ฝ๋ฉ ยท ์จ๋ค์ด ECC ยท ECC ๊ฐ๋ ๋น๊ต
NAND ํ๋์์ ์ ๋ขฐ์ฑ์ ์๋ฌ ์ ์ ์ฝ๋(ECC) ๊ธฐ์ ์ ํฌ๊ฒ ์์กดํฉ๋๋ค. SLC ์๋์ BCH์์ TLC/QLC ์๋์ LDPC๋ก ์งํํ๋ฉด์, ECC๋ ๋จ์ํ ๋นํธ ๊ต์ ๋๊ตฌ์์ ์ ๊ตํ ์ฝ๋ฉ ์ด๋ก ๊ธฐ๋ฐ ์์คํ ์ผ๋ก ๋ฐ์ ํ์ต๋๋ค. ๋ณธ ๋ฌธ์๋ LDPC์ BCH์ ์ด๋ก ์ ๋ฐฐ๊ฒฝ, ์ํํธ/ํ๋ ๋์ฝ๋ฉ ๋ฉ์ปค๋์ฆ, ECC ๊ฐ๋ ์ ํ ๊ธฐ์ค, ์จ๋ค์ด ECC์ ํธ์คํธ ECC์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ถ์ํฉ๋๋ค.
NAND ์ ์ ๋ฌผ๋ฆฌ์ ํ๊ณ๋ ๊ณ ์ ๋์ด ์์ง๋ง, ECC ๊ธฐ์ ์ ๋์์์ด ๋ฐ์ ํ๊ณ ์์ต๋๋ค. 3D NAND๊ฐ 200์ธต์ ๋์ด๊ฐ๋ฉด์ ์ ๊ฐ ๊ฐ์ญ๊ณผ ์ดํ๊ฐ ์ฌํด์ง๊ณ , QLC๋ ์ ์ ๋ ๋ฒจ ๊ฐ๊ฒฉ์ด ๊ทน๋๋ก ์ข์์ก์ต๋๋ค. ์ด๋ฌํ ํ๊ฒฝ์์ ECC๋ ๋ ์ด์ ์ ํ์ด ์๋๋ผ ํ์์ด๋ฉฐ, ์ต์ ์ ECC ๊ฐ๋์ ๋์ฝ๋ฉ ์ ๋ต์ SSD์ ์๋ช ๊ณผ ์ฑ๋ฅ์ ์ง์ ์ ์ผ๋ก ๊ฒฐ์ ํฉ๋๋ค.
1. ํต์ฌ ๊ฐ๋
1.1 ECC ์ฝ๋ ๋ถ๋ฅ
ECC๋ ๊ตฌ์กฐ์ ๋์ฝ๋ฉ ๋ฐฉ์์ ๋ฐ๋ผ ํฌ๊ฒ ๋ ๊ฐ์ง ๊ณํต์ผ๋ก ๋๋ฉ๋๋ค.
| ๊ตฌ๋ถ | BCH | LDPC |
|---|---|---|
| ๊ธฐ๋ฐ ์ด๋ก | Galois ์ฒด ๋คํญ์ | ํฌ์ ํจ๋ฆฌํฐ ์ฒดํฌ ํ๋ ฌ |
| ์ฝ๋ ๊ตฌ์กฐ | ์ํ ์ฝ๋ | ์ ํ ๋ธ๋ก ์ฝ๋ |
| ์ ์ ๋ฅ๋ ฅ | t๋นํธ (์ค๊ณ ์ ๊ฒฐ์ ) | ๋ฐ๋ณต ๋์ฝ๋ฉ์ผ๋ก ์ ์ง์ ์ ์ |
| ๋์ฝ๋ฉ ๋ฐฉ์ | ๋์์ ๋์ฝ๋ฉ (Peterson) | ์ ๋ขฐ๋ ์ ํ (Belief Propagation) |
| ๋ณต์ก๋ | O(nยทtยฒ) | O(nยทiter) |
| ์ฃผ์ ํ์ฉ | SLC, MLC, ๋ฒ์ฉ | TLC, QLC, ๊ณ ๋ฐ๋ NAND |
๊ทธ๋ฆผ 1. ECC ์ฝ๋ ๋ถ๋ฅ์ NAND ์ธ๋๋ณ ์ ์ฉ
1.2 ์ฝ๋ ์ด๋ก ๊ธฐ๋ณธ ๊ฐ๋
| ๊ฐ๋ | ์๋ฏธ | ECC์์์ ์ญํ |
|---|---|---|
| ์ฝ๋์จ (Code Rate) | k/n (์ ๋ณด ๋นํธ / ์ด ๋นํธ) | ์ค๋ฒํค๋์ ์ ์ ๋ฅ๋ ฅ์ ํธ๋ ์ด๋์คํ |
| ์ต์ ๊ฑฐ๋ฆฌ (Minimum Distance) | ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ์ฝ๋์๋ ๊ฐ ๊ฑฐ๋ฆฌ | ์ ์ ๋ฅ๋ ฅ ๊ฒฐ์ : t = โ(d-1)/2โ |
| ํจ๋ฆฌํฐ ์ฒดํฌ ํ๋ ฌ (H) | Hยทcแต = 0์ ๋ง์กฑํ๋ ํ๋ ฌ | ๋์ฝ๋ฉ ์ ์ค๋ฅ ๊ฐ์ง |
| ์ฝ๋ฉ ์ด๋ (Coding Gain) | ECC ์ ์ฉ ํ ํ์ํ Eb/No ๊ฐ์๋ | ๋์ผ BER์์์ ์ ๋ ฅ ์ ์ฝ |
1.3 BCH ์ฝ๋ ์์ธ
BCH(Bose-Chaudhuri-Hocquenghem)๋ Galois ์ฒด GF(2^m) ์์ ๋คํญ์์ผ๋ก ์ ์๋๋ ์ํ ์ฝ๋์ ๋๋ค.
BCH ์ฝ๋ ์์ฑ ๊ณผ์ :
1. ์์ ์์ ฮฑ โ GF(2^m) ์ ํ
2. ์ต์ ๋คํญ์ m_i(x) ๊ณ์ฐ (i = 1, 2, ..., 2t)
3. ์์ฑ ๋คํญ์ g(x) = lcm(m_1(x), ..., m_{2t}(x)) ๊ณ์ฐ
4. ์ฝ๋ ๊ธธ์ด n = 2^m - 1, ์ ๋ณด ๋นํธ k = n - deg(g(x))
BCH ์ ์ ๋ฅ๋ ฅ:
| ์์ฑ ๋คํญ์ ์ฐจ์ | ์ฝ๋ (n, k) | ์ ์ ๋ฅ๋ ฅ | ํจ๋ฆฌํฐ ๋นํธ |
|---|---|---|---|
| 4 | (15, 11) | 1๋นํธ | 4 |
| 8 | (15, 7) | 2๋นํธ | 8 |
| 10 | (15, 5) | 3๋นํธ | 10 |
| 14 | (15, 1) | 7๋นํธ | 14 |
BCH๋ ์ค๊ณ ์ ์ ํํ ์ ์ ๋ฅ๋ ฅ์ ๋ณด์ฅํ์ง๋ง, TLC/QLC์ ๋์ ์ค๋ฅ์จ์ ๊ฐ๋นํ๊ธฐ ์ํด์๋ ํจ๋ฆฌํฐ ๋นํธ ๋น์จ์ด ๋นํ์ค์ ์ผ๋ก ๋์์ง๋๋ค.
1.4 LDPC ์ฝ๋ ์์ธ
LDPC(Low-Density Parity-Check)๋ Robert Gallager๊ฐ 1960๋ ์ ์ ์ํ ์ฝ๋๋ก, 1990๋ ๋์ ์ฌ๋ฐ๊ฒฌ๋์ด ํ๋ ํต์ ๊ณผ ์คํ ๋ฆฌ์ง์ ํ์ค์ด ๋์์ต๋๋ค.
LDPC ์ฝ๋ ๊ตฌ์กฐ:
- ํจ๋ฆฌํฐ ์ฒดํฌ ํ๋ ฌ H: ํฌ์(sparse) ํ๋ ฌ, ๊ฐ ํ์ ํ๋์ ํจ๋ฆฌํฐ ์ฒดํฌ
- ๋ณ์ ๋
ธ๋ (Variable Node): ์ฝ๋์๋์ ๊ฐ ๋นํธ
- ์ฒดํฌ ๋
ธ๋ (Check Node): ํจ๋ฆฌํฐ ์ฒดํฌ ์ ์ฝ์กฐ๊ฑด
- Tanner ๊ทธ๋ํ: ๋ณ์ ๋
ธ๋์ ์ฒดํฌ ๋
ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ์ด๋ถ ๊ทธ๋ํ
LDPC ์ฝ๋ ํน์ฑ:
| ํน์ฑ | ์ค๋ช |
|---|---|
| ํฌ์์ฑ | H ํ๋ ฌ์ ๋๋ถ๋ถ์ ์์๊ฐ 0 |
| ๋ฐ๋ณต ๋์ฝ๋ฉ | ์ ๋ขฐ๋ ์ ํ(Belief Propagation) ์๊ณ ๋ฆฌ์ฆ |
| ์ํํธ ๋์ฝ๋ฉ | ๋นํธ์ ์ ๋ขฐ๋(likelihood)๋ฅผ ํ์ฉ |
| ๋ธ๋ก ๊ธธ์ด | ๋ณดํต 1000~64800 ๋นํธ |
| ์ฝ๋์จ | 0.5~0.95 ๋ฒ์ |
๊ทธ๋ฆผ 2. LDPC Tanner ๊ทธ๋ํ์ ๋ฉ์์ง ํจ์ฑ ํ๋ฆ
2. ์ํํธ/ํ๋ ๋์ฝ๋ฉ
2.1 ํ๋ ๋์ฝ๋ฉ
ํ๋ ๋์ฝ๋ฉ์ ๊ฐ ๋นํธ๋ฅผ 0 ๋๋ 1๋ก ํ์ ํ ํ ๋์ฝ๋ฉํฉ๋๋ค.
๋์ ๊ณผ์ :
1. NAND์์ ํ์ด์ง ์ฝ๊ธฐ ์ํ
2. ๊ฐ ์
์ ์ ์์ ๊ธฐ์ค ์ ์๊ณผ ๋น๊ตํ์ฌ 0/1 ํ์
3. ํ์ ๋ ๋นํธ์ ๋ํด BCH ๋๋ LDPC ํ๋ ๋์ฝ๋ฉ ์ ์ฉ
4. ์ค๋ฅ ์ ์ ์๋ฃ
์ฅ์ : ๋น ๋ฅธ ์๋, ๋ฎ์ ๋ณต์ก๋
ํ๊ณ: ์ ๋ขฐ๋ ์ ๋ณด ์์ค, ์ ์ ๋ฅ๋ ฅ ์ ํ
2.2 ์ํํธ ๋์ฝ๋ฉ
์ํํธ ๋์ฝ๋ฉ์ ๊ฐ ๋นํธ์ ์ ๋ขฐ๋(likelihood ratio)๋ฅผ ๊ณ์ฐํ์ฌ ๋์ฝ๋ฉํฉ๋๋ค.
๋์ ๊ณผ์ :
1. NAND์์ ์ฌ๋ฌ ์ ์ ๋ ๋ฒจ๋ก ์
๊ฐ์ง(sensing)
2. ๊ฐ ๋นํธ์ ์ ๋ขฐ๋ LLR = log(P(0)/P(1)) ๊ณ์ฐ
3. LLR์ LDPC ๋์ฝ๋์ ์
๋ ฅํ์ฌ ๋ฐ๋ณต ๋์ฝ๋ฉ
4. ์๋ ด ์ ๋์ฝ๋ฉ ์๋ฃ
์ฅ์ : 1~2dB ์ฝ๋ฉ ์ด๋, ๋์ ์ ์ ๋ฅ๋ ฅ
ํ๊ณ: ๋์ ๋ณต์ก๋, ๋๋ฆฐ ์๋
2.3 ๋จ๊ณ์ ๋์ฝ๋ฉ ์ ๋ต
์ค์ SSD ์ปจํธ๋กค๋ฌ๋ ์ฑ๋ฅ๊ณผ ์ ๋ขฐ์ฑ ์ฌ์ด์ ๊ท ํ์ ์ํด ๋จ๊ณ์ ์ ๋ต์ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฆผ 3. SSD ์ปจํธ๋กค๋ฌ์ ๋จ๊ณ์ ๋์ฝ๋ฉ ํ๋ฆ
| ๋จ๊ณ | ๋์ | ์ง์ฐ ์๊ฐ | ์ ์ ๋ฅ๋ ฅ |
|---|---|---|---|
| 1๋จ๊ณ | ํ๋ ๋์ฝ๋ฉ (BCH/LDPC) | ์ต์ | ๋ฎ์ |
| 2๋จ๊ณ | LDPC ์ํํธ ๋์ฝ๋ฉ (๋ฐ๋ณต ํ์ ์ฆ๊ฐ) | ์ค๊ฐ | ์ค๊ฐ |
| 3๋จ๊ณ | Read Retry + ์ํํธ ๋์ฝ๋ฉ | ๋์ | ๋์ |
| 4๋จ๊ณ | Read Reclaim (๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ ) | ์ต๋ | ์ต๋ |
์ด ์ ๋ต์ ์ ์ ํ์ด์ง์๋ ๋น ๋ฅธ ์ฝ๊ธฐ๋ฅผ ๋ณด์ฅํ๊ณ , ์ดํ๋ ํ์ด์ง์๋ง ๋์ ์ฐ์ฐ ๋น์ฉ์ ์ง์คํ์ฌ ์ ์ฒด SSD ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค.
2.4 ์ํํธ ๋์ฝ๋ฉ ์๊ณ ๋ฆฌ์ฆ
Sum-Product ์๊ณ ๋ฆฌ์ฆ (Belief Propagation):
- ์ฒดํฌ ๋
ธ๋์์ ๋ณ์ ๋
ธ๋๋ก ๋ฉ์์ง ์ ๋ฌ
- ๋ณ์ ๋
ธ๋์์ ์ฒดํฌ ๋
ธ๋๋ก ๋ฉ์์ง ์ ๋ฌ
- ๋ฐ๋ณตํ์ฌ ์๋ ด ๋๋ ์ต๋ ๋ฐ๋ณต ํ์ ๋๋ฌ
Min-Sum ์๊ณ ๋ฆฌ์ฆ:
- Sum-Product์ ๊ทผ์ฌ ๋ฒ์
- ๊ณฑ์
๋์ ์ต์๊ฐ ์ฐ์ฐ ์ฌ์ฉ
- ๋ณต์ก๋ ๊ฐ์, ์ฝ๊ฐ์ ์ฑ๋ฅ ์์ค
| ์๊ณ ๋ฆฌ์ฆ | ๋ณต์ก๋ | ์ฑ๋ฅ | ์ ์ฉ |
|---|---|---|---|
| Sum-Product | O(d_c ยท log(d_v)) | ์ต๊ณ | ๊ณ ์ฑ๋ฅ SSD |
| Min-Sum | O(d_c) | ์ฐ์ | ๋ฒ์ฉ SSD |
| Normalized Min-Sum | O(d_c) | ์ฐ์ | ๋ณด์ ๋ Min-Sum |
3. ECC ๊ฐ๋ ๋น๊ต
3.1 NAND ์ธ๋๋ณ ECC ์๊ตฌ์ฌํญ
| NAND ์ธ๋ | ์ ๋น ๋นํธ | RBER | ECC ์๊ตฌ์ฌํญ | ์ฝ๋์จ |
|---|---|---|---|---|
| SLC | 1 | 10^-6 | BCH 4bit/512B | 0.992 |
| MLC | 2 | 10^-5 | BCH 24bit/512B | 0.953 |
| TLC | 3 | 10^-4 | LDPC 60bit/1KB | 0.941 |
| QLC | 4 | 10^-3 | LDPC 100bit/1KB | 0.907 |
| 3D TLC | 3 | 10^-3 | LDPC 120bit/1KB | 0.906 |
| 3D QLC | 4 | 10^-2 | LDPC 240bit/1KB | 0.807 |
3.2 ECC ๊ฐ๋์ ์ฝ๋์จ ํธ๋ ์ด๋์คํ
ECC๋ฅผ ๊ฐํํ๋ฉด ์ ์ ๋ฅ๋ ฅ์ด ๋์์ง์ง๋ง, ํจ๋ฆฌํฐ ๋นํธ ๋น์จ์ด ์ฆ๊ฐํ์ฌ ์ ํจ ์ ์ฅ ์ฉ๋์ด ์ค์ด๋ญ๋๋ค.
์ฝ๋์จ = ์ ๋ณด ๋นํธ / (์ ๋ณด ๋นํธ + ํจ๋ฆฌํฐ ๋นํธ)
| ECC ๊ฐ๋ | ์ฝ๋์จ | ์ ์ ๋ฅ๋ ฅ | ์ ์ฅ ํจ์จ |
|---|---|---|---|
| BCH 4bit/512B | 99.2% | ๋ฎ์ | ๋์ |
| BCH 24bit/512B | 95.3% | ์ค๊ฐ | ์ค๊ฐ |
| LDPC 60bit/1KB | 94.1% | ๋์ | ์ค๊ฐ |
| LDPC 120bit/1KB | 90.6% | ๋งค์ฐ ๋์ | ๋ฎ์ |
| LDPC 240bit/1KB | 80.7% | ์ต๊ณ | ๋งค์ฐ ๋ฎ์ |
3.3 ์ฝ๋์จ๊ณผ ECC ์ ํ ๊ธฐ์ค
| ๊ธฐ์ค | BCH ์ ํธ | LDPC ์ ํธ |
|---|---|---|
| NAND ์ธ๋ | SLC, MLC | TLC, QLC, 3D NAND |
| RBER | ๋ฎ์ (< 10^-5) | ๋์ (> 10^-4) |
| ์ง์ฐ ์๊ฐ | ๋ฏผ๊ฐ | ๋ ๋ฏผ๊ฐ |
| ์ ๋ ฅ ์๋ชจ | ์ ํ์ | ์ฌ์ ์์ |
| ๋น์ฉ | ์ ๊ฐ SSD | ๊ณ ์ฑ๋ฅ/์ํฐํ๋ผ์ด์ฆ SSD |
4. ์จ๋ค์ด ECC vs ํธ์คํธ ECC
4.1 ๊ณ์ธต์ ECC ๊ตฌ์กฐ
์ต์ 3D NAND๋ ๋ค์ด ๋ด๋ถ ECC์ ํธ์คํธ ์ปจํธ๋กค๋ฌ ECC๋ฅผ ๊ฒฐํฉํ ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฆผ 4. ์จ๋ค์ด ECC์ ํธ์คํธ ECC ๊ณ์ธต ๊ตฌ์กฐ
4.2 ์จ๋ค์ด ECC
์จ๋ค์ด ECC๋ NAND ๋ค์ด ๋ด๋ถ์์ 1์ฐจ ์ค๋ฅ ์ ์ ์ ์ํํฉ๋๋ค.
| ํน์ฑ | ์ค๋ช |
|---|---|
| ์์น | NAND ๋ค์ด ๋ด๋ถ |
| ๋์ | ํ์ด์ง ๋จ์ ๋นํธ ์ค๋ฅ |
| ์ง์ฐ | ๋งค์ฐ ๋ฎ์ (< 1ฮผs) |
| ์ ์ ๋ฅ๋ ฅ | ๋ฎ์ (BCH ์์ค) |
| ๋ชฉ์ | ํธ์คํธ ECC ๋ถํ ๊ฐ์ |
4.3 ํธ์คํธ ECC
ํธ์คํธ ECC๋ SSD ์ปจํธ๋กค๋ฌ์์ 2์ฐจ ์ค๋ฅ ์ ์ ์ ์ํํฉ๋๋ค.
| ํน์ฑ | ์ค๋ช |
|---|---|
| ์์น | SSD ์ปจํธ๋กค๋ฌ |
| ๋์ | ์จ๋ค์ด ECC๋ฅผ ํต๊ณผํ ์์ฌ ์ค๋ฅ |
| ์ง์ฐ | ์ค๊ฐ (~ 10ฮผs) |
| ์ ์ ๋ฅ๋ ฅ | ๋์ (LDPC ์์ค) |
| ๋ชฉ์ | ์ต์ข ๋ฐ์ดํฐ ๋ณดํธ |
4.4 RAID-like ๋ณดํธ
SSD ์ปจํธ๋กค๋ฌ๋ ์ฌ๋ฌ NAND ๋ค์ด์ ๊ฑธ์ณ RAID์ ์ ์ฌํ ํจ๋ฆฌํฐ ๋ณดํธ๋ฅผ ์ ์ฉํ ์ ์์ต๋๋ค.
| ๋ณดํธ ๋ ๋ฒจ | ์ค๋ช | ๋ณดํธ ๋ฒ์ | ๋น์ฉ |
|---|---|---|---|
| ์จ๋ค์ด ECC | ๋ค์ด ๋ด๋ถ 1์ฐจ ECC | ํ์ด์ง ๋นํธ ์ค๋ฅ | ๋ฎ์ |
| ํธ์คํธ ECC | ์ปจํธ๋กค๋ฌ 2์ฐจ ECC | ํ์ด์ง ๋นํธ ์ค๋ฅ | ์ค๊ฐ |
| RAID-like | ๋ค์ด ๊ฐ ํจ๋ฆฌํฐ | ๋ค์ด ๋จ์ ์ฅ์ | ๋์ |
RAID-like ๋ณดํธ๋ ํน์ NAND ๋ค์ด๊ฐ ์์ ํ ๊ณ ์ฅ๋๋๋ผ๋ ํจ๋ฆฌํฐ ์ ๋ณด๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ์ ์์ด, enterprise SSD์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
5. ๋์ ์๋ฆฌ: LDPC ๋์ฝ๋ฉ ํ์ดํ๋ผ์ธ
5.1 LDPC ์ธ์ฝ๋ฉ
LDPC ์ธ์ฝ๋ฉ์ ์ ๋ณด ๋นํธ๋ฅผ ์ฝ๋์๋๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋๋ค.
- ์ ๋ณด ๋นํธ ๋ฒกํฐ s (๊ธธ์ด k) ์ ๋ ฅ
- ์์ฑ ํ๋ ฌ G์ ๊ณฑ์ : c = s ยท G
- ์ฝ๋์๋ c (๊ธธ์ด n) ์ถ๋ ฅ
- H ยท cแต = 0 ๋ง์กฑ ํ์ธ
์ค์ ๊ตฌํ์์๋ ์ํ ๊ตฌ์กฐ๋ฅผ ํ์ฉํ์ฌ ์ธ์ฝ๋ฉ ๋ณต์ก๋๋ฅผ O(n)์ผ๋ก ์ค์ ๋๋ค.
5.2 LDPC ๋์ฝ๋ฉ ํ๋ฆ
๊ทธ๋ฆผ 5. LDPC ๋ฐ๋ณต ๋์ฝ๋ฉ ํ๋ฆ
๋จ๊ณ๋ณ ๋์:
| ๋จ๊ณ | ๋์ | ์ค๋ช |
|---|---|---|
| 1 | ์ด๊ธฐ LLR ๊ณ์ฐ | NAND ์ฝ๊ธฐ ๊ฒฐ๊ณผ์์ ๋นํธ๋ณ ์ ๋ขฐ๋ ๊ณ์ฐ |
| 2 | ๋ณ์ ๋ ธ๋ ์ ๋ฐ์ดํธ | ์์ LLR๊ณผ ์ฒดํฌ ๋ ธ๋ ๋ฉ์์ง๋ฅผ ๊ฒฐํฉ |
| 3 | ์ฒดํฌ ๋ ธ๋ ์ ๋ฐ์ดํธ | ๋ณ์ ๋ ธ๋ ๋ฉ์์ง๋ฅผ ์ด์ฉํด ํจ๋ฆฌํฐ ์ฒดํฌ ๊ณ์ฐ |
| 4 | ํ๋ ๋cision | ํ์ฌ ์ถ์ ์น๋ก codeword ๊ฒฐ์ |
| 5 | ํจ๋ฆฌํฐ ์ฒดํฌ | H ยท cแต = 0 ํ์ธ |
| 6 | ๋ฐ๋ณต ๋๋ ์ข ๋ฃ | ์๋ ด ์ ์ข ๋ฃ, ๋ฏธ์๋ ด ์ 2๋จ๊ณ๋ก ๋ณต๊ท |
5.3 ๋ฐ๋ณต ํ์์ ์ฑ๋ฅ
| ๋ฐ๋ณต ํ์ | ์ ์ ๋ฅ๋ ฅ | ์ง์ฐ ์๊ฐ | ์ ๋ ฅ ์๋ชจ |
|---|---|---|---|
| 1 | ๋ฎ์ | ์ต์ | ์ต์ |
| 5 | ์ค๊ฐ | ์ค๊ฐ | ์ค๊ฐ |
| 10 | ๋์ | ๋์ | ๋์ |
| 20 | ๋งค์ฐ ๋์ | ๋งค์ฐ ๋์ | ๋งค์ฐ ๋์ |
SSD ์ปจํธ๋กค๋ฌ๋ ์ฝ๊ธฐ ์๋ฌ์จ์ ๋ฐ๋ผ ๋ฐ๋ณต ํ์๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํฉ๋๋ค. ์ ์ ๋ธ๋ก์ 1~3ํ ๋ฐ๋ณต์ผ๋ก ๋์ฝ๋ฉ๋๊ณ , ์ดํ๋ ๋ธ๋ก์ 10~20ํ ๋ฐ๋ณต์ด ํ์ํ ์ ์์ต๋๋ค.
6. ์ฅ๋จ์
์ฅ์
- LDPC ์ํํธ ๋์ฝ๋ฉ์ ๋ฎ์ RBER์์๋ ๋์ ์ ์ ๋ฅ๋ ฅ ์ ๊ณต
- ๋จ๊ณ์ ๋์ฝ๋ฉ ์ ๋ต์ ์ฑ๋ฅ๊ณผ ์ ๋ขฐ์ฑ์ ๊ท ํ ๋ฌ์ฑ
- ์จ๋ค์ด ECC + ํธ์คํธ ECC ๊ณ์ธต ๊ตฌ์กฐ๋ ์์คํ ์ ์ฒด ์ ๋ขฐ์ฑ ํฅ์
- RAID-like ๋ณดํธ๋ ๋ค์ด ์ฅ์ ๋ก๋ถํฐ ๋ฐ์ดํฐ ๋ณดํธ
- ์ฝ๋์จ ์ต์ ํ๋ฅผ ํตํด ์ ์ฅ ํจ์จ ๊ทน๋ํ ๊ฐ๋ฅ
ํ๊ณ
- ์ํํธ ๋์ฝ๋ฉ์ ๋์ ์ง์ฐ ์๊ฐ๊ณผ ์ ๋ ฅ ์๋ชจ ์ ๋ฐ
- LDPC ๋์ฝ๋ฉ ๋ณต์ก๋๋ ํ๋์จ์ด ๋น์ฉ ์ฆ๊ฐ
- ์จ๋ค์ด ECC๋ ์ถ๊ฐ ๋ค์ด ๋ฉด์ ํ์
- RAID-like ๋ณดํธ๋ ํจ๋ฆฌํฐ ๊ณ์ฐ ์ค๋ฒํค๋์ WAF ์ฆ๊ฐ
- 3D NAND ๊ณ ์ธตํ๋ ECC ๊ฐ๋๋ฅผ ์ง์์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ ์์ธ
7. ๊ด๋ จ ๊ธฐ์
-
NAND ์๋ฌ ๊ด๋ฆฌ: ECC, Bad Block Management, Read Disturb/Data Retention ๋์
-
NAND Flash Internals: ํ๋กํ ๊ฒ์ดํธ/charge trap, Vth, Program/Erase ๋ฌผ๋ฆฌ
-
QLC/TLC/MLC ๋น๊ต: ์ ๋น ๋นํธ ์์ ๋ฐ๋ฅธ ํน์ฑ ๋น๊ต
-
ECC Error Correction: BCH, LDPC์ ๋นํธ ์ค๋ฅ ์ ์ ์ด๋ก
-
NAND ์์ ๋ฌผ๋ฆฌ: FN ํฐ๋๋ง, ISPP, Vth ๋ถํฌ, ์ดํ ๋ฉ์ปค๋์ฆ
-
SSD Internal Parallelism: ์ฑ๋/๋ค์ด/ํ๋ ์ธ ๋ณ๋ ฌ์ฑ
์ฐธ๊ณ ๋ฌธํ
-
Robert G. Gallager. "Low-Density Parity-Check Codes." MIT Press, 1963.
-
David J. C. MacKay and Radford M. Neal. "Near Shannon Limit Performance of Low Density Parity Check Codes." Electronics Letters, 1996.
-
Tom Richardson and Rudiger Urbanke. "Modern Coding Theory." Cambridge University Press, 2008.
-
Samsung Electronics. "NAND Flash Memory: Technology and Applications." 2023.
-
Western Digital. "3D NAND Technology: From 64-Layers to 200+." 2023.
-
Intel. "QLC NAND: The Future of Flash Storage." 2022.
-
JEDEC. "JESD230: NAND Flash Interface Standard." 2022.
-
Jack Tsai. "Error Correction Codes for Flash Memories." 2021.
-
Kai Zhao et al. "LDPC-in-SSD: Making Advanced Error Correction Codes Work Effectively in Solid State Drives." FAST'13, 2013.
-
Yu Cai et al. "Error Patterns in MLC NAND Flash Memory: Measurement, Characterization, and Analysis." DATE 2012.
8. ํต์ฌ ์ ๋ฆฌ
NAND ECC ๊ณ ๊ธ ๊ธฐ์ ์ BCH์์ LDPC๋ก, ํ๋ ๋์ฝ๋ฉ์์ ์ํํธ ๋์ฝ๋ฉ์ผ๋ก ์งํํ๋ฉด์ TLC/QLC ๊ฐ์ ๊ณ ๋ฐ๋ NAND๋ ์ ๋ขฐ์ฑ ์๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค. LDPC์ ๋ฐ๋ณต ๋์ฝ๋ฉ๊ณผ ์ํํธ ๋์ฝ๋ฉ์ ๋ฎ์ RBER์์๋ ๊ฐ๋ ฅํ ์ ์ ๋ฅ๋ ฅ์ ์ ๊ณตํ์ง๋ง, ๋ณต์ก๋์ ์ง์ฐ ์๊ฐ์ ๋๊ฐ๋ฅผ ์๋ฐํฉ๋๋ค. ์จ๋ค์ด ECC์ ํธ์คํธ ECC์ ๊ณ์ธต ๊ตฌ์กฐ๋ ์์คํ ์ ์ฒด์ ์ ๋ขฐ์ฑ์ ๋์ด๊ณ , RAID-like ๋ณดํธ๋ ๋ค์ด ์ฅ์ ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํฉ๋๋ค. ์ต์ ์ ECC ๊ฐ๋์ ๋์ฝ๋ฉ ์ ๋ต์ NAND ์ธ๋, ์ํฌ๋ก๋, ๋น์ฉ ์ ์ฝ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฉฐ, SSD ์ปจํธ๋กค๋ฌ์ ํ์จ์ด ํ์ง์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค.