Mobile QR Code QR CODE

  1. (Dept. of Computer Science & Engineering, Hanyang University, Korea )



MLC flash memory, ECC, LDPC, reprogramming, data reliability

I. INTRODUCTION

Solid-state drives (SSDs) have been widely adopted due to the rapid growth of diverse applications that require high capacity and fast performance. To satisfy the customer demand for ever-increasing flash memory storage size, 3D-stacked flash memory is now available. However, more errors are observed in flash memory as the storage density increases.

There are four types of error that can occur in flash memory: erase error, read error, program interference error, and retention error. Among these errors, retention error comprises the highest proportion of total errors (1). Retention error occurs when data is stored for a long period of time, and corrupted due to the leakage of charged electrons. For flash memory, program-erase cycle (p-e cycle) also has a major impact on performance. The p-e cycle causes the memory cells to gradually wear out, resulting in data corruption of stored data. Generally, single-level cell (SLC) and multi-level cell (MLC) flash memory tolerate up to 100k and, 10k p-e cycles, respectively (1). To maintain high reliability of stored data, various error correcting codes (ECCs) are adopted. Typically, several high-performance ECCs like turbo code, Bose-Chaudhuri-Hocquenghem (BCH) code, and low-density parity-check code (LDPC) are used to ensure the data integrity of flash memory (2,5). However, these ECCs cannot correct errors, or even causes miscorrections if the stored data is corrupted more than its correction ability. If the retention errors are corrected periodically, the number of errors might not exceed the correction capability of ECCs. To better handle retention errors, the refresh technique is introduced (6). Refresh minimization scheme, which considers the process variation (PV), is also employed to reduce the overhead of refresh operation (7). With Stronger ECC, refresh minimization can even reduce the refresh rate of flash memory. However, the refresh operation at the system level can cause unintended program interference error due to the inherent characteristics of flash memory chip products.

Fig. 1. Threshold voltage distributions of SLC and MLC flash memory.

../../Resources/ieie/JSTS.2020.20.1.063/fig1.png

In this paper, we introduce (1)a safe reprogramming scheme for MLC flash memory at the system level and (2)an efficient LDPC decoding scheme utilizing uncorrected error information after refresh operations. With these schemes, (1)unintended data corruption during refresh operations is reduced and (2)data reliability is improved by enhancing the error correction ability of soft-decision LDPC (3)reliable retention time of data is extended by using proposed LDPC decoding method along with proposed safe reprogramming scheme.

II. BACKGROUND

1. Flash Memory and Retention Error

NAND flash can be classified into SLC and MLC types. SLC stores one bit in a cell while MLC stores two bits or more in a cell. MLC flash memory cell represents $n$ bits using 2$^{n}$ threshold voltage levels. The voltage level of a flash memory cell is related to the quantity of charged electrons. Furthermore, the encoding of voltage level is different for each flash memory product. Fig. 1 shows the threshold voltage distribution of a flash memory cell. Some MLC products encode each voltage level as shown in Fig. 1. Meanwhile, other flash memory products may adopt entirely different encoding schemes.

Fig. 2. NAND flash organization of (a) SLC and MLC flash memory, (b) floating gate transistor.

../../Resources/ieie/JSTS.2020.20.1.063/fig2.png

A NAND flash memory chip is an array of floating gate transistors. Fig. 2 shows the NAND flash memory cell organization and floating gate transistor structure. A NAND flash is organized as a block-page hierarchy. A page is the basic data unit of flash memory, and each block is composed of multiple pages (e.g., 64 pages = 1 block), which is a group of wordlines. Most of NAND flash products include single plane, which is comprised of multiple blocks. Nowadays, some products are composed of multiple planes to provide a higher storage capacity.

Flash memory stores data in a corresponding page using group of cells on a corresponding bitline that belong to the same wordline group. To store data, charged electrons are trapped in floating gate as shown in Fig. 2(b). SLC flash stores each page to each corresponding wordline, while MLC flash group wordlines into an even group and an odd group and store 2 bits in a single cell. However, data stored in the same location for a long period (e.g., 1 year) could be corrupted due to gradual leakage of charged electrons through the floating gate. This type of data corruption is called retention error (1), which holds the highest proportion of flash memory error. Leakage of electrons decreases the voltage level close to the threshold voltage of the flash memory cell and can cause the misreading of data. To cope with these errors and to enhance the voltage level sensing precision of overlapping voltage lever, G. Dong et al. (8) introduced the usage of soft-decision ECC and non-uniform voltage sensing scheme for NAND flash memory.

Fig. 3. A single iteration of soft-decision LDPC Bit error probability ${P}_{error} : 0 < {P}_{error} < 1$ (${P}_{error} = error$ probability of bit node).

../../Resources/ieie/JSTS.2020.20.1.063/fig3.png

2. Flash Memory and Retention Error

Generally, a flash memory chip uses several error correction techniques (e.g. turbo code, BCH, LDPC) to detect and correct errors (2,5). In early lifetime of flash memory, hard-decision BCH code is applied. However, to ensure the longer lifetime and data integrity of high-capacity flash memory (e.g., MLC flash memory), stronger ECC is required. Thus, soft-decision LDPC is adopted to handle the large number of errors that occur in MLC flash memory.

(1)
$$ \mathrm{LLR}=\ln \left(\frac{p(x=0 | y)}{p(x=1 | y)}\right) $$

(2)
$$ p(x=1 | y)=1-p(x=0 | y) $$

(3)
$$ L L R=\ln \left(\frac{1-P_{\text {error}}}{P_{\text {error}}}\right)(\text {if bit node}==0) $$

(4)
$$ L L R=\ln \left(\frac{P_{\text {error}}}{1-P_{\text {error}}}\right)(\text {if bit node}==1) $$

(5)
$$ S=H \cdot c^{T} $$

Soft-decision LDPC is an iteration-based block code that uses the soft log-likelihood-ratio (LLR) to determine the value of bit node. LLR is calculated using the bit error probability ${p}_{error}$ (1)as shown in Eqs. (2-4) (8,9). During the decoding procedure, the higher bit error probability means that the bit node has more chance of error, therefore makes the bit node to be flipped easily. Its decoding procedure is depicted in Fig. 3. The bit node passes the soft-decision LLR value to the connected check node. Then the check node calculates the next LLR value and transmits the calculated value to connected bit nodes. Then, the check node calculates the next LLR value and transmits the calculated value to connected bit nodes. This is called as iteration of LDPC decoding (10). After a single iteration, the bit node updates the LLR value to the received LLR value from the connected check node. After iteration, syndrome is calculated by using parity check matrix of ${H}$ and decoded codeword ${c}$. By using Eq. (5), decoder gets the syndrome ${S}$. If the syndrome is 0, iteration is terminated, then data is extracted from codeword. Else, iteration is repeated until the syndrome becomes 0 or the iteration count reaches the maximum limitation of iteration.

Typically, soft-decision LDPC is adopted in flash memory that requires a high correction ability. However, soft-decision LDPC can cause read latency due to its iteration. To handle the latency problem, S.Tanakamaru et al. (9) proposed error-prediction LDPC (EP-LDPC) and error recover schemes to reduce read latency and extend data retention time by using an accurate error probability table based on the number of ‘1’s in data, p-e cycle, and stored location (upper or lower page). By using an accurate error probability table during the LDPC decoding, the retention time of stored data is enhanced.

Additional parity bits can also improve the correction ability of ECCs; however, this type of approach requires excessive space overhead. To reduce the overhead, H. Park et al. proposed incremental redundancy (IR) that only reinforces the minimum redundancy (11). IR monitors the retention time of cold data and adaptively assign the minimal number of pages for incremental redundancy after a safe period. Therefore, the retention of cold data and the correction ability of ECC are enhanced.

3. Flash Memory Refresh (reprogramming)

Flash memory operates on an erase-before-program basis due to the features of a flash memory cell. As shown in Fig. 1, a flash memory cell represents data using several voltage levels. A flash memory cell should be erased to program new data if the target cell is once programmed. However. a flash memory cell can be selectively reprogrammed through refresh (6). For example, a SLC flash memory cell can be reprogrammed from ‘1’ to ‘0’. In case of MLC flash memory, reprogramming is more restricted than SLC flash memory because an MLC flash memory cell uses four voltage levels to represent data. Thus, reprogramming is only available in the direction of higher voltage level (e.g., from ‘11’ to ‘10’).

To correct the retention error with refresh, a flash-correct-and-refresh (FCR) technique has been studied by Cai et al.(6). They introduced an in-place reprogramming based on FCR, adaptive-rate FCR, and hybrid FCR mechanism. Hybrid FCR selectively applies refreshing or remapping, based on the bit error rate. The remapping moves the corrupted data, instead of refreshing it. Adaptive-rate FCR refreshes the flash memory cell less frequently for small retention errors. For both cases, refreshing reduces the p-e cycle and enhances the flash memory lifetime. However, unlike the cell-level approach, in-place reprogramming is hard to be achieved at the system-level. As described above, NAND flash memory can be reprogrammed in a direction of higher voltage level at the memory cell level. On the other hand, it is hard to apply reprogramming technique in system-level because data stored in paired pages may change unexpectedly if the paired page is already programmed. Additionally, even if the target page is safe to perform in-place reprogramming, refresh should be performed carefully in system-level. It is noted that if the program operation is abnormally aborted, data stored in a paired page might be damaged (16,17). It indicates that not only the data of single page is damaged when program operation is not successful, but also the data stored in paired page may corrupted by unsuccessful program operation.

Generally, MLC flash memory applies incremental step pulse programming (ISPP), which programs upper page first (12,13), to properly program the data in both paired page. Thus, unintended interference can occur in the upper page if the reprogramming operation is done in lower page. For example, as shown in Fig. 2(a), data stored in upper page (page 124) might be unintentionally changed when the reprogramming is occurred in lower page (page 118). Therefore, reprogramming should be performed only if the data in both page is not altered by its operation.

III. PROPOSED METHOD

1. Reprogramming MLC Flash in System Level

During the lifetime of flash memory, any type of error can occur in the flash memory. According to Cai et al. (1), some errors can be corrected by refresh. Refresh can reduce the number of errors in a codeword (page), thus the retention time and lifetime of flash memory are extended by reducing the p-e cycle. However, overly frequent refreshing can degrade the lifetime and performance of flash memory. Y. Di et al.proposed a process variation (PV) based refresh minimization scheme for flash memory to reduce the number of refresh operation (7).

Although in-place reprogramming has the advantages of extending lifetime and improving performance of flash memory, it can corrupt data stored in paired pages when performed at the system-level, as described in section II-3. Thus, safe in-place reprogramming should be applied to guarantee the data integrity while taking advantages of in-place reprogramming.

To perform the safe in-place reprogramming at system level, the flash memory chips were verified for all available cases where in-place reprogramming is performed. Based on the datasheet of several flash memory products (14,17), whole pages in same block are pre-programmed before in-place reprogramming. Then, the data that overwrites ‘00’, ‘01’, ‘10’, ‘11’ to same flash memory cell is overwritten to paired page to verify safe reprogramming operation for each memory chip product.

Fig. 4. State diagram of a reprogramming operation (cell-level) for four MLC flash memory chip products (at the system level).

../../Resources/ieie/JSTS.2020.20.1.063/fig4-1.png../../Resources/ieie/JSTS.2020.20.1.063/fig4-2.png../../Resources/ieie/JSTS.2020.20.1.063/fig4-3.png

In this paper, four different NAND flash memory chips have considered. Fig. 4 shows the reprogramming state diagrams of each MLC flash memory product (14,17) at the system level. In Fig. 4, each arrow indicates the safe reprogramming operation (in memory cell-level) which does not affect data stored in paired pages while correcting the erroneous bits. Each table at the right side of Fig. 4 indicates the result of reprogramming operation. In Fig. 4(a), it is observed that the data is properly reprogrammed if ‘11’ is preprogrammed in certain memory cell. However, if ‘00’ is preprogrammed, there is no data that can change the state of memory cell by reprogramming. For example, for Fig. 4(d) chip, a reprogrammed value of ‘01’ can be achieved by reprogramming either ‘00’ or ‘10’ when ‘11’ is already stored. Thus, some erroneous bits can be corrected by using the proposed in-place reprogramming at system-level.

Fig. 5. Generating uncorrected error count information during decoding procedure.

../../Resources/ieie/JSTS.2020.20.1.063/fig5.png

As shown in Fig. 4, the reprogramming is restricted to some directions at the system-level. Thus, we propose a safe system level reprogramming scheme for MLC flash memory that considers the operational characteristic of each chip. In Fig. 4(a), system level reprogramming does not disturb the paired page when ‘11’ is overwritten on preprogrammed data. On the other hand, for the Fig. 4(b) chip, reprogramming is more restricted than for the Fig. 4(a) chip. Meanwhile, reprogramming of Fig. 4(d) chip is only available for ‘11’${\rightarrow}$’01’ direction. Thus, system-level reprogramming should be performed using the proper data for each chip.

As a result of proposed in-place reprogramming scheme, correctable retention errors that occurred in stored data can be corrected safely at system level. As a result, only small number of uncorrected errors remain in codeword. Therefore, performance of flash memory is enhanced since LDPC decoder causes less iteration to decode codeword, and lifetime of flash memory is also extended without degrading reliability of stored data.

However, as depicted in Fig. 4, every flash memory product requires different safe reprogramming operation. And the efficiency of reprogramming varies because each flash memory product has different reprogramming result. Nevertheless, still proposed reprogramming method is effective to reduce the amount of retention error. According to M. Zhang et al. (18), the most common type of retention errors are “00”${\rightarrow}$”01”, “01${\rightarrow}$10”, “01”${\rightarrow}$”11”, and “10”${\rightarrow}$“11”, with their relative percentages over all retention errors being 46%, 44%, 5%, and 2%, respectively. Among these retention errors, “00”${\rightarrow}$”01”, “01”${\rightarrow}$”11”, and “10”${\rightarrow}$”11” are correctable for Fig. 4(a) flash memory chip. Therefore, 53% of retention errors can be corrected for Fig. 4(a) chip. In the same way, 51%, 53%, and 5% of retention errors can be corrected for Fig. 4(b)-(d), respectively.

Fig. 5 shows the procedure to the uncorrected error information for the Fig. 4(a) chip. First, the codeword is read from flash memory and corrected by LDPC ECC. Then, reprogrammable errors are partially corrected to good values through system-level reprogramming. In Fig. 5, errors marked by black rectangles are overwritten by using the reprogram data; however, errors marked by red rectangles are not corrected because reprogramming operations of ”00”${\rightarrow}$”10” and “10”${\rightarrow}$”11” are not available for Fig. 4(a) chip. During this process, the upper page and lower page for a codeword would be read simultaneously, and properly processed by LDPC ECC.

Fig. 6 shows an example of correction procedure with the proposed partial reprogramming scheme for the Fig. 4(a) chip. Two codewords in upper and lower pages are decoded by LDPC ECC and system level reprogramming is performed for both upper and lower page. To correct an erroneous page, ‘1101111111101111’ and ‘1111110111111111’ are overwritten to the same page. Then data stored in the corrected pages is ‘0100101011101011’ and ‘0110010110110110’. It is noted that uncorrectable errors and correct data need to be overwritten with ‘11’ for the Fig. 4(a) chip to avoid the unintended change of data.

2. Utilizing Error Information while LDPC Decoding

After performing the proposed system level in-place reprogramming, each codeword may still contain some uncorrected errors. Using the information about the uncorrected errors, the correction ability and decoding performance of LDPC decoder can be further improved with accurate LLR input values. Precise LLR values for each code is known to be very helpful for improving the decoding performance of soft-decision LDPC (18).

Fig. 6. System-level reprogramming for a codeword

../../Resources/ieie/JSTS.2020.20.1.063/fig6.png

As shown in Fig. 3, soft-decision LDPC calculates log-likelihood ratio (LLR) with each iteration. The LLR indicates that each bit node is more likely ‘0’ or ‘1’. To calculate the LLR value, the error probability (1)is assigned to Eqs. (2, 3). In proposed decoding scheme, the number of uncorrected errors is given as additional input for decoding to get the precise LLR. In the early lifetime of flash memory, low bit error probability (e.g., 10$^{-7}$) is assigned for decoding. However, a higher bit error probability (e.g., 10$^{-4}$, 10$^{-3}$) is required to handle potentially massive errors after the p-e cycle exceeds a certain level (e.g., 10k p-e cycles). Accordingly, the bit error probability of each bit node is adaptively assigned in proposed scheme.

To improve the performance of LDPC decoding, the number of uncorrected errors after reprogramming is given as additional input of LDPC decoder. The proposed scheme utilizes spare area to indicate the number of uncorrected errors. Each bit of error information area can be marked to ‘0’ to store information about the number of errors in each codeword. The input BER used for decoding is given to decoder based on error information and predetermined BER table. Each input BER is determined as a value between 10$^{-7}$ and 10$^{-4}$, and the value is determined by how many bits are flipped to ‘0’. In Fig. 7, codeword 1 have four uncorrected errors and two bits of uncorrected error count field of codeword 1 are flipped to ‘0’. Then, the input BER (Bit error probability) used for decoding is determined as BER$_{2}$. Likewise, BER$_{3}$ is given as input BER for decoding of codeword 2. However, if the decoding is performed first time, error information cannot be provided to decoder. Therefore, the uncorrected error information is given as input after the first decoding as shown in Fig. 8.

Fig. 7. Decision of input BER (Bit error probability) based on uncorrected error information.

../../Resources/ieie/JSTS.2020.20.1.063/fig7.png

Fig. 8. Flow of proposed decoding scheme and codeword structure.

../../Resources/ieie/JSTS.2020.20.1.063/fig8.png

As shown in Fig. 7 and 8, implementation of proposed scheme requires additional space to indicate the level of error. For example, 1Mbytes of dedicated space (2 byte per page$\times $524,288 pages) is required for 2 Gbyte NAND flash memory chip (4K page$\times $524,288) to store error information when each codeword contains additional 2 bytes of error information field. The space overhead may be different for other NAND flash chips which uses different page size. To implement the proposed scheme, spare area can be considered as dedicated space for storing the additional error information. In general, spare area is reserved area for system usage (e.g., bad block management, garbage collection). However, spare area is not fully utilized during the lifetime of SSDs. Thus, remaining empty space in spare area can be used for implementation of proposed method.

As discussed above, proposed method dynamically assigns the input BER depending on the number of uncorrected errors after performing LDPC decoding and proposed reprogramming scheme. Error prediction (9) scheme can also calculate proper input BER value for decoding when the system requests a lot of sequential read. However, its prediction performance is limited when a lot of random read operations occurred in system level. This is because the estimation algorithm of error prediction scheme can only utilize the number of ‘1’s in left and right cell, while it requires additional parameters like BER and number of ‘1’s (initial value and measured value) of lower page, p-e cycle, retention day, and coupling information. These additional parameters for error prediction help to calculate accurate BER value of certain cell, but at the expense of more complex calculation and resulting in longer delay.

On the other hand, the proposed methods can be applied to any systems where both sequential reads and random reads occur frequently. It is because the proposed method only requires the uncorrected error count after decoding codewords and correction of correctable retention errors. Although the proposed method requires additional space to store the uncorrected error information, proposed method reduces the number of error in each codeword and enhances the reliability of stored data. As a result, the proposed method reduces the RBER (Raw bit error rate) and increases the chance of successful decoding of codeword. In addition, low read latency is also achievable by reducing the RBER of flash memory. According to Y. Du et al.(25), higher RBER causes longer read latency. Thus, the read latency of flash memory can be further reduced by using the proposed input BER optimization method along with proposed reprogramming scheme.

In some flash memories, spare area can be used instead of using extra space to reduce overhead. However, still some of the uncorrected error information field may contain correctable retention errors. In this case, additional BER information bits are also reprogrammed along with the reprogramming of codewords to prevent the corruption of BER information field. Despite the BER information field has been reprogrammed, this field still may contain some errors which has not been restored by reprogramming. Thus, this field may require ECC to ensure higher reliability of proposed methods. However, the error information field is unlikely to contain multiple bit errors. Thus, among several ECCs, SEC-DED is a feasible solution because it requires less delay and hardware overhead. Since the size of additional BER information field is small (e.g. 8 or 16 bits for 2Gbyte NAND flash memory chip) and reprogramming operation reduces the number of errors, SEC-DED code is strong enough to recover the retention error occurred in error information field.

IV. EXPERIMENTAL RESULTS

For verification of proposed methods, MLC NAND flash chip that the most reprogramming operations are available (14) was applied, and LDPC simulation code (19) is modified to build the check / generator matrices, encode the data, simulate the error based on baking test, and decode the codewords. The check matrix and generator matrix for our experiment are 4-cycle-free quasi-cyclic LDPC (QC-LDPC) with a code rate of 0.94. Generally, QC-LDPC is known to be efficient and gives fast response of encoding and decoding among LDPC codes (23,24). Therefore, QC-LDPC code is applied to verification to reduce the encoding and decoding complexity. Additionally, the codewords are encoded and decoded under BSC (Binary Symmetric Channel) with given error probability between 10$^{-7}$ and 5$\times $10$^{-3}$, which showed the acceptable decoding ability. During the decoding iteration, each bit node decides the bit value based on BP (belief propagation) algorithm with sum-product algorithm. For evaluation, LDPC decoding is performed on both normal data with errors and reprogrammed data whose correctable errors were corrected with the proposed reprogramming method.

To accurately measure how many errors occurred when the flash memory chip is left for a long period, we programmed 1,000 randomly generated codewords and baked in 125℃ to accelerate the retention effect (2), according to the classic temperature-activated Arrhenius law (22). Additionally, the p-e cycle of target chip is fixed to 5k cycles to easily accelerate the retention effect. It is observed that the accelerated retention effect causes up to 0.4% (4$\times $10$^{-3}$) of RBER (Raw bit error rate, the bit error rate in data before ECC processing) to certain codeword stored in flash memory. The acceleration of retention effect is performed until the chip has same retention effect lasted about 24 months. The performance of the LDPC decoder with proposed scheme was evaluated through a simulation using 1-byte error information field. Therefore, extra space used for storing uncorrected error information is 500 Kbytes for 4 Gbyte flash memory chip (1 byte per each 8K-size page$\times $524,288 = 500 Kbytes). If the spare area is not fully utilized by system, the extra space is not required.

Tables 1-4 shows comparison of the average iteration and number of successfully decoded codewords. Average iteration causes the latency due to its iterative message passing. Thus, lower average iteration results in less delay. The number of successfully decoded codewords indicates the correction ability of LDPC decoder. If the performance of LDPC decoder is stronger, it can correct more potential errors occurred in codeword. Thus, higher number of successfully decoded codewords indicates the correction ability of LDPC decoder.

As discussed in section III, random errors which are simulated in codewords are reprogrammed at system level using proper data, and the uncorrected error count information generated from system-level reprogramming is given as the input of LDPC decoder. A fraction of correctable errors (e.g., retention error) are reprogrammed at the system level, as shown in Fig. 4(a). After reprogramming, the codewords are decoded to evaluate the performance of proposed method. The same LDPC check matrix is used for evaluation of proposed decoding method with maximum 20 iterations. The following decoding simulation result shows the average iteration performed for decoding, and the number of codewords decoded successfully. The maximum input RBER value was 10$^{-2}$ that can successfully decode the codeword. However, since input RBER value of 10$^{-2}$ did not showed acceptable performance, we assigned the seven levels of input RBER value between 10$^{-7}$ and 5$\times $10$^{-3}$ to conventional LDPC decoder and input RBER table of proposed method during the verification.

Table 1. Comparison of average iteration of typical LDPC decoding (with fixed input RBER) and proposed LDPC decoding

Retention Time

Conventional LDPC decoding

(with fixed input RBER)

Proposed

LDPC decoding

Comparison with conventional LDPC decoding

(compared with best-case scenario)

$10^{-7}$

$10^{-6}$

$10^{-5}$

$10^{-4}$

$5$ × $10^{-4}$

$10^{-3}$

$5$ × $10^{-3}$

1 week

0.002

0.002

0.002

0.002

0.002

0.002

0.004

0.002

0%

1 month

0.006

0.006

0.006

0.006

0.006

0.006

0.012

0.006

0%

2 months

0.01

0.01

0.01

0.01

0.01

0.01

0.01

0.01

0%

3 months

0.09

0.09

0.09

0.09

0.09

0.09

0.17

0.08

-11.12%

6 months

0.56

0.56

0.56

0.56

0.56

0.56

1.12

0.58

+3.57%

12 months

10.78

10.12

9.40

6.09

2.94

1.90

2.60

1.92

+1.05%

18 months

fail

fail

fail

fail

fail

19.99

19.93

19.92

-0.36%

24 months

fail

fail

fail

fail

fail

fail

fail

fail

-

Table 2. Comparison of number of successfully decoded codewords of typical LDPC decoding (fixed input RBER) and proposed LDPC decoding

Retention Time

Conventional LDPC decoding

(with fixed input RBER)

Proposed

LDPC decoding

Comparison with conventional LDPC decoding

(compared with best-case scenario)

$10^{-7}$

$10^{-6}$

$10^{-5}$

$10^{-4}$

$5$ × $10^{-4}$

$10^{-3}$

$5$ × $10^{-3}$

1 week

1000

1000

1000

1000

1000

1000

1000

1000

0%

1 month

1000

1000

1000

1000

1000

1000

1000

1000

0%

2 months

1000

1000

1000

1000

1000

1000

1000

1000

0%

3 months

1000

1000

1000

1000

1000

1000

1000

1000

0%

6 months

1000

1000

1000

1000

1000

1000

1000

1000

0%

12 months

536

571

605

814

948

993

1000

1000

0%

18 months

0

0

0

0

0

1

5

6

+20%

24 months

0

0

0

0

0

0

0

0

-

Table 1 shows the average iteration of conventional LDPC decoding and proposed LDPC decoding, without performing proposed reprogramming method. During the 24 months of retention time, proposed method showed lower average iteration which is closer to the lowest average iteration of conventional decoding. As shown in Table 1, it is observed that the proposed LDPC decoding method shows almost similar performance of best-case scenario of conventional LDPC decoding with fixed input RBER value. However, LDPC decoding of codeword was not successfully completed for whole 1,000 codewords when the data retention time was longer than 12 months because the number of errors exceeded the correction limit of LDPC decoder. In this case, the average iteration is calculated only for the decoding-successful codewords.

Table 2 shows the number of successfully decoded codewords of conventional LDPC decoding and proposed decoding method. Proposed method shows similar level of robust correction ability compared to the best-case scenario of conventional LDPC decoding method while reducing the average iteration. However, the decoding failed for most of the codewords when the retention time is longer than 18 months. In this case, the number of successfully decoded codeword of proposed LDPC decoding is 20% higher than conventional scheme. From this, it can be inferred that additional uncorrected error information improves the correction ability of LDPC decoder, and the correction limit under proposed LDPC decoding is up to 18 months.

Table 3. Comparison of average iteration of typical LDPC decoding (with fixed input RBER) and proposed LDPC decoding with proposed reprogramming scheme

Retention Time

Conventional LDPC decoding

(with fixed input RBER, applied proposed reprogramming scheme)

Proposed

LDPC decoding

along with proposed reprogramming

Comparison with conventional LDPC decoding

without reprogramming

(compared with best-case scenario)

$10^{-7}$

$10^{-6}$

$10^{-5}$

$10^{-4}$

$5$ × $10^{-4}$

$10^{-3}$

$5$ × $10^{-3}$

1 week

0.002

0.002

0.002

0.002

0.002

0.002

0.004

0.002

0%

1 month

0.006

0.006

0.006

0.006

0.006

0.006

0.012

0.006

0%

2 months

0.01

0.01

0.01

0.01

0.01

0.01

0.01

0.01

0%

3 months

0.06

0.06

0.06

0.06

0.06

0.06

0.119

0.06

-33.34%

6 months

0.488

0.488

0.488

0.488

0.486

0.486

0.973

0.487

-13.04%

12 months

8.698

8.13

7.51

4.78

2.34

1.86

2.68

1.86

-3.13%

18 months

19.95

19.817

19.823

19.20

18.18

17.17

15.85

15.52

-22.09%

24 months

fail

19.975

19.986

19.89

19.72

19.51

18.85

18.81

-

Table 4. Comparison of number of successfully decoded codewords of typical LDPC decoding (fixed input RBER) and proposed LDPC decoding with proposed reprogramming scheme

Retention Time

Conventional LDPC decoding

(with fixed input RBER, applied proposed reprogramming scheme)

Proposed

LDPC decoding

along with proposed reprogramming

Comparison with conventional LDPC decoding without reprogramming

(compared with best-case scenario)

$10^{-7}$

$10^{-6}$

$10^{-5}$

$10^{-4}$

$5$ × $10^{-4}$

$10^{-3}$

$5$ × $10^{-3}$

1 week

1000

1000

1000

1000

1000

1000

1000

1000

0%

1 month

1000

1000

1000

1000

1000

1000

1000

1000

0%

2 months

1000

1000

1000

1000

1000

1000

1000

1000

0%

3 months

1000

1000

1000

1000

1000

1000

1000

1000

0%

6 months

1000

1000

1000

1000

1000

1000

1000

1000

0%

12 months

632

664

695

870

967

990

1000

1000

0%

18 months

2

19

14

74

135

192

299

300

+6,000%

24 months

0

3

1

15

23

38

98

100

-

Table 3 and 4 shows the average iteration and number of decoding-successful codewords of conventional LDPC decoding and proposed LDPC decoding along with proposed reprogramming method. Unlike Tables 1 and 2, Tables 3 and 4 show that codewords are still available to decode even after longer than 12 months of retention time. It is because the proposed in-place reprogramming scheme corrected the error (correctable retention error) in each codeword, thus the LDPC decoder can recover the data through decoding. In Table 4, it can be seen that the proposed method successfully decoded the largest number of codewords. Compared to best-case scenario of conventional LDPC decoding without reprogramming (Table 2), the proposed in-place reprogramming method significantly enhanced the data reliability. Additionally, Table 3 shows that the proposed schemes requires similar amount of iterations to decode the codewords. Thus, it can be inferred that the proposed LDPC decoding and reprogramming scheme can extend the reliable retention time and enhance the performance of LDPC decoder without degrading reliability of stored data.

It is observed from experimental results that the proposed LDPC decoding method along with proposed reprogramming scheme can improve the correction ability of LDPC decoder and reduce the average iteration up to 33%, which causes read latency, while maintaining the robust correction ability. Also, the proposed in-place reprogramming scheme reduces the number of errors by correcting the correctable retention errors in a codeword. In general, most of block-code ECC fails decoding or causes miscorrection when the codeword contains a large number of errors near its correction limit. However, proposed reprogramming method reduces the error and helps LDPC decoder to easily decode the codeword. As a result, the reliable retention time is extended by using proposed safe in-place reprogramming scheme.

V. CONCLUSIONS

In this paper, we proposed a reliable system-level in-place reprogramming scheme and a LDPC decoding scheme that uses the additional error information generated from system-level reprogramming. With these schemes, (1)errors can be safely corrected at the system level without corrupting other data stored in neighboring pages, and (2)the correction ability of the LDPC decoder is improved by utilizing additional uncorrected error information generated after in-place reprogramming at system level. The simulation results show that the proposed methods reduce the average iteration up to 33% compared to conventional LDPC decoding, and reliable retention time of data is also extended without degrading the performance.

ACKNOWLEDGMENTS

This work was supported in part by the National Research Foundation of Korea Grant through the Ministry of Education, Science and Technology under Grant (NRF-2017R1D1A1B03030821), in part by the Ministry of Trade, Industry and Energy under Grant (10052875), and in part by the Korea Semiconductor Research Consortium support program for the development of future semiconductor device.

REFERENCES

1 
Cai Y., Haratsch E. F., Mutlu O., 2012, Error Patterns in MLC NAND Flash Memory: Measurement, Characterization, and Analysis, in Proc. Design, Automation & Test in Europe Conference & Exhibition (DATE)DOI
2 
Gallager R. G., Jan 1962, Low-density Parity-check Codes, IRE Transactions on Information Theory, Vol. it-8, No. 1, pp. 21-28DOI
3 
MacKay D. J. C., Mar 1999, Good error-correcting codes based on very sparse matrices, IEEE Transactions on Information Theory, Vol. 45, No. 2, pp. 399-431DOI
4 
Berrou C., Glavieus A., Thitimajshima P., May 1993, Near Shannon limit error-correcting coding and decoding: Turbo-codes, in Proc. Communications, 1993. ICC ’93 Geneva, Technical Program, Conference Record, IEEE International Con-ference on, pp. 1064-1070DOI
5 
Cho S., Kim D., Choi J., Ha J., Apr 2014, Block-Wise Concatenated BCH Codes for NAND Flash Memories, IEEE Transactions on Communi-cations, Vol. 62, No. 4DOI
6 
Cai Y., Yalcin G., O.Mutlu , Cristal A., Unsal O. S., Mai K., 2012, Flash Correct-and-Refresh: Retention-Aware Error Management for Increased Flash Memory Lifetime, in Proc. Computer Design (ICCD), 2012 IEEE 30th International Conference onDOI
7 
Di Y., Shi L., Wu K., Xue C. J., 2016, Exploiting Process Variation for Retention Induced Refresh Minimization on Flash Memory, in Proc. Design, Automation & Test in Europe Conference & Exhibition (DATE)Google Search
8 
Dong G., Xie N., Zhang T., Feb 2011, On the Use of Soft-Decision Error-Correction Codes in NAND Flash Memory, IEEE Transactions on Circuits and Systems-I: Regular Papers, Vol. 58, No. 2DOI
9 
Tanakamaru S., Yanagihara Y., Takeuchi K., Nov 2013, Error-Prediction LDPC and Error-Recovery Schemes for Highly Reliable Solid-State Drives (SSDs), IEEE Journal of Solid-State Circuits, Vol. 48, No. 11DOI
10 
Johnson S. J., , Introducing Low-Density Parity-Check Codes, May 2010 [Online]. Available: http://researchgate.net/publication/228977165_Introducing_Low-Density_Parity-Check_CodesGoogle Search
11 
Park H., Kim J., Choi J., Lee D., Noh S. H., 2015, Incremental Redundancy to Reduce Data Retention Errors in Flash-based SSDs, in Proc. Mass Storage Systems and Technologies (MSST), 2015 31st Symposium onDOI
12 
Suh K.-D., Suh B.-H., Lim Y.-H., Kim J.-K., Choi Y.-J., Koh Y.-N., Lee S.-S., Kwon S.-C., Choi B.-S., Yum J.-S., Choi J.-H., Kim J.-R, Lim H.-K., Nov 1995, A 3.3 V 32 Mb NAND Flash memory with Incremental Step Pulse Programming Scheme, IEEE Journal of Solid-State Circuits, Vol. 30, No. 11, pp. 1149-1156DOI
13 
Park K.-T., Song Y., Kang M., Lee S., Lim Y.-H., Suh K.-D., Chung C., Oct 2010, Dynamic Vpass Controlled Program Scheme and Optimized Erase Vth Control for High Program Inhibition in MLC NAND Flash Memories, IEEE Journal of Solid-State Circuits, Vol. 45, No. 10DOI
14 
Samsung Electronics , Feb. 2007, Datasheet: K9XXG08UXM (Preliminary-Flash Memory), [Online] Available:http://downloadsqi-hardwarecom/hardware/datasheets/qi_lb60/U9~K9GAG08U0M~~2GB-FINAL_NAND-NOT_ON_SOME_PROTOTYPES~~pdfGoogle Search
15 
Toshiba Electronics , Aug. 2012, TC58NVG0S3HTA00 Data sheet/English, [Online] Available: https://toshibasemicon-storagecom/info/docget jsp?did=12571&prodName=TC58NVG0S3HTA00Google Search
16 
SK Hynix, Dec. 2009, 32GB NAND Flash H27UBG8T2A Data sheet (Rev 0.6), [Online] Available: http://datasheetiiiccc/datasheets-0/sk_ hynix/H27UBG8T2ATR-BCpdfGoogle Search
17 
Micron , May. 2008, NAND Flash memory (MT29F16G08X, MT29F32G08X, MT29F64G08X) Features (Rev. D), [Online] Available: http://www datasheetspdfcom/datasheet/downloadphp?id=720595Google Search
18 
Zhang M., Wu F., He X., Huang P., Wang S., Xie and C., 2016, REAL: A retention Error Aware LDPC Decoding Scheme to Improve NAND Flash Read Performance, in Proc. Mass Storage Systems and Technologies (MSST), 2016 32nd Symposium onDOI
19 
Radford Neal , Feb. 2012, Software for Low Density Parity Check Codes, [Online] Available: http://wwwcsutorontoca/~radford/ftp/LDPC-2012 -02-11/indexhtmlGoogle Search
20 
Gupta A., Kim Y., Urgaonkar B., Mar 2009, DFTL: A Flash Translation Layer Employing Demand-based Selective Caching of Page-level Address Mappings, in Proc. 14th International Conference on Architectural Support for Programming Languages and Operating System, ASPLOS 2009sDOI
21 
Lee D., Shin M., Choi W., Roh H., Park S., Jan 2018, MV-FTL: An FTL That Provides Page-Level Multi-Version Management, IEEE Transaction on Knowledge on Data Engineering, Vol. 30, No. 1DOI
22 
Xu M., Tan C., 2003, Extended Arrhenius Law of Time-to-breakdown of Ultrathin Gate Oxides, Applied Physics Letters, Vol. 82DOI
23 
Myung S., Yang K., Kim J., Aug 2005, Quasi-cyclic LDPC codes for fast encoding, IEEE Transactions on Information Theory, Vol. 51, No. 8DOI
24 
Zhang L., Huang Q., Lin S., Ghaffar K. A., Blake I. F., Nov 2010, Quasi-cyclic LDPC codes : an algebraic construction, rank analysis, and codes on Latin squares, IEEE Transactions on Communications, Vol. 58, No. 11DOI
25 
Du Y., Zou D., Li Q., Shi L., Jin H., Xue C. J., 2017, LaLDPC: Latency-aware LDPC for Read Performance Improvement of Solid-State Drives, in Proc. 33rd International Conference on Massive Storage Systems and Technology (MSST 2017)Google Search

Author

Jinuk Kim
../../Resources/ieie/JSTS.2020.20.1.063/au1.png

Jinuk Kim received the B.S. in computer science and engineering from Hanyang University, South Korea in 2015.

Since 2015 he has been working toward the combined M.S. and Ph.D. degree in computer science and engineering at the same university.

His interests include design-for-testability (DFT), memory ECC, memory test, 3D-IC testing, aging monitoring, and low-power design.

Jihun Jung
../../Resources/ieie/JSTS.2020.20.1.063/au2.png

Jihun Jung received the B.S. and Ph.D. degrees in computer science and engineering from Hanyang University, Seoul, South Korea, in 2010 and 2017, respectively.

Since 2017, he has been with Teradyne, Boston, MA, USA, for system level testing.

His current research interests include design for testability, memory test, memory ECC, 3-D-IC testing, on-line test, aging monitoring, and system level testing.

Sungju Park
../../Resources/ieie/JSTS.2020.20.1.063/au3.png

Sungju Park received the BS degree in Electronic Engineering from Hanyang University, South Korea, in 1983.

He received the M.S. and Ph.D. degrees in Electrical and Computer Engineering from University of Massachusetts, United States, in 1988 and 1992, respectively.

From 1983 to 1986, he was with the Gold Star Company in South Korea. From 1992 to 1995, he served IBM Microelectronics, Endicott, NY as a Development Staff in-charge of boundary scan and LSSD scan design.

Since then, he has been a Professor in the department of Computer Science and Engineering in Hanyang University, South Korea.

His research interests lie in the area of VLSI testing including scan design, built-in self-test, test pattern generation, fault simulation, and synthesis of test.

Additional interests include graph theory and design verification. Prof. Park is a member of the Institute of Electronics Engineers of Korea, the Korea Information Science Society, and the Institute of Electronics and Information and Communication Engineers.