ldpc-in-ssd: making advanced error correction codes … · ldpc code and soft-sensing quantization...

30
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

Upload: hamien

Post on 12-Jun-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 2: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 3: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 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

Page 4: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 5: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 6: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 7: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

Outline

LDPC code and soft-decision sensing

Proposed techniques

Experiment Setup and Preparation

Experimental Results

Conclusion

7

Page 8: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 9: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 10: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 11: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 12: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 13: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 14: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 15: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

Fine-Grained Progressive Sensing and Decoding

Why not exploit the trade-off space between latency and error correction capability

15

Page 16: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

Fine-Grained Progressive Sensing and Decoding

Fully exploit LDPC’s error correction capability

16

Page 17: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 18: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 19: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 20: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 21: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

= ∙ ∙ ( ∙ ∙ )= ∙ ( ∙ ∙ )

Page 22: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

Experiment Setup and Preparation

Page raw BER distribution

22

Page 23: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 24: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 25: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 26: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 27: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 28: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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

Page 29: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

Experimental Results

Overhead

Higher read energy consumption

Complicating the controller design

Write amplification caused by interleaving

29

Page 30: LDPC-in-SSD: Making Advanced Error Correction Codes … · LDPC Code and Soft-sensing Quantization 1 bit 2 bits 3 bits Times of Sensing 1 3 7 Hard sensing vs. Soft sensing 10 1 2

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.