Декодирование LDPC-кодов в дискретном канале flash-памяти

УДК 681.3.07

ДЕКОДИРОВАНИЕ LDPC-КОДОВ В ДИСКРЕТНОМ КАНАЛЕ FLASH-ПАМЯТИ

А. В. Козлов,

аспирант

Санкт-Петербургский государственный университет аэрокосмического приборостроения

Рассматривается система коррекции ошибок в устройствах flash-памяти с многоуровневыми ячейками на основе LDPC-кодов. Предлагается метод выставления надежностей для битов ячейки памяти, основанный на разработанной модели flash-памяти. Продемонстрирована эффективность совместного использования данного метода и вероятностных LDPC-декодеров в сравнении с «жесткими» декодерами.

This paper presents a multilevel cell (MLC) Flash memory error correction system based on LDPC codes. A method of setting up cell bits reliability is described. This method was devised using a new discrete Flash memory model. The effectiveness of combined use of this method and probabilistic LDPC decoders was demonstrated comparing to hard decoders.

Введение

В устройствах ПавИ-памяти с многоуровневыми ячейками (MLC АавИ-память) проблемы возникновения искажений во время записи/чтения, а также долговременного хранения становятся критичными для их надежности. В MLC-памяти на одном транзисторе с плавающим затвором хранится два бита информации с использованием четырех уровней порогового напряжения. Однако использование модуляций больших порядков ведет к более непредсказуемому программированию ячеек, менее надежным чтению и хранению. В связи с этим использование помехоустойчивых кодов для защиты данных становится необходимым [14]. Коды с низкой плотностью проверок на четность ^БРС) [5] показывают хорошие практические результаты при использовании вероятностного декодирования, однако в устройствах ПавИ-памя-ти получение «мягкого» выхода канала для таких декодеров является непрактичным. В связи с этим встает задача декодирования LDPC-кодов в дискретном канале с использованием надежностей. В данной работе предлагается метод выставления надежностей, которые могут быть использованы при вероятностном декодировании LDPC-кодов.

Модель системы

Структура памяти

Рассмотрим ячейку MLC АавИ-памяти с четырьмя уровнями порогового напряжения L0, L1, L2, L3 (рис. 1, a). Каждая такая ячейка хранит два информационных бита, а уровни L0, L1, L2, L3

соответствуют информационным парам 11, 01, 00,

01. Несмотря на то что два информационных бита физически принадлежат к одной ячейке, исходя из структуры памяти, они лежат в разных логических страницах. С точки зрения кодирования, это означает, что старшие и младшие биты лежат в двух разных кодовых словах. Таким образом, физическая страница состоит из N ячеек N — длина кодового слова) и из двух логических страниц и соответственно содержит в себе два кодовых слова. Физические страницы группируются в блоки, а ячейки в блоке на одних и тех же позициях кодовых слов группируются в строки (рис. 1, б). Важно отметить, что строки имеют единое электрическое соединение, поэтому при определенных условиях возможен сбой всей строки. С точки зрения возникновения ошибок, операции над АавИ-памя-тью могут быть разделены на три группы: записи, чтения и хранения. Рассмотрим их поочередно.

Ошибки записи

В устройствах АавИ-памяти помещение электронов на плавающий затвор (операция программирования или записи) является недостаточно предсказуемым. Операция записи осуществляется несколькими импульсами, при этом существует система контроля того, что ячейка имеет недостаточный уровень порогового напряжения, однако возможность контроля программирования сверх требуемого уровня отсутствует. Поэтому основным источником ошибок при записи является перепрограммирование ячеек в более высокий уровень порогового напряжения. Отдельно необходимо рассмотреть перепрограммирова-

д Страница

1 Страница

Страница

Страница

V

Строка

Рис. 1. Модель ячейки памяти

ние ячейки сверх уровня ^раввгеай, это приводит к сбою всей строки памяти в уровень L3, так как данная ситуация приводит к

блокировке тока в строке. Учитывая экспоненциальный характер (см. рис. 1, a) поведения функций плотности распределений для порогового напряжения, можно использовать следующую аппроксимацию для матрицы переходных вероятностей между уровнями:

f = 1 W wr Wwr exPfß(

WR = = 0 =1 X wr

= 0 = 0 = 1

= 0 = 0 = 0

Wwr exp

ß

Xwr exp

2

ß

+ Zw

+ Zw

Y + Z

l-wr' ^wr

где Wwr — вероятность перепрограммирования уровня L0 в L1; Zwr — вероятность перепрограммирования в уровень L3 всей строки, которая выражается из вероятности p перепрограммирования сверх порогового напряжения ^passread и размера строки S, Zwr = 1 - (1 - p)S, p ~ cycles; cycles — это число циклов программирования/стирания для блока; Ywr — вероятность перепрограммирования уровня L2 в L3; Wwr, Ywr, Zwr ~ cycles; Xwr — вероятность перепрограммирования уровня L1 в L2; в — параметр; 8i — разности между средними значениями пороговых напряжений соседних уровней (см. рис. 1, a).

Ошибки хранения

Во время хранения у некоторых ячеек возможна утечка электронов с плавающего затвора под действием электрического поля ячейки с высоким уровнем порогового напряжения. Таким образом, некоторые ячейки теряют их заряд со временем. Данный механизм утечки ускоряется с ростом числа циклов программирования/стирания. Процесс хранения может быть описан следующей матрицей переходных вероятностей:

f

RET =

--Xret exP

-'Xret exP

--Xret exP

ß

ß

ß

Xret exP

Xret exP

0

1

ß(§1+§2) 2

ß

0

0

=0 A 0

X

где Xret — вероятность перехода из уровня L3 в уровень L2 во время хранения; Xret ~ cycles • timea; time — время хранения, ч, а — коэффициент ускорения утечки. Остальные вероятности перехода экспоненциально меньше вследствие того, что электрическое поле ячейки уменьшается пропорционально ее пороговому напряжению.

Ошибки чтения

Поданное напряжение чтения является причиной того, что свободные электроны могут попасть на плавающий затвор. Таким образом, некоторые ячейки могут заряжаться при их интенсивном чтении. Данный механизм, так же как и механизм утечки во время хранения, сильно ускоряется в зависимости от электрического поля. Так как направление поля в данном случае противоположно, наибольшее число ошибок происходит в ячейках с уровнем L0. Таким образом, процесс интенсивного чтения может быть описан следующей матрицей переходных вероятностей:

f = 1 Xrd XrdexP) Xrd exP 1 ß

RD = = 0 = 1 Xrd exP

= 0 = 0 =1 Xrd exP 1 ß

= 0 = 0 = 0 = 1

где Xrd — вероятность перехода из уровня L0 в L1, Xrd ~ cycles х х nreadsY; nreads — число чтений, у — коэффициент ускорения.

Выставление надежностей для битов ячейки

Вычисление надежностей из матриц переходных вероятностей

Для того чтобы вычислить логарифмы отношений правдоподобий для битов ячейки после полного цикла обращения (операции записи, хранения, чтения), вычислим матрицу переходных вероятностей P, которая содержит в себе вероятности переходов после всех трех операций. Для этого воспользуемся свойством, что произведение стохастических матриц — также стохастическая матрица:

P = WR • RET • RD.

Зная матрицу P и используя знание двоичных меток уровней (см. рис. 1, а), получим:

f

msbL0

= log

P11 + P4

41

A

P21 + P31

LLR,

lsbL0

= log

P11 + P

21

P31 + P41

LLR

msbL1

= log

P12 + P

41

P22 + P32

LLRlsbL1 = log

P22 + P

12

P32 + P42

LLR

msbL2

= log

P13 + P

43

P33 + P23

LLRl

lsbL2

= log

P12 + P1

13

P33 + P43

LLR

msbL3

= log

14

P24 + P34

LLRl

lsbL3

= log

P14 + P>

24

P44 + P34

где ^НтвЬЫ и ЬЬВиьи — это логарифмы отношений правдоподобий для уровня и1 старшего и младшего бита соответственно.

Упрощенное вычисление надежностей В связи с тем, что вычисление логарифмов отношений правдоподобий, полученных по вышеописанному методу, имеет высокую сложность, в данной работе предлагается упрощенный метод вычисления надежностей. При вычислении логарифмов отношений правдоподобий можно пренебречь членами произведения вероятностей, порядок которых больше одного. Это позволяет получить следующие упрощенные выражения:

K1 = exp

Р

K2 = exp

K3 = exp

2

в(8о +8i) 2

p

25

20

15

10

i 5

1

1

0

5

10

15

20

LLR vs Time, Nreads = 1000

- LLRL0Bit0,

- LLRL0Bit1,

- LLRL1Bit0,

- LLRL1Bit1,

- LLRL2Bit0,

- LLRL2Bit1,

- LLRL3Bit0,

- LLRL3Bit1,

cycles = cycles = cycles = cycles = cycles = cycles = cycles = cycles =

10000

10000

10000

10000

10000

10000

10000

10000

100

10

102

103

104

105

Time

Рис. 2. Зависимость надежностей от времени хранения

10°

10“1

10“2

10“3

ос

ш 10-4

10“

10“

10“'

10“

EG(4469,4096) code performance, Cycles = 10000

Е ;;;;;; I;i;; I!;;'; I;; i; i; ; ; ; ; i; it I ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : : ' : :

: —A— Uncoded : : : : : : :::::::::

_ —^— Hard majority

: : ::

: —•—Log - BP, 10 iterations :iz

- - ; - - -p^

—O— Log -BP, 1 iteration /Ctfy

г - . ; ; ; 1

: —1=1—Min -Sum, 10 iterations r: :: : ::::

- —— Min -Sum, 1 iteration

:

' : y'\ : "

| Hi:!:!

- : r:ri~

г ЩЩШ :|:hhi=

: ' :9: :: :!:!:!:!=

; -

- Nti1

:  ::::::::::

; i i i ; ; ; ;

10“

101

102

Time

103

104

105

Рис. 3. Производительность кода EG (4469, 4096) с различными декодерами

LLR

msbLO

= log

(

K1Xret + 1

Л

( K1Xret + 1 Л

LLR

v 2KXret

( K

LLRlsbL0 = log

( K1 Xret + Wwr + Xrd Л

2K1Xret

msbL1

= log

V

LLRlsbL1 = log

(

K3 Xret + 1 Wwr + Xrd + 1

2K, Xret

LLR

msbL2

= log

K2 Xrd + Xret K2 Xrd + Wwr + 1

(

LLRlsbL2 = log

(

K2 Xrd + Wwr + Xrd

Xret +1

LLRmsbL3 = log

(

LLRl

lsbL3

= log

K1 (Wwr + ^^rd ) + Zwr + 1 K3 X'wr + 2K1 Xrd + 2Zwr + Ywr

K1(Wwr + 2Xrd ) + K3'Xwr + 2Zw K1Xrd + Zwr + Y'wr + 1

В качестве примера на рис. 2 показана зависимость надежностей битов от времени хранения.

Литература

1. A New Reliability Model for Post-Cycling Charge Retention of Flash Memories / Hanmant P. Belgal et al // Annual International Reliabilily Physics Symposium. Dallas. Texas, 2002. P. 7-20.

2. Multi-Level Memory Systems Using Error Control Codes / Hsie-Chia Chang et al // IEEE ISCAS. 2004. P. 393-396.

3. Fei Sun, Siddharth Devarajan, Ken Rose, and Tong Zhang. Multilevel Flash Memory On-Chip Error

Результаты моделирования

Для того чтобы продемонстрировать эффективность предложенного метода выставления надежностей, были промоделированы различные декодеры LDPC-кодов. Рис. 3 иллюстрирует производительность евклидово-геометрического LDPC-кода (4469, 4096) с различными «жесткими» и «мягкими» декодерами. Как видно из графиков вероятности ошибки, использование «мягких» декодеров совместно с предложенным методом выставления надежностей дает выигрыш порядка 3,5-4 раза по времени хранения по сравнению с «жесткими» декодерами. Аналогичные выигрыши могут быть получены в терминах числа циклов программирования/стирания и числа чтений.

Заключение

В данной работе был предложен метод выставления надежностей для прочитанных бит из АавИ-памяти. Данный метод получен с использованием разработанной дискретной модели ПавИ-памяти. Результаты моделирования показывают, что применение вероятностных декодеров LDPC- кодов совместно с информацией о надежностях позволяет добиться значительного выигрыша.

Correction Based on Trellis Coded Modulation // IEEE ISCAS. 2006. P.1443-1446.

4. Stefano Gregori, Alessandro Cabrini, Osama Khouri, and Guido Torelli. On-Chip Error Correcting Techniques for New-Generation Flash Memories // Proceedings of the IEEE. April 2003. Vol. 91. N 4. P. 602616.

5. Галлагер Р. Дж. Коды с малой плотностью проверок на четность. М.: Мир, 1966. 144 с.