KimJinuk
JungJihun
ParkSungju*
-
(Dept. of Computer Science & Engineering, Hanyang University, Korea
)
Copyright © The Institute of Electronics and Information Engineers(IEIE)
Index Terms
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.
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.
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).
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.
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).
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.
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
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.
Fig. 8. Flow of proposed decoding scheme and codeword structure.
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
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)
Gallager R. G., Jan 1962, Low-density Parity-check Codes, IRE Transactions on Information
Theory, Vol. it-8, No. 1, pp. 21-28
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-431
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-1070
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. 4
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 on
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)
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. 2
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. 11
Johnson S. J., , Introducing Low-Density Parity-Check Codes, May 2010 [Online]. Available:
http://researchgate.net/publication/228977165_Introducing_Low-Density_Parity-Check_Codes
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 on
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-1156
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. 10
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~~pdf
Toshiba Electronics , Aug. 2012, TC58NVG0S3HTA00 Data sheet/English, [Online] Available:
https://toshibasemicon-storagecom/info/docget jsp?did=12571&prodName=TC58NVG0S3HTA00
SK Hynix, Dec. 2009, 32GB NAND Flash H27UBG8T2A Data sheet (Rev 0.6), [Online] Available:
http://datasheetiiiccc/datasheets-0/sk_ hynix/H27UBG8T2ATR-BCpdf
Micron , May. 2008, NAND Flash memory (MT29F16G08X, MT29F32G08X, MT29F64G08X) Features
(Rev. D), [Online] Available: http://www datasheetspdfcom/datasheet/downloadphp?id=720595
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 on
Radford Neal , Feb. 2012, Software for Low Density Parity Check Codes, [Online] Available:
http://wwwcsutorontoca/~radford/ftp/LDPC-2012 -02-11/indexhtml
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 2009s
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. 1
Xu M., Tan C., 2003, Extended Arrhenius Law of Time-to-breakdown of Ultrathin Gate
Oxides, Applied Physics Letters, Vol. 82
Myung S., Yang K., Kim J., Aug 2005, Quasi-cyclic LDPC codes for fast encoding, IEEE
Transactions on Information Theory, Vol. 51, No. 8
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. 11
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)
Author
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 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 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.