ldpc-in-ssd: making advanced error correction codes … · ldpc code and soft-sensing quantization...
TRANSCRIPT
LDPC-in-SSD:
Making Advanced Error Correction Codes Work
Effectively in Solid State Drives
Kai Zhao*, Wenzhe Zhao†, Hongbin Sun†, Tong Zhang*, Xiaodong Zhang‡, and Nanning Zheng†
* ECSE Department, Rensselaer Polytechnic Institute, USA† Xi’an Jiaotong University, P.R.China
‡ Department of CSE, The Ohio State University, USA
NAND Flash Memory
NAND Flash
consumer client enterprise
Increasing Adoptions and Decreasing Cost of NAND Flash Memory
Increasingly wide adoption
100nm
10nm2007 2008 2009 2010 2011 2012 2013 2014
Bit cost reduction$10/GB $1/GB
$0.35/GB
2
Noise in NAND flash memory increases as chip technology scaling continues
NAND Flash Memory
Floating gate
Oxide
Charge trap, caused by P/E cycling
Electrons
Cell
Cell Cell
Cell Cell
Cell
Bit Line
Word Line
BL BL
WLFlashBlock
• Cell size and distance between cells shrink
• Oxide layer becomes thinner• Number of electrons held in
floating gate reduced
3
Smaller cell, thinner oxide layer and fewer electrons make the flash memory increasingly noisy
NAND Flash Memory
Victim cell
Cell
Cell Cell
Cell Cell
Cell
BLWL
BL BL
WL
Cell-to-cell interference Random telegraph noise (RTN)
Retention noiseElectrons leaks from the floating gate
Higher raw bit error rate
4
Error Correction Codes in Storage Systems
Bose-Chaudhuri-Hocquengham (BCH) code A class of cyclic error-correcting codes, invented in 1959, hard-
decision decoding, adopted in all SSDs
Low-density parity-check (LDPC) code A linear error-correcting code, invented by Robert.G.Gallager in
1963 and rediscovered in 1996, hard-decision/soft-decision decoding
Soft-decision LDPC code has a much stronger error correction capability
5
Error Correction Codes in Storage Systems
BCH codes’ relatively weak error correction capability becomes inadequate
LDPC code can significantly improve the reliability of SSDs compared to BCH code
Challenges for adopting LDPC codes in SSDs Designing LDPC codes of good performance
Techniques to address the LDPC decoder input initialization problem
Minimizing LDPC-induced latency increase in SSDs
6
Outline
LDPC code and soft-decision sensing
Proposed techniques
Experiment Setup and Preparation
Experimental Results
Conclusion
7
LDPC Code and Soft Sensing
Hard-decision decoding (BCH, LDPC) Inputs are in binary form
Simple hardware implementation
Relatively weak error correction capability
Soft-decision decoding (LDPC) Inputs are quantized to integers
Complicated hardware design
Strong error correction capability
For LDPC code, its error correction strength strongly depends on the accuracy of the input information which presents the probability information of the data stored in NAND flash memory
8
LDPC Code and Soft Sensing
Noisy channel yn−1,, y1, y0011 ,,, xxxn −Data encoded
LDPC Decoder
Input Init.
==
)1|(
)0|(log
ii
ii
xyP
xyP
Log-likelihood ratio (LLR)
1,0,1,1,0,1,0,0,0,1,1,0Hard-decision
-4,+2,-1,-1,+3,-2,+2,+3,+2,-4,-3,+1Soft-decision
Positive: 0Negative: 1Magnitude presents the probability
9
LDPC Code and Soft-sensing
Quantization 1 bit 2 bits 3 bits
Times of Sensing 1 3 7
Hard sensing vs. Soft sensing
1 0
1 2 3 4 5 6 7 8
10
data 1 data 2
1, 1
-4,-1
Soft-decision decoding suffers from a huge latency
Hard-sensing results
Soft-sensing results
LDPC Code and Soft Sensing
Large latency of soft-decision sensing and corresponding data transfer to SSD controller is destructive to read performance
A basic two-step read strategy Hard-decision decoding still works in most of the times
No
Hard-decision memory sensing (fast)
Hard-decision LDPC decoding (weak error correction)
Success?
Flash-to-controller data transfer (fast)
Yes
11
NoSuccess?
Yes
Soft-decision memory sensing (slow)
Soft-decision LDPC decoding (strong error correction)
Flash-to-controller data transfer (slow)
Unrecoveredcorruption
Financial1 Financial2 Postmark WebSearch Synthetic1 Synthetic20.0
0.5
1.0
1.5
2.0
Nor
mal
ized
Rea
d R
espo
nse
Tim
e
Hard-Decision Decoding Failure Probability 1% Hard-Decision Decoding Failure Probability 10% Hard-Decision Decoding Failure Probability 30% Read latency doubles
LDPC and Soft Sensing
Trace-based simulation shows that further improvement is necessary
12
Proposed Techniques
Two orthogonal aspects to improve read performance
Minimize the latency of soft-decision sensing and data transfer
Minimize the unnecessary number of high-precision soft-decision sensing
Our approaches Look-Ahead Memory Sensing
Fine-Grained Progressive Sensing and Decoding
Data Placement Interleaving
13
Look-ahead Memory Sensing
Start soft-decision sensing in advance
Hard-decisionMemory sensing
Datatransfer
LDPCdecoding
Soft-decision memory sensing& data transfer
LDPCdecoding
Hard-decisionMemory sensing
Datatransfer
LDPCdecoding
Soft-decision memory sensing& data transfer
LDPCdecoding
Decoding fails
14
Fine-Grained Progressive Sensing and Decoding
Why not exploit the trade-off space between latency and error correction capability
15
Fine-Grained Progressive Sensing and Decoding
Fully exploit LDPC’s error correction capability
16
Fine-Grained Progressive Sensing and Decoding
Hard-decision memory sensing
LDPC code decoding
Success?
Highest sensing precision?
Higher precision memory sensing
Success Failure
No
Yes
Yes
No
Flash-to-controller data transfer
17
Can be combined with look-ahead memory sensing design strategy
Noticeable reliability variance among different NAND flash memory chips
Average to avoid invoking high precision LDPC decoding
Data Placement Interleaving
34
12
34
12
34
12
34
12
44
44
33
33
22
22
11
11
4-way interleavingChip 1
Chip 2
18
Experiment Setup and Preparation
SSD Simulator: SSD module in DiskSim Workload traces: Fiancial1&2, Postmark, WebSearch,
Synthetic workload1&2 MLC NAND flash memory chip configuration
4KB per page, 64 pages per block, 2048 blocks per plane, 4 planes per die, and 2 dies per chip.
8 chips X 8 channels 200 MBps chip I/O bandwidth
Separate parameters for upper/lower pages Read/write/erasure latency Page raw bit error rate
19
Experiment Setup and Preparation
Our measurement results are based on 25 nm MLC NAND flash chips
Latency of sensing one extra level is set to 14 μs
10k PE cycles and 1 month retention time
Read Write
Upper page 55 μs 1.45 ms
Lower page 41 μs 121 μs
20
Experiment Setup and Preparation
Experiment flow to get the BER statistics
Use Arrhenius law to determine the baking time
Continuous P/E cycling over a short time
Baking to emulate wear-out recovery
Program once
Baking to emulate data retention
Bit error rate statistics21
= ∙ ∙ ( ∙ ∙ )= ∙ ( ∙ ∙ )
Experiment Setup and Preparation
Page raw BER distribution
22
Experimental Results
Baseline: two-step sensing and decoding strategy
Financial1 Financial2 Postmark WebSearch Synthetic1 Synthetic20.0
0.5
1.0
1.5
2.0
Nor
mal
ized
Rea
d R
espo
nse
Tim
e
23
Experimental Results
Look-ahead memory sensing
Financial1 Financial2 Postmark WebSearch Synthetic1 Synthetic20.0
0.5
1.0
1.5
2.0
Nor
mal
ized
Rea
d R
espo
nse
Tim
e
Baseline Look-ahead Sensing
24
Experimental Results
Fine-grained progressive sensing
Financial1 Financial2 Postmark WebSearch Synthetic1 Synthetic20.0
0.5
1.0
1.5
2.0
Nor
mal
ized
Rea
d R
espo
nse
Tim
e
Baseline Progressive Sensing
25
Experimental Results
Combined look-ahead and progressive sensing
Financial1 Financial2 Postmark WebSearch Synthetic1 Synthetic20.0
0.5
1.0
1.5
2.0
Nor
mal
ized
Rea
d R
espo
nse
Tim
e
Baseline Look-ahead + Progressive Sensing
26
Experimental Results
Data placement interleaving
Financial1 Financial2 Postmark WebSearch Synthetic1 Synthetic20.0
0.5
1.0
1.5
2.0
Nor
mal
ized
Rea
d R
espo
nse
Tim
e
Baseline 2-way Interleaving 4-way Interleaving
27
Experimental Results
Aggregated read response time latency reduction
Financial1 Financial2 Postmark WebSearch Synthetic1 Synthetic20.0
0.5
1.0
1.5
2.0
Nor
mal
ized
Rea
d R
espo
nse
Tim
e
Baseline Look-ahead + Progressive Sensing + 2-way Interleaving Look-ahead + Progressive Sensing + 4-way Interleaving
28
Experimental Results
Overhead
Higher read energy consumption
Complicating the controller design
Write amplification caused by interleaving
29
Conclusion
Increased noise in NAND flash memory caused by technology scaling is a main reason for increasingly high error rates in SSD
Conventional ECC, such as BCH, does not have sufficient ability to make error code corrections
LDPC is a strong ECC candidate for future SSDs to address its reliability issues under high noises
We proposed three techniques to make LDPC work effectively in SSDs
With LDPC-in-SSD, SSD can continue to increase its capacity, retain a high reliability, and reduce its prices.