RU2811072C1 - Способ декодирования, декодер и устройство декодирования - Google Patents

Способ декодирования, декодер и устройство декодирования Download PDF

Info

Publication number
RU2811072C1
RU2811072C1 RU2022120670A RU2022120670A RU2811072C1 RU 2811072 C1 RU2811072 C1 RU 2811072C1 RU 2022120670 A RU2022120670 A RU 2022120670A RU 2022120670 A RU2022120670 A RU 2022120670A RU 2811072 C1 RU2811072 C1 RU 2811072C1
Authority
RU
Russia
Prior art keywords
decoding
sub
code word
value
hard decision
Prior art date
Application number
RU2022120670A
Other languages
English (en)
Inventor
Мо ЛИ
Дори ГИДРОН
Майкл ЗАРУБИНСКИ
Дуди ЛЕВИ
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Application granted granted Critical
Publication of RU2811072C1 publication Critical patent/RU2811072C1/ru

Links

Images

Abstract

Изобретение относится к области декодирования данных. Технический результат заключается в снижении энергопотребления при декодировании. Декодирование с мягким решением выполняется над первым подкодовым словом в множестве подкодовых слов для получения результата жесткого решения. Определяется то, следует ли пропустить итерацию декодирования. Когда итерация декодирования не пропускается, первый идентификатор выключения, соответствующий первому подкодовому слову, устанавливается на первое значение на основе результата жесткого решения. Первый идентификатор выключения используется для указания того, следует ли выполнять декодирование с мягким решением для первого подкодового слова в следующей итерации декодирования. Декодирование с мягким решением не выполняется над первым подкодовым словом в следующей итерации декодирования тогда, когда значение, указанное первым идентификатором выключения, является первым значением. Результат жесткого решения сохраняется. 4 н. и 13 з.п. ф-лы, 14 ил.

Description

Перекрестная ссылка на родственную заявку
Настоящая заявка испрашивает приоритет китайской патентной заявки № 201911393850.1, поданной в Национальное управление по интеллектуальной собственности Китая 30 декабря 2019 года и озаглавленной «СПОСОБ ДЕКОДИРОВАНИЯ, ДЕКОДЕР И УСТРОЙСТВО ДЕКОДИРОВАНИЯ», которая включена в данный документ во всей своей полноте путем ссылки.
Область техники, к которой относится изобретение
Настоящая заявка относится, в общем, к области связи и, в частности, к способу декодирования, декодеру и устройству декодирования.
Уровень техники
В высокоскоростной оптической системе передачи требуется технология упреждающей коррекции ошибок (Forward error correction, FEC) для улучшения характеристик передачи системы и поддержки большей дальности передачи. Здесь FEC указывает кодирование подлежащих передаче данных в соответствии с конкретным правилом и внесение конкретной избыточности (то есть служебных данных) на передающей стороне; и выполнение декодирования на приемной стороне согласно соответствующему правилу кодирования для исправления ошибок передачи данных, вносимых в процесс передачи из-за шума или повреждения канала. FEC можно разделить на FEC с жестким решением и FEC с мягким решением в соответствии с способом декодирования.
FEC с жестким решением указывает то, что значение каждого бита данных, вводимых в декодер FEC, может быть равно только 0 или 1. Входные данные упоминаются как жесткая информация. В процессе декодирования декодер вычисляет и обновляет только жесткую информацию и, наконец, выводит жесткую информацию. FEC с мягким решением указывает то, что данные каждого бита, вводимого в декодер FEC, представлены значением с плавающей запятой или значениями с фиксированной запятой, полученных посредством квантования. Символ значения указывает на значение бита: 0 или 1. Абсолютное значение указывает на достоверность значения. Входные данные упоминаются как мягкая информация. В процессе декодирования декодер вычисляет и обновляет мягкую информацию и, наконец, выводит жесткую информацию.
FEC с жестким решением имеет низкую сложность реализации и требует низкого энергопотребления, но обеспечивает меньшее улучшение производительности системы передачи, чем FEC с мягким решением. FEC с мягким решением обеспечивает большее повышение производительности системы передачи, чем FEC с жестким решением, но имеет высокую сложность реализации и высокое энергопотребление. Таким образом, необходимо выбирать различные способы декодирования в соответствии с различными сценариями применения. По этой причине в текущей конструкции микросхемы FEC ожидается, что декодирование в множестве сценариев применения может поддерживаться в одной микросхеме FEC, и могут быть удовлетворены требования к энергопотреблению, задержке и т.п. системы.
В традиционной технологии используется непосредственно декодирование с мягким решением. Декодирование прекращается, когда результат декодирования удовлетворяет определенному условию. Однако, как правило, за несколько циклов декодирования с мягким решением до завершения декодирования остается относительно небольшое количество битовых ошибок. При декодировании с мягким решением большая часть производительности декодера тратится впустую, что приводит к большому ненужному энергопотреблению.
Сущность изобретения
Ввиду этого варианты осуществления настоящей заявки обеспечивают способ декодирования, декодер и устройство декодирования для снижения энергопотребления декодирования.
Согласно первому аспекту вариант осуществления настоящей заявки раскрывает способ декодирования. Способ декодирования включает в себя:
выполнение декодирования с мягким решением над подкодовым словом первой строки в множестве подкодовых слов кодового слова для получения первого результата жесткого решения; и
определение того, следует ли пропустить итерацию декодирования; и когда итерация декодирования не пропущена, установку на первое значение на основе первого результата жесткого решения первого идентификатора выключения, соответствующего подкодовому слову первой строки, где первый идентификатор выключения используется для указания того, следует ли выполнять декодирование с мягким решением над подкодовым словом первой строки в следующей итерации декодирования, и декодирование с мягким решением не выполняется над подкодовым словом первой строки в следующей итерации декодирования тогда, когда значение, указанное первым идентификатором выключения, равно первому значению; и сохранение первого результата с жестуим решением; или
когда итерация декодирования пропускается, выводится первый результат жесткого решения.
Здесь первый результат жесткого решения является действительным результатом жесткого решения подкодового слова первой строки, то есть действительным подкодовым словом. В способе декодирования, раскрытом в настоящей заявке, идентификатор отключения добавляется для каждого подлежащего декодированию подкодового слова. Если действительный результат жесткого решения был выработан для первого подкодового слова, значение, указанное идентификатором выключения подкодового слова, обновляется на первое значение, чтобы указать то, что декодирование с мягким решением не требуется выполнять над первым подкодовым словом в следующей итерации декодирования, тем самым уменьшая энергопотребление декодирования и повышая эффективность декодирования.
В возможной реализации значение по меньшей мере одного первого бита в первом результате жесткого решения отличается от значения первого бита в результате жесткого решения, сохраненного до выполнения декодирования с мягким решением над кодовым словом первой строки в текущий момент времени. Первый бит соответствует подкодовому слову первого столбца. Подкодовое слово первого столбца и подкодовое слово первой строки пересекаются в первом бите. Идентификатор выключения, соответствующий подкодовому слову первого столбца, устанавливается на второе значение. Когда значение, указанное с помощью идентификатора выключения, соответствующего подкодовому слову первого столбца, является вторым значением, декодирование с мягким решением выполняется над подкодовым словом первого столбца в следующей итерации декодирования.
Результат жесткого решения, сохраненный до выполнения декодирования с мягким решением над подкодовым словом первой строки в текущий момент времени, как правило, представляет собой результат жесткого решения, полученный в итерации декодирования, выполненной над подкодовым словом первой строки в предыдущий момент времени. Когда в подкодовом слове первой строки имеется битовая ошибка, не только снова выполняется декодирование с мягким решением над подкодовым словом первой строки, но также выполняется декодирование над подкодовым словом первого столбца, ассоциированного с подкодовым словом первой строки, тем самым повышая точность и точность декодирования.
В возможной реализации получается второй идентификатор выключения, соответствующий второму подкодовому слову в множестве подкодовых слов кодового слова. Значение, указанное вторым идентификатором выключения, является первым значением. Получается второй результат жесткого решения для второго подкодового слова. Второй результат жесткого решения является действительным результатом жесткого решения, полученным в итерации декодирования перед текущей итерацией декодирования. Определяется то, следует ли пропустить итерацию декодирования. Когда итерация декодирования не пропускается, вторая мягкая информация вырабатывается на основе второго результата жесткого решения. Вторая мягкая информация используется для декодирования с мягким решением в следующей итерации декодирования, выполняемой над вторым подкодовым словом. Когда итерация декодирования пропускается, выводится второй результат жесткого решения.
Когда второе подкодовое слово декодируется в текущий момент времени, сохраняется второй идентификатор выключения, соответствующий второму подкодовому слову. Значение, указанное вторым идентификатором выключения, является вторым значением. Таким образом, нет необходимости декодировать второе подкодовое слово в текущий момент времени.
В возможной реализации выработка второй мягкой информации на основе второго результата жесткого решения включает в себя: выработку второй мягкой информации на основе значения символа, соответствующего второму результату жесткого решения, и значения битовой ширины второй мягкой информации. Максимальное значение битовой ширины или относительно большое значение ширины мягкой информации выбирается оптимальным образом.
В возможной реализации получается третий идентификатор выключения, соответствующий третьему подкодовому слову в множестве подкодовых слов. Значение, указанное третьим идентификатором выключения, является вторым значением. Третье подкодовое слово необходимо декодировать в текущей итерации декодирования. Получается третья мягкая информация, соответствующая третьему подкодовому слову. Декодирование с мягким решением выполняется над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения.
Определяется то, является ли действительным третий результат жесткого решения. Если третий результат жесткого решения является действительным, вырабатывается новая третья мягкая информация. Новая третья мягкая информация используется для последующей итерации декодирования, выполняемой над третьим подкодовым словом. Значение, указанное третьим идентификатором выключения, обновляется на первое значение. Так как третий результат жесткого решения является действительным, нет необходимости декодировать третье подкодовое слово в следующей итерации декодирования.
В возможной реализации, после выполнения декодирования с мягким решением над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения, способ дополнительно включает в себя:
определение того, что текущая итерация декодирования является конечной итерацией декодирования в заданном количестве итераций декодирования;
пропуск итерации декодирования; и
вывод третьего результата жесткого решения.
В возможной реализации определение того, является ли действительным третий результат жесткого решения, включает в себя:
вычисление, на основе третьего результата жесткого решения, полученного для третьего подкодового слова, матрицы синдромов, соответствующей третьему подкодовому слову; и
определение, на основе значения матрицы синдромов, соответствующей третьему подкодовому слову, того, является ли действительным третий результат жесткого решения.
Согласно второму аспекту в варианте осуществления настоящей заявки раскрыт декодер. Декодер включает в себя процессор, первую память и вторую память.
Процессор выполнен с возможностью выполнения декодирования с мягким решением над подкодовым словом первой строки в множестве подкодовых слов кодового слова для получения первого результата жесткого решения.
Первая память выполнена с возможностью хранения первого идентификатора выключения, соответствующего подкодовому слову первой строки.
Вторая память выполнена с возможностью хранения первого результата жесткого решения.
Процессор дополнительно выполнен с возможностью установки первого идентификатора выключения на первое значение. Первый идентификатор выключения используется для указания того, следует ли выполнять декодирование с мягким решением над подкодовым словом первой строки в следующей итерации декодирования. Декодирование с мягким решением не выполняется над подкодовым словом первой строки в следующей итерации декодирования тогда, когда значение, указанное первым идентификатором выключения, является первым значением.
Процессор дополнительно выполнен с возможностью сохранения первого результата жесткого решения во второй памяти.
В возможной конструкции декодер дополнительно включает в себя интерфейс вывода. Интерфейс вывода выполнен с возможностью вывода первого результата жесткого решения, полученного посредством декодирования подкодового слова первой строки.
В возможной реализации процессор дополнительно выполнен с возможностью: определения того, что значение по меньшей мере одного первого бита в первом результате жесткого решения отличается от значения первого бита в результате жесткого решения, сохраненного до выполнения декодирования c мягким решением над кодовым словом первой строки в текущий момент времени. Первый бит соответствует подкодовому слову первого столбца. Подкодовое слово первого столбца и подкодовое слово первой строки пересекаются в первом бите.
Процессор дополнительно выполнен с возможностью: установки, на второе значение, идентификатора выключения, соответствующего подкодовому слову первого столбца; и, когда значение, указанное с помощью идентификатора выключения, соответствующего подкодовому слову первого столбца, является вторым значением, выполнения декодирования с мягким решением над подкодовым словом первого столбца в следующей итерации декодирования.
В возможной реализации декодер дополнительно включает в себя интерфейс ввода. Интерфейс ввода выполнен с возможностью получения второго идентификатора выключения, соответствующего второму подкодовому слову в множестве подкодовых слов. Значение, указанное вторым идентификатором выключения, является первым значением.
Интерфейс ввода дополнительно выполнен с возможностью получения второго результата жесткого решения второго подкодового слова.
Процессор выполнен с возможностью определения того, следует ли пропустить итерацию декодирования. Когда итерация декодирования не пропускается, процессор вырабатывает вторую мягкую информацию на основе второго результата жесткого решения. Вторая мягкая информация используется для декодирования с мягким решением в следующей итерации декодирования, выполняемой над вторым подкодовым словом.
Когда итерация декодирования пропускается, интерфейс вывода дополнительно выполнен с возможностью вывода второго результата жесткого решения, полученного посредством декодирования второго подкодового слова.
В возможной реализации интерфейс ввода дополнительно выполнен с возможностью получения третьего идентификатора выключения, соответствующего третьему подкодовому слову в множестве подкодовых слов. Значение, указанное третьим идентификатором выключения, является вторым значением. Интерфейс ввода дополнительно выполнен с возможностью получения третьей мягкой информации, соответствующей третьему подкодовому слову. Процессор дополнительно выполнен с возможностью выполнения декодирования с мягким решением над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения.
Когда процессор определяет то, что третий результат жесткого решения является действительным, процессор дополнительно конфигурируется для выработки новой третьей мягкой информации. Новая третья мягкая информация используется для последующей итерации декодирования, выполняемой над третьим подкодовым словом. Процессор дополнительно выполнен с возможностью обновления значения, указанного третьим идентификатором выключения, на первое значение.
В возможной реализации, после того как процессор выполнит декодирование с мягким решением над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения, процессор дополнительно конфигурируется для пропуска итерации декодирования. Интерфейс вывода дополнительно выполнен с возможностью вывода третьего результата жесткого решения.
В возможной реализации то, что процессор определяет, следует ли пропустить итерацию декодирования, включает в себя:
Процессор определяет то, достигает ли текущее количество итераций заданного количества итераций.
Процессор пропускает итерацию декодирования тогда, когда текущее количество итераций достигает заданного количества итераций; или не пропускает итерацию декодирования тогда, когда текущее количество итераций не достигает заданного количества итераций.
Согласно третьему аспекту вариант осуществления настоящей заявки раскрывает устройство декодирования. Устройство декодирования включает в себя память и процессор.
Память выполнена с возможностью хранения программы.
Процессор выполнен с возможностью выполнения программы, хранящейся в памяти. Когда программа выполняется, процессор конфигурируется для выполнения способа в любой из возможных реализаций первого аспекта.
В возможной реализации устройство декодирования представляет собой микросхему или интегральную схему.
Согласно четвертому аспекту в варианте осуществления настоящей заявки раскрыт компьютерный носитель информации. Компьютерный носитель информации хранит машиночитаемые инструкции. Когда компьютер считывает и исполняет машиночитаемые инструкции, компьютер может выполнять способ в любой из возможных реализаций первого аспекта.
Согласно пятому аспекту в варианте осуществления настоящей заявки дополнительно раскрыт компьютерный программный продукт. Когда компьютер считывает и исполняет компьютерный программный продукт, компьютер может выполнять способ в любой из возможных реализаций первого аспекта.
Краткое описание чертежей
Фиг. 1а - схематичное представление структуры системы кодирования/декодирования согласно варианту осуществления настоящей заявки;
фиг. 1b - схематичное представление структуры кодового слова TPC согласно варианту осуществления настоящей заявки;
фиг. 2 - блок-схема последовательности операций способа декодирования согласно варианту осуществления настоящей заявки;
фиг. 3а - схематичное представление схемы кодирования кодового слова согласно варианту осуществления настоящей заявки;
фиг. 3b - схематичное представление схемы декодирования кодового слова согласно варианту осуществления настоящей заявки;
фиг. 4 - схематичное представление способа получения базовой последовательности согласно варианту осуществления настоящей заявки;
фиг. 5 - схематичное представление способа получения тестовой последовательности согласно варианту осуществления настоящей заявки;
фиг. 6 - блок-схема последовательности операций способа декодирования согласно варианту осуществления настоящей заявки;
фиг. 7 - блок-схема последовательности операций способа декодирования согласно варианту осуществления настоящей заявки;
фиг. 8 - блок-схема последовательности операций способа декодирования согласно варианту осуществления настоящей заявки;
фиг. 9 - схематичное представление структуры декодера согласно варианту осуществления настоящей заявки;
фиг. 10 - схематичное представление структуры устройства декодирования согласно варианту осуществления настоящей заявки;
фиг. 11 - схематичное представление декодера согласно варианту осуществления настоящей заявки; и
фиг. 12 - схематичное представление устройства декодирования согласно варианту осуществления настоящей заявки.
Подробное описание изобретения
В настоящей заявке раскрыт способ декодирования, декодер и устройство декодирования для снижения энергопотребления декодирования. Ниже приводится подробное описание.
Способ декодирования, декодер и устройство декодирования, раскрытые в настоящей заявке, могут быть применены к типу линейного кода, определенному с использованием проверочной матрицы, например, к коду с малой плотностью проверок на четность (Low Density Parity Check Code, LDPC), и также могут быть применены к двумерному кодовому слову, например, к кодовому слову туробкодов произведения (Turbo Product Codes, TPC). Способ декодирования, раскрытый в настоящей заявке, может быть дополнительно применен к другому типу двумерного кодового слова или многомерного кодового слова. Настоящая заявка не ограничивается этим.
На фиг. 1а показано схематичное представление системы кодирования согласно варианту осуществления настоящей заявки. Со ссылкой на фиг. 1а, система 100 кодирования может включать в себя устройство 101 кодирования и устройство 102 декодирования. Устройство 101 кодирования выполнено с возможностью: кодировать каждый блок данных в потоке данных для получения кодового слова, соответствующего каждому блоку данных, и отправлять кодовый поток, состоящий из кодовых слов, в устройство 102 декодирования. Поток данных может быть любым из видеопотока, аудиопотока, текстового потока и т.п. Одно кодовое слово является результатом кодирования одного блока данных устройством 101 кодирования. Каждое кодовое слово можно рассматривать как один кадр. Данные в одном кодовом слове также являются одним кадром данных. Одно кодовое слово является базовой единицей данных для декодирования, выполняемого устройством декодирования. Одно кодовое слово может включать в себя биты в множестве строк и в множестве столбцов. Один столбец битов или одна строка битов могут образовывать одно подкодовое слово. Другими словами, одно кодовое слово включает в себя множество подкодовых слов. Каждое подкодовое слово включает в себя множество битов. Биты, принадлежащие одному и тому же подкодовому слову, располагаются в одной строке кодового слова или в одном столбце кодового слова. Например, одно кодовое слово включает в себя 128*128 битов. Здесь каждые 128 битов - это одна строка, и каждые 128 битов - это один столбец. Другими словами, кодовое слово может включать в себя 128 строковых кодовых слов BCH или 128 столбцовых подкодовых слов. Устройство 101 кодирования может выполнять кодирование с использованием схемы кодирования каскадного (staircase) кода произведения (турбокода произведения, turbo product code, TPC). Биты кодового слова, полученного в схеме кодирования, защищены строковым подкодовым словом Боуза-Чоудхури-Хоквенгема (Bose Ray-Chaudhuri Hocquenghem, BCH) и столбцовым подкодовым словом BCH. Устройство 101 кодирования выполняет кодирование с использованием одного кадра данных (например, 128 битов*128 битов) в качестве базовой единицы. Данные в двух соседних кадрах соответствуют соотношению кодирования BCH (n, k). Здесь n - длина кода одного подкодового слова BCH, и k - информационный бит одного подкодового слова BCH. Например, устройство 101 кодирования выполняет кодирование строкового BCH (256, 239) кодового слова в 0-ом кадре и 1-ом кадре в потоке данных, то есть выполняет кодирование данных в каждой строке битов в 0-ом кадре и 1-ом кадре на основе строк, чтобы получить кодированный 0-ой кадр и кодированный 1-ый кадр. Затем устройство 101 кодирования выполняет кодирование столбцового кодового слова BCH (256, 239) с кодированием в кодированном 1-ом кадре и 2-ом кадре, то есть выполняет кодирование данных в каждом столбце битов в кодированном 1-ом кадре и кодированном 2-ом кадре, чтобы получить кодированный 1-ый кадр, полученный после двухкратного кодирования, и кодированный 2-ой кадр, полученный после однократного кодирования. В этом случае каждый бит в кодированном 1-ом кадре после двухкратного кодирования защищен одним строковым подкодовым словом и одним столбцовым подкодовым словом.
Устройство 102 декодирования выполнено с возможностью декодирования кодового слова в принятом кодовом потоке. Каждый раз, когда устройство 102 декодирования принимает кодовое слово, устройство 102 декодирования может выполнять итеративное декодирование целевого количества кодовых слов. Целевое количество кодовых слов может включать в себя вновь принятое кодовое слово и ранее декодированное кодовое слово.
Кодовое слово TPC представляет собой типичный двумерный блочный алгебраический код. Совместное кодирование может выполняться в двух измерениях с использованием одного и того же алгебраического подкодового слова или разных алгебраических подкодовых слов. Структура кодового слова TPC кодового слова показана на фиг. 1b (в данном примере алгебраическое подкодовое слово является кодовым словом BCH ). Код TPC использует прямоугольный (в основном квадратный) информационный блок в качестве единицы кодирования. Во-первых, кодирование строки выполняется над каждой строкой информационного блока с использованием кодового слова BCH 1. Служебные данные кодирования расположены в правой части информационного блока. Затем выполняется кодирование столбцов над каждым столбцом информационного блока и служебными данными строки с использованием кодового слова BCH 2. Служебные данные кодирования расположены ниже информационного блока и служебных данных строки. Согласно внутреннему математическому принципу кодового слова BCH, нижний правый угол представляет собой служебные данные столбца, кодированные на основе информационного блока и служебных данных строки. Кодовое отношение строки BCH 1 автоматически выполняется с точки зрения измерения строки. После кодирования информационный блок и служебные данные строк и столбцов образуют большую прямоугольную единицу блока данных, то есть одно кодовое слово TPC.
На стороне декодирования выполняется итеративное декодирование строки/столбца с использованием кодового слова TPC в качестве базовой единицы декодирования. При определенном количестве итераций производительность декодирования повышается с увеличением количества итераций. Ядро декодирования строк/столбцов при итеративном декодировании может использовать ядро декодирования с жестким решением с относительно низкой сложностью, или может использовать ядро декодирования с мягким решением "мягкий вход - мягкий выход" (SISO) с лучшей производительностью, или может быть спроектировано как динамическое. архитектура декодирования, которую можно переключать в зависимости от условия.
Когда используется ядро декодирования с жестким решением, требуется только один кэш декодирования с битовой шириной 1 бит: RAM_HD. После каждого декодирования строки/столбца необходимо инвертировать только биты в соответствующем месте в RAM_HD на основе результата декодирования. Значения битов в RAM_HD постоянно обновляются на итерациях. После завершения итеративного декодирования в качестве результата декодирования выводится конечное состояние RAM_HD.
Когда используется ядро декодирования SISO, два кэша декодирования, в которых битовая ширина представляет собой множество битов: RAM_LLR и RAM_EX, необходимо использовать, соответственно, для хранения значения логарифмического отношения правдоподобия (Log Likelihood Ratio, LLR) каждого бита, полученного из канала, и значения внешней информации, полученного после каждого итеративного декодирования строки/столбца. В процессе декодирования каждого кодового слова TPC содержание RAM_LLR остается неизменным, и RAM_EX, соответственно, обновляется на основе значения внешней информации, полученного после каждого декодирования строки/столбца. Входная мягкая информация при каждом декодировании строки/столбца вычисляется на основе как внешней информации EX_info, полученной после предыдущего времени декодирования столбца/строки, так и значения LLR. После завершения итеративного декодирования результат жесткого решения о конечном времени декодирования может выводиться просто как окончательный результат декодирования.
Способ декодирования, декодер и устройство декодирования, раскрытые в настоящей заявке, выполняются с использованием подкодового слова в качестве единицы, например, вышеприведенного кодового слова TPC. Предполагается, что одно кодовое слово TPC включает в себя n строк и n столбцов. Другими словами, всего существует 2*n подкодовых слов. Во время декодирования каждое из 2×n подкодовых слов может быть декодировано с использованием способа декодирования в настоящей заявке.
Следует отметить, что кэш идентификатора выключения, кэш результата жесткого решения или кэш мягкой информации, упомянутые ниже в вариантах осуществления настоящей заявки, могут быть системой кэширования объекта хранения или памятью. Память может включать в себя регистр и энергозависимую память (volatile memory), например, оперативную память (Random Access Memory, RAM). Память также может включать в себя энергонезависимую память (non-volatile memory), например, флэш-память (flash memory), жесткий диск (Hard Disk Drive, HDD), твердотельный накопитель (Solid-State Drive, SSD), облачное хранилище (cloud storage), сетевое хранилище (Network Attached Storage, NAS) или сетевой накопитель (network drive). Память может дополнительно включать в себя комбинацию вышеупомянутых типов памяти или другой носитель информации или продукт в любой форме с функцией хранения.
Чтобы специалист в данной области техники лучше понял технические решения, представленные в вариантах осуществления настоящей заявки, далее используется конкретный вариант осуществления для подробного описания способа декодирования, предусмотренного в вариантах осуществления настоящей заявки. Например, подлежащее декодированию кодовое слово в этом варианте осуществления может использовать каскадную (staircase) схему кодирования TPC (Turbo Product Code, TPC). Когда декодирование выполняется над множеством подкодовых слов, как правило, предварительно устанавливается определенное количество итераций декодирования. В N-ой итерации декодирования (N-ая итерация декодирования может быть любой итерацией декодирования, отличной от первой итерации декодирования в заданном количестве итераций декодирования с мягким решением) конкретный процесс способа декодирования в настоящей заявке может включать в себя:
S201: Получить идентификатор выключения, соответствующий подлежащему декодированию подкодовому слову из кэша идентификаторов выключения, и получить ранее сохраненный результат жесткого решения, соответствующий подлежащему декодированию подкодовому слову, из кэша результатов жестких решений.
На стороне декодирования выбирается подлежащее декодированию подкодовое слово для декодирования. Каждое подлежащее декодированию подкодовое слово имеет соответствующий идентификатор выключения. Идентификатор выключения хранится в кэше идентификаторов выключения. Идентификатор выключения, соответствующий подлежащему декодированию подкодовому слову, получается из кэша идентификаторов выключения. В дополнение к этому, кэш результатов жесткого решения выполнен с возможностью сохранения результата жесткого решения в итерации декодирования. Ранее сохраненный результат жесткого решения, соответствующий подлежащему декодированию подкодовому слову, получают из кэша результата жесткого решения.
J201: Определить то, является ли значение, указанное идентификатором выключения, соответствующим подлежащему декодированию подкодовому слову, вторым значением.
Когда значение, указанное идентификатором выключения, соответствующим подлежащему декодированию подкодовому слову, является вторым значением (например, 0), выполняется S202. Когда значение, указанное идентификатором выключения, соответствующим подлежащему декодированию подкодовому слову, не является вторым значением или является первым значением (например, 1), выполняется J203.
Идентификатор выключения, соответствующий подлежащему декодированию подкодовому слову, используется для определения того, нужно ли выполнять декодирование с мягким решением над подлежащим декодированию подкодовым словом в текущей итерации декодирования. Если значение, указанное идентификатором выключения, соответствующим подлежащему декодированию подкодовому слову, является вторым значением (например, 0), это указывает то, что действительный результат жесткого решения не получен в предыдущем процессе декодирования с мягким решением, и декодирование продолжается для повышения производительности декодирования. Если значение, указанное идентификатором выключения, соответствующим подлежащему декодированию подкодовому слову, не является вторым значением или является первым значением (например, 1), это указывает то, что действительный результат жесткого решения получен в предыдущем процессе декодирования с мягким решением. Декодирование с мягким решением не нужно выполнять в текущей итерации декодирования, тем самым уменьшая количество времени декодирования и уменьшая энергопотребление декодирования.
Следует отметить, что этап S202 может начинаться непосредственно тогда, когда итеративное декодирование выполняется первый раз над подкодовым словом, и этап S201 может начинаться тогда, когда выполняются второй раз итеративное декодирование и последующая итерация декодирования.
S202: Получить мягкую информацию, соответствующую подлежащему декодированию подкодовому слову.
Мягкая информация, соответствующая подлежащему декодированию подкодовому слову, получается из кэша мягкой информации в текущей итерации декодирования.
В частности, схема каскадного кодирования TPC, используемая для кодового слова, в котором находится подлежащее декодированию подкодовое слово, может быть показана на фиг. 3а. Каждый бит, для которого используется схема кодирования, кодируется и защищается с использованием двух подкодовых слов Боуза-Чоудхури-Хоквенгема (Bose Ray-Chaudhuri Hocquenghem, BCH): строкового подкодового слова 1 BCH и столбцового подкодового слова 2 BCH. Таким образом, схема кодирования может называться алгоритмом мягкого решения BCH. Например, кодовое слово BCH (512, 491), которое можно использовать для исправления трех ошибок, используется как для строкового подкодового слова 1 BCH, так и для столбцового подкодового слова 2 BCH (подкодовое слово 1 BCH и подкодовое слово 2 BCH могут быть альтернативно реализованы с использованием других кодовых слов BCH ). Кадр данных (256*256 битов) используется как единица для кодирования, и два соседних кадра данных кодируются с использованием одного типа кодового слова BCH. Как показано на фиг. 3, кадр 0 и кадр 1 кодируются с использованием строкового кодового слова BCH 1 (512, 491) и после кодирования представляют собой 256 строковых кодовых слов BCH с длиной 512 битов. Затем кадр 1 и кадр 2 кодируются с использованием столбцового кодового слова 2 (512, 491) BCH (в данном случае для кодового слова 1 BCH и кодового слова 2 BCH может использоваться одна и та же схема кодирования BCH или разные схемы кодирования BCH ), а также 256 столбцовых подкодовых слов с длиной 512 битов после кодирования.
Мягкая информация, соответствующая подлежащему декодированию подкодовому слову, указывает мягкую информацию о значении каждого бита в подлежащем декодированию подкодовом слове и включает в себя значение и достоверность значения. Мягкая информация математически представляется как логарифм отношения апостериорной вероятности того, что каждый бит равен 1, к апостериорной вероятности того, что каждый бит равен 0. Когда значение мягкой информации является положительным, это указывает то, что бит, вероятнее всего, будет равен 1; когда значение мягкой информации отрицательное, это указывает то, что бит, вероятнее всего, будет равен 0. Абсолютное значение мягкой информации может указывать на надежность соответствующего значения. Большее абсолютное значение указывает на более надежное значение.
Например, мягкая информация о бите в подкодовом слове может быть получена с использованием следующего алгоритма:
где APPN представляет мягкую информацию о бите в N-ой итерации декодирования; LLR (логарифмическое отношение правдоподобия, Log Likelihood Ratio) представляет начальную достоверность входных данных канала; Ex_infoN-1 - внешняя информация, выводимая после (N-1)-ой итерации декодирования; α - весовой коэффициент, и α постепенно увеличивается в процессе итераций.
Из приведенного выше алгоритма можно узнать, что во время первого раза декодирования информация LLR, которая относится к каждому биту в каждом кодовом слове и которая вводится по каналу, получается как мягкая информация; во время второго периода декодирования и на этапе последующего декодирования с мягким решением мягкая информация каждого бита получается на основе внешней информации Ex_info, соответствующей биту, и информации LLR, которая представляет собой бит в подлежащем декодированию кодовом слове и которая вводится по каналу.
S203: Выполнить декодирование с мягким решением над подлежащим декодированию подкодовым словом, чтобы получить новый результат жесткого решения.
(1) Выработать по меньшей мере одну тестовую последовательность для подлежащего декодированию подкодового слова на основе мягкой информации каждого бита в подлежащем декодированию подкодовом слове.
Основная идея описанного выше алгоритма мягкого решения BCH состоит в том, чтобы попытаться оценить и исправить ошибку подкодового слова с использованием ограниченного количества тестовых шаблонов ошибок. Таким образом, выработка тестовой последовательности является ключевым этапом алгоритма. Количество тестовых последовательностей также сильно влияет на производительность алгоритма. Основываясь на том, что упоминалось выше, абсолютное значение мягкой информации бита может указывать на достоверность значения бита. Меньшее абсолютное значение указывает на менее надежное значение бита и более высокую вероятность того, что бит является ошибочным битом. Таким образом, для подкодового слова в кодовом слове сначала выбираются P битов с наименьшими абсолютными значениями мягкой информации в подкодовом слове, и считается, что ошибки подкодового слова наиболее вероятны в P местоположениях (где P представляет собой целое число больше нуля, и значение P может быть установлено в соответствии с необходимостью, которая в данном документе не ограничивается). Затем строятся 2P тестовых последовательностей (Test Sequences, TS) в соответствии с P местоположениями. Конкретный способ построения приведен в следующем примере.
После выбора P битов подлежащего декодированию подкодового слова P битов подлежащего декодированию подкодового слова последовательно перебираются с использованием значений: 0 и 1, и биты, отличные от P битов в подкодовом слове, равны 0, чтобы получить базовые последовательности (Basic Sequence, BS) 2P.
Например, предполагается, что P = 2, и 3-ий бит и 7-ой бит подкодового слова имеют два местоположения. В этом случае значения 3-го бита и 7-го бита устанавливаются по отдельности на 1 и 0 в виде последовательности. Таким образом, получают 22 = 4 BS (BS 1 - BS 4), как показано на фиг. 4.
После того, как BS получены, получается результат декодирования, который представляет собой подлежащее декодированию подкодовое слово и который получен посредством декодирования с жестким решением, выполняемого над мягкой информацией подлежащего декодированию подкодового слова, и обозначается как D0, и 2P TS подкодового слова получаются на основе D0 подлежащего декодированию подкодового слова и 2P BS подкодового слова. В частности, сложение по модулю 2 может быть выполнено над D0 подлежащего декодированию подкодового слова и 2P базовых последовательностей подкодового слова для получения 2P TS. Например, четыре BS (BS 1 - BS 4), показанные на фиг. 4, используются для построения TS, и полученные TS (TS 1 - TS 4) могут быть показаны на фиг. 5.
(2) Выполнить декодирование с мягким решением над подлежащим декодированию подкодовым словом на основе всех тестовых последовательностей, выработанных для подлежащего декодированию подкодового слова, чтобы получить по меньшей мере одно действительное подкодовое слово подлежащего декодированию подкодового слова.
После декодирования с мягким решением получаются K выходных подкодовых слов, то есть K действительных подкодовых слов, где K ≤ 2P. Это связано с тем, что некоторые TS могут превышать возможности декодирования, и, следовательно, декодирование не может выполняться нормально.
(3) Выбрать оптимальное действительное подкодовое слово из всех действительных подкодовых слов подлежащего декодированию подкодового слова в качестве нового результата жесткого решения для подкодового слова.
Например, выбор оптимального действительного подкодового слова из K действительных подкодовых слов, полученных после декодирования с мягким решением, выполненного над подлежащим декодированию подкодовым словом, может быть следующим:
Сначала получают евклидовы расстояния между мягкой информацией подкодового слова и K действительных подкодовыми словами подкодового слова. Евклидовы расстояния могут быть получены с использованием формулы евклидова расстояния на основе значения каждого бита каждого действительного подкодового слова подкодового слова и мягкой информации каждого бита кодового слова, например:
где di представляет евклидово расстояние между действительным подкодовым словом i в K действительных подкодовых словах одного подкодового слова и мягкой информацией подкодового слова, действительное подкодовое слово i является любым из K действительных подкодовых слов кодового слова, x1k представляет значение k-го бита действительного подкодового слова i, и x2k представляет значение мягкой информации k-го бита подкодового слова.
Следует отметить, что во время вычисления евклидова расстояния значение бита в действительном подкодовом слове необходимо соответствующим образом преобразовать из (1, 0) в (1, -1), чтобы оно соответствовало диапазону значений мягкой информации.
На основе вышеприведенного алгоритма K евклидовых расстояний можно получить на основе K действительных подкодовых слов. Затем действительное подкодовое слово, соответствующее минимальному евклидову расстоянию, выбирается в качестве оптимального действительного подкодового слова для использования в качестве нового результата жесткого решения подлежащего декодированию подкодового слова.
При необходимости на фиг. 3b показано схематичное представление процесса итеративного декодирования согласно варианту осуществления настоящей заявки. Размер скользящего окна на фиг. 3b равен 6. Предполагается, что кодовое слово в скользящем окне включает в себя (P-6)-ое кодовое слово - (P-1)-ое кодовое слово. Здесь (P-1)-ое кодовое слово является 1-ым кодовым словом в скользящем окне, и (P-6)-ое кодовое слово является последним кодовым словом в скользящем окне. (P-1)-ое кодовое слово представляет собой данные (P-1)-го кадра. Когда устройство декодирования принимает P-ое кодовое слово, скользящее окно сдвигается на одно кодовое слово вперед, так что P-ое кодовое слово является 1-ым кодовым словом в скользящем окне, (P-6)-ое кодовое слово выходит за пределы скользящего окна после скольжения, и (P-5)-ое кодовое слово является последним кодовым словом в скользящем окне. Устройство декодирования начинает выполнять итеративный процесс декодирования над (P-5)-ым кодовым словом - P-ым кодовым словом. Процесс итеративного декодирования включает в себя итеративное декодирование 1-5. Процесс итеративного декодирования устройства декодирования для (P-5)-ого кодового слова - P-ого кодового слова может быть следующим: сначала устройство 102 декодирования выполняет декодирование с мягким решением строк над P-ым кодовым словом и (P-1)-ым кодовым словом в течение определенного времени для получения декодированного P-ого кодового слова и декодированного (P-1)- ого кодового слова. Это обозначается как итеративное декодирование 1. Затем устройство декодирования выполняет декодирование с мягким решением столбца для декодированного (P-1)-ого кодового слова и (P-2)-ого кодового слова для получения дальнейшего декодированного (P-1)-ого кодового слова и декодированного (P-2)-ое кодового слова. Это обозначается как итеративное декодирование 2. Аналогичным образом устройство декодирования выполняет итеративное декодирование 3-5. После завершения итеративного декодирования 5 устройство декодирования выводит результат декодирования (P-5)-ого кодового слова, то есть выводит декодированное (P-5)-ое кодовое слово. Декодирование с мягким решением строк состоит в выполнении декодирования с мягким решением для каждого подкодового слова в кодовом слове на основе строк. Например, для кодового слова устройство декодирования сначала выполняет декодирование с мягким решением над подкодовым словом первой строки в кодовом слове, и затем выполняет декодирование с мягким решением над подкодовым словом второй строки в кодовом слове. Конечно, устройство декодирования может также параллельно выполнять декодирование с мягким решением для множества строк подкодовых слов. Декодирование с мягким решением столбца состоит в выполнении декодирования с мягким решением для каждого подкодового слова в кодовом слове на основе столбцов. Например, для кодового слова, устройство 102 декодирования сначала выполняет декодирование с мягким решением над подкодовым словом первого столбца в кодовом слове, и затем выполняет декодирование с мягким решением над подкодовым словом второго столбца в кодовом слове. Конечно, устройство декодирования может также параллельно выполнять декодирование с мягким решением для множества столбцов подкодовых слов.
J202: Определить то, следует ли пропустить итерацию декодирования.
Если количество раз декодирования после текущей итерации декодирования, выполняемой над подлежащим декодированию подкодовым словом, достигает заранее заданного максимального количества раз декодирования, итерация декодирования пропускается, и выполняется этап S205. Если количество раз декодирования после текущей итерации декодирования, выполняемой над подлежащим декодированию подкодовым словом, не достигает заданного максимального количества раз декодирования, выполняется этап S204.
S204: Если новый результат жесткого решения является действительным, сохранить новый результат жесткого решения; установить на первое значение идентификатор выключения, соответствующий подлежащему декодированию подкодовому слову; и выработать мягкую информацию о следующем времени декодирования с мягким решением, выполняемого над подлежащим декодированию подкодовым словом. Затем выполняется этап S207.
(1) Определить то, является ли действительным полученный новый результат жесткого решения. Если новый результат жесткого решения является действительным, новый результат жесткого решения сохраняется в кэше результатов жесткого решения, и значение, указанное идентификатором выключения, который соответствует подлежащему декодированию подкодовому слову в кеше идентификатора выключения, обновляется на первое значение. Здесь значение, указанное идентификатором выключения, является первым значением, указывающим, что в текущем процессе декодирования с мягким решением получен действительный результат жесткого решения. В следующей итерации декодирования декодирование с мягким решением не требуется выполнять над подкодовым словом, тем самым уменьшая количество времени декодирования и уменьшая энергопотребление декодирования.
В частности, то, является ли действительным новый результат жесткого решения подкодового слова, можно определить на основе проверочной матрицы и нового результата жесткого решения, соответствующего подлежащему декодированию подкодовому слову. В возможной реализации вычисляется произведение проверочной матрицы на новый результат жесткого решения. Когда произведение равно 0, считается, что новый результат жесткого решения является действительным.
Если требуется, при декодировании BCH вычисляется матрица синдромов подкодового слова BCH, чтобы определить то, является ли действительным новый результат жесткого решения. Например, предполагается, что возможность исправления ошибок за одно время декодирования с мягким решением составляет t, то есть можно исправить t битов. На основе нового результата жесткого решения подкодового слова BCH вычисляются 2t синдромов. Если все значения 2t-синдромов равны 0, новый результат жесткого решения является действительным. Если значения 2t-синдромов включают в себя ненулевое значение, новый результат жесткого решения не является действительным. Здесь достоверность, определяемая посредством вычисления матрицы синдромов подкодового слова BCH, является достоверностью по умолчанию в алгоритме декодирования, то есть заданным способом определения достоверности результата декодирования в алгоритме декодирования. На практике может существовать частота битовых ошибок. Настоящая заявка не ограничивает способ определения на основе алгоритма декодирования того, является ли результат декодирования действительным.
(2) Получить внешнюю информацию о каждом бите в подкодовом слове на основе мягкой информации о каждом бите в подкодовом слове, новом результате жесткого решения и субоптимальном действительном подкодовом слове, и выработать мягкую информацию о следующем времени декодирования с мягким решением на основе внешней информации.
Производительность используемого FEC улучшена за счет объединения сверточного кодирования с оконным декодированием. Таким образом, после того, как текущее декодирование с мягким решением завершено, внешняя информация Ex_info, которая относится к каждому биту и которая получена посредством текущего декодирования, должна быть вычислена и передана для следующего декодирования с мягким решением, чтобы выработать мягкую информацию для следующего декодирования с мягким решением, тем самым осуществляя эффективную передачу достоверности в процессе декодирования.
Например, внешняя информация может быть получена в соответствии со следующим алгоритмом:
где wj представляет внешнюю информацию j-го бита подкодового слова; R представляет входную мягкую информацию декодирования с мягким решением; D - оптимальное действительное подкодовое слово подкодового слова, то есть новый результат жесткого решения; C - субоптимальное действительное подкодовое слово (наилучшее действительное подкодовое слово, отличное от оптимального действительного подкодового слова, во всех действительных подкодовых словах подкодового слова также может упоминаться как спорное подкодовое слово); и dj - значение (1/-1) j-го бита D. Так как значение P ограничено, C, которое удовлетворяет вышеуказанному требованию, может не быть найдено в K выходных результатах. В этом случае внешняя информация о бите может быть получена с использованием следующего алгоритма аппроксимации:
Здесь β представляет собой весовой коэффициент. Так как значение процедуры декодирования медленно увеличивается, конкретное значение β может быть получено посредством оптимизации моделирования.
Можно узнать, что результат декодирования в каждом промежутке времени декодирования с мягким решением влияет на следующий момент времени декодирования с мягким решением посредством внешней информации. Таким образом, каждый промежуток времени декодирования с мягким решением, выполняемого над подкодовым словом, также может упоминаться как одна итерация декодирования подкодового слова.
При необходимости значение по меньшей мере одного первого бита в новом результате жесткого решения отличается от значения первого бита в ранее сохраненном результате жесткого решения подлежащего декодированию подкодового слова. Например, подлежащее декодированию подкодовое слово в текущей итерации декодирования является подкодовым словом первой строки. Значение первого бита в подкодовом слове первой строки в текущем результате жесткого решения отличается от значения первого бита в подкодовом слове первой строки в предыдущем сохраненном результате жесткого решения. Первый бит далее соответствует подкодовому слову первого столбца. Подкодовое слово первого столбца и подкодовое слово первой строки пересекаются в первом бите. В этом случае идентификатор выключения, соответствующий подкодовому слову первого столбца, устанавливается на второе значение (например, 0). Когда значение, указанное идентификатором выключения, является вторым значением, декодирование с мягким решением необходимо выполнить над подкодовым словом первого столбца в следующей итерации декодирования.
Следует отметить, что подкодовое слово первой строки и подкодовое слово первого столбца, упомянутые в этом варианте осуществления настоящей заявки, также могут быть двумя ассоциированными подкодовыми словами, и необязательно должны строго следовать общему способу размещения строк-столбцов. В дополнение к этому, биты в подкодовом слове необязательно размещаются в строках. Настоящая заявка не ограничивается этим. Например, как показано на фиг. 6 подкодовое слово 601 первой строки и подкодовое слово 602 первого столбца пересекаются в первом бите 603 (в части полукруглой проекции на фиг. 6). Подкодовое слово 601 первой строки и подкодовое слово 602 первого столбца ассоциируются с использованием первого бита 603. Первый бит 603 соответствует подкодовому слову 601 первой строки и подкодовому слову 602 первого столбца. Форма размещения подкодового слова 601 первой строки и подкодового слова 602 первого столбца также может быть изогнутой (фиг. 6).
S205: Вывести полученный новый результат жесткого решения подлежащего декодированию подкодового слова. Затем выполняется этап S207 до тех пор, пока не будет выполнена окончательная итерация декодирования, выполняемая для конечного подкодового слова во всех подлежащих декодированию подкодовых словах.
J203: Определить то, следует ли пропустить итерацию декодирования.
Если количество раз декодирования после текущей итерации декодирования, выполняемой над подлежащим декодированию подкодовым словом, достигает заданного максимального количества раз декодирования, итерация декодирования пропускается, и выполняется этап S205. Если количество раз декодирования после текущей итерации декодирования, выполняемой над подлежащим декодированию подкодовым словом, не достигает заданного максимального количества раз декодирования, выполняется этап S206.
S206: Выработать новую мягкую информацию на основе результата жесткого решения, сохраненного в предыдущий момент времени декодирования. Затем выполняется этап S207.
Новая мягкая информация вырабатывается на основе полученного результата жесткого решения в предыдущей итерации декодирования. В частности, новая мягкая информация вырабатывается на основе значения символа, соответствующего результату жесткого решения в предыдущей итерации декодирования (данные каждого бита в результате жесткого решения имеют, как правило, два значения: 0 и 1, например, значение символа, соответствующее 1, является положительным, и значение символа, соответствующее 0, является отрицательным), и значения битовой ширины мягкой информации. Новая мягкая информация хранится в кэше мягкой информации. В общем, в качестве выходной мягкой информации используется произведение значения битовой ширины мягкой информации на значение символа, соответствующее результату жесткого решения. Предпочтительно значение битовой ширины мягкой информации является преимущественно максимальным значением битовой ширины или относительно большим значением битовой ширины, которое разрешено для битовой ширины мягкой информации.
S207: Перейти к следующему подкодовому слову.
После того, как текущая итерация декодирования, выполняется над подлежащим декодированию подкодовым словом, завершена, итерация декодирования выполняется над следующим подкодовым словом. Следующее подкодовое слово может быть строковым подкодовым словом или столбцовым подкодовым словом.
В способе декодирования, раскрытом в настоящей заявке, подкодовое слово в кодовом слове используется в качестве базовой единицы декодирования. Точность декодирования повышается по сравнению со случаем, когда кодовое слово используется в качестве единицы декодирования в традиционных технологиях. В традиционных технологиях в качестве единицы декодирования используется кодовое слово. Когда необходимо выполнить декодирование с мягким решением над битом в кодовом слове, декодирование с мягким решением необходимо снова выполнить для всего кодового слова. В технических решениях настоящей заявки необходимо декодировать только подкодовое слово, в котором находится бит, что значительно снижает энергопотребление при декодировании.
В способе декодирования, раскрытом в настоящей заявке, идентификатор выключения добавляется для каждого подлежащего декодированию подкодового слова. После каждой итерации декодирования обновляется значение, указанное идентификатором выключения. Если для подкодового слова был выработан действительный результат жесткого решения, значение, указанное идентификатором выключения подкодового слова, обновляется на первое значение, чтобы указать то, что декодирование с мягким решением не требуется выполнять в следующей итерации декодирования. Если действительный результат декодирования не был получен для бита в подкодовом слове, значение, указанное идентификатором выключения подкодового слова, обновляется на второе значение, чтобы указать то, что декодирование с мягким решением необходимо выполнить снова в следующей итерации декодирования. В способе декодирования, раскрытом в настоящей заявке, значительно снижается энергопотребление декодирования, и повышается эффективность декодирования.
Термины «первый», «второй» и т.п. в настоящей заявке используются для различения аналогичных объектов, и их не нужно использовать для описания конкретной последовательности или порядка. Следует понимать, что данные, используемые в этих терминах, могут быть взаимозаменяемыми в соответствующем случае, так что варианты осуществления, описанные в данном документе, могут быть реализованы в последовательности, не описанной в настоящей заявке. Термин «и/или» используется для описания отношения ассоциации между связанными объектами и указывает то, что могут существовать три отношения. Например, A и/или B могут представлять следующие случаи: существует только A, существуют как A, так и B, и существует только B. Конкретный способ работы в варианте осуществления способа также может быть применен к варианту осуществления устройства. В дополнение к этому, чтобы более четко отразить взаимосвязь между компонентами в разных вариантах осуществления, в настоящей заявке одинаковые ссылочные позиции используется для обозначения компонентов с одинаковой функцией или аналогичными функциями в разных вариантах осуществления.
Следует отметить, что термин «по меньшей мере один», используемый в вариантах осуществления настоящей заявки, означает «один» или «более одного». Например, термин «включать в себя по меньшей мере одно из: A, B и C» может означать следующие значения:
(1) включать в себя А;
(2) включать в себя В;
(3) включать в себя С;
(4) включать в себя А и В;
(5) включать в себя А и С;
(6) включать в себя В и С; и
(7) включать в себя A, B и C.
Следует также отметить, что, если не указано иное, конкретные описания некоторых технических признаков в варианте осуществления также могут использоваться для пояснения соответствующих технических признаков, упомянутых в другом варианте осуществления. Например, ограничение значений первого значения или второго значения в варианте осуществления также применимо к другому варианту осуществления.
На фиг. 7 показана блок-схема последовательности операций способа декодирования согласно настоящей заявке. В следующей процедуре способа S используется для представления этапа типа исполнения, и J используется для представления этапа типа определения. Как показано на фиг. 7, способ декодирования включает в себя следующие этапы:
S701: Выполнить декодирование с мягким решением над подкодовым словом первой строки в множестве подкодовых слов, чтобы получить первый результат жесткого решения.
Декодирование с мягким решением выполняется над подкодовым словом первой строки в множестве подкодовых слов кодового слова для получения первого результата жесткого решения. Для процесса декодирования с мягким решением следует обратиться к соответствующему описанию этапа 203. При необходимости первым результатом жесткого решения является действительное подкодовое слово подкодового слова первой строки. Предпочтительно выбирается оптимальное действительное подкодовое слово.
J701: Определить то, следует ли пропустить итерацию декодирования. Если определяется то, чтобы пропустить итерацию декодирования, выполнить этап S704. Если определяется то, чтобы не пропускать итерацию декодирования, выполнить этап S702.
Если количество раз декодирования после текущей итерации декодирования, выполняемой над подкодовым словом первой строки, достигает заданного максимального количества раз декодирования, итерация декодирования пропускается, и выполняется этап S704. Если количество раз декодирования после текущей итерации декодирования, выполняемой над подкодовым словом первой строки, не достигает заданного максимального количества раз декодирования, выполняется этап S702
S702: Установить на первое значение (например, 1) на основе первого результата жесткого решения первый идентификатор выключения, соответствующий подкодовому слову первой строки.
На основе первого результата жесткого решения определяется, что первый результат жесткого решения является действительным результатом декодирования. Подкодовое слово первой строки соответствует первому идентификатору выключения. Первый идентификатор выключения хранится в кэше идентификаторов выключения. Значение, указанное первым идентификатором выключения, устанавливается равным первому значению. Первый идентификатор выключения используется для указания того, следует ли выполнять декодирование с мягким решением над подкодовым словом первой строки в следующей итерации декодирования. Когда значение, указанное первым идентификатором выключения, является первым значением (например, 1), декодирование с мягким решением не выполняется над подкодовым словом первой строки в следующей итерации декодирования, так как действительный результат первого жесткого решения был получен на этапе S701.
S703: Сохранить первый результат жесткого решения.
Первый результат жесткого решения сохраняется в кэше результатов жесткого решения. Затем может быть дополнительно выполнен этап S705.
S704: Вывести первый результат жесткого решения.
Этапы S701-S704 являются этапами первой итерации декодирования, выполняемой над подкодовым словом.
Этапы S705 и S706 являются необязательными этапами.
S705: Установить второе значение для идентификатора выключения, соответствующего подкодовому слову первого столбца.
Перед выполнением этапа S701, если кэш результата жесткого решения хранит результат жесткого решения, полученный после декодирования с мягким решением, ранее выполненного над подкодовым словом первой строки, значение по меньшей мере одного первого бита в первом результате жесткого решения, полученном в текущей итерации декодирования, отличается от значения первого бита ранее сохраненного результата жесткого решения подкодового слова первой строки. Первый бит соответствует подкодовому слову первого столбца. Подкодовое слово первого столбца и подкодовое слово первой строки пересекаются в первом бите.
Идентификатор выключения, соответствующий подкодовому слову первого столбца, устанавливается на второе значение (например, 0). Когда значение, указанное первым идентификатором выключения, является вторым значением, необходимо выполнить декодирование с мягким решением над подкодовым словом первого столбца в следующей итерации декодирования.
S706: Выполнить итерацию декодирования над следующим подкодовым словом.
После того, как текущая итерация декодирования (например, пятая итерация декодирования), выполненная над подкодовым словом первой строки, завершена, текущая итерация декодирования (например, пятая итерация декодирования) выполняется над следующим подкодовым словом. Следующее подкодовое слово может быть подкодовым словом строки или подкодовым словом столбца.
После того как текущая итерация декодирования была выполнена для всех подлежащих декодированию подкодовых слов в кодовом слове, дополнительно выполняется следующая итерация декодирования. Декодирование не завершится до тех пор, пока не будет выполнено заданное количество итераций декодирования над всеми подлежащими декодированию подкодовыми словами в кодовом слове.
В возможной реализации, как показано на фиг. 8, выполнение итерации декодирования над следующим подкодовым словом на этапе S706 может включать в себя следующие этапы:
S801: Получить второй идентификатор выключения, соответствующий второму подкодовому слову в множестве подкодовых слов. Значение, указанное вторым идентификатором выключения, является первым значением (например, 1).
Так как значение, указанное вторым идентификатором выключения, соответствующим второму подкодовому слову, является первым значением, оно указывает то, что действительный результат жесткого решения второго подкодового слова был получен в предыдущей итерации декодирования, и следовательно, нет необходимости выполнять декодирование с мягким решением над вторым подкодовым словом в текущей итерации декодирования.
S802: Получить второй результат жесткого решения второго подкодового слова. Второй результат жесткого решения является действительным результатом жесткого решения, полученным в итерации декодирования перед текущей итерацией декодирования.
J801: Определить то, следует ли пропустить итерацию декодирования. Если итерация декодирования не пропущена, выполняется этап S803. Когда итерация декодирования пропускается, выполняется этап S804.
S803: Выработать вторую мягкую информацию на основе второго результата жесткого решения. Вторая мягкая информация используется для декодирования с мягким решением в следующей итерации декодирования, выполняемой над вторым подкодовым словом.
При необходимости вторая мягкая информация вырабатывается на основе значения символа, соответствующего второму результату жесткого решения (данные каждого бита результата жесткого решения имеют, как правило, только два значения: 0 и 1, например, значение символа, соответствующее 1, является положительным, и значение символа, соответствующее 0, является отрицательным), и значения битовой ширины второй мягкой информации, и вторая мягкая информация сохраняется в кэше мягкой информации. Предпочтительно максимальное значение битовой ширины или относительно большое значение битовой ширины второй мягкой информации предпочтительно выбирают для значения битовой ширины второй мягкой информации.
S804: Вывести второй результат жесткого решения.
Этапы S801-S804 показывают процесс декодирования после получения действительных результатов жесткого решения для второго подкодового слова в множестве подкодовых слов.
В другой возможной реализации, как показано на фиг. 9, выполнение итерации декодирования над следующим подкодовым словом на этапе S706 может дополнительно включать в себя следующие этапы:
S901: Получить третий идентификатор выключения, соответствующий третьему подкодовому слову в множестве подкодовых слов. Значение, указанное третьим идентификатором выключения, является вторым значением (например, 0).
Так как значение, указанное третьим идентификатором выключения, соответствующим третьему подкодовому слову, является вторым значением, оно указывает то, что действительный результат жесткого решения третьего подкодового слова не был получен в предыдущей итерации декодирования, и, следовательно, нет необходимости выполнять декодирование с мягким решением над третьим подкодовым словом в текущей итерации декодирования.
S902: Получить третью мягкую информацию, соответствующую третьему подкодовому слову. Третья мягкая информация представляет собой третью мягкую информацию, которая соответствует третьему подкодовому слову и которая сохраняется в предыдущей итерации декодирования.
S903: Выполнить декодирование с мягким решением над третьим подкодовым словом на основе третьей мягкой информации, чтобы получить третий результат жесткого решения.
J901: Определить то, является ли действительным третий результат жесткого решения. Если третий результат жесткого решения является действительным, выполнить этап S904. Если третий результат жесткого решения является недействительным, можно дополнительно выполнить этап S905.
Если требуется, при декодировании BCH матрица синдромов подкодового слова BCH вычисляется для определения того, является ли действительным новый результат жесткого решения.
S904: Создать новую третью мягкую информацию и обновить на первое значение значение, указанное третьим идентификатором выключения, соответствующим третьему подкодовому слову. Новая третья мягкая информация используется для последующей итерации декодирования, выполняемой над третьим подкодовым словом.
Так как был получен действительный результат жесткого решения для третьего подкодового слова, декодирование с мягким решением не нужно выполнять над третьим подкодовым словом в следующей итерации декодирования, что позволяет уменьшить энергопотребление декодирования. В этом случае значение, указанное третьим идентификатором выключения, соответствующим третьему подкодовому слову, обновляется на первое значение.
В частности, внешняя информация каждого бита в третьем подкодовом слове получается на основе мягкой информации каждого бита в третьем подкодовом слове и третьего результата жесткого решения, и новая третья мягкая информация вырабатывается на основе внешней информации.
При необходимости, если текущая итерация декодирования, выполняемая над третьим подкодовым словом, является заранее заданной окончательной итерацией декодирования, итерация декодирования пропускается, и выводится третий результат жесткого решения.
S905: Если третий результат жесткого решения является недействительным, значение, указанное третьим идентификатором выключения, остается неизменным. Если текущая итерация декодирования, выполняемая над третьим подкодовым словом, является заданной окончательной итерацией декодирования, выводится информация указателя сбоя декодирования третьего подкодового слова.
Этапы S901-S905 показывают процесс декодирования после того, как действительные результаты жесткого решения не были получены для третьего подкодового слова в множестве подкодовых слов.
В способе декодирования, раскрытом в этом варианте осуществления, по отдельности раскрыты процедура декодирования первой итерации декодирования, выполняемая над подкодовым словом, процедура декодирования для подкодового слова, для которого был получен действительный результат жесткого решения, и процедура декодирования для подкодового слова, для которого не был получен действительный результат жесткого решения. В способе декодирования, раскрытом в настоящей заявке, энергопотребление декодирования значительно снижается, и эффективность декодирования повышается.
На фиг. 10 показан декодер, раскрытый в варианте осуществления настоящей заявки. Как показано на фиг. 10, декодер 1000 включает в себя процессор 1001, первую память 1002 и вторую память 1003.
Процессор 1001 выполнен с возможностью выполнения декодирования с мягким решением над подкодовым словом первой строки в множестве подкодовых слов для получения первого результата жесткого решения.
Вторая память 1003 выполнена с возможностью хранения первого результата жесткого решения.
Первая память 1002 выполнена с возможностью хранения первого идентификатора выключения, соответствующего подкодовому слову первой строки.
Процессор 1001 дополнительно выполнен с возможностью установки первого идентификатора выключения на первое значение. Первый идентификатор выключения используется для указания того, следует ли выполнять декодирование с мягким решением над подкодовым словом первой строки в следующей итерации декодирования. Декодирование с мягким решением не выполняется над подкодовым словом первой строки в следующей итерации декодирования тогда, когда значение, указанное первым идентификатором выключения, является первым значением.
Процессор 1001 дополнительно выполнен с возможностью сохранения первого результата жесткого решения во второй памяти 1003.
Первая память и вторая память используются просто для различения различной сохраненной информации. Фактически первая память и вторая память могут быть разными частями одной и той же памяти, например, могут быть двумя независимыми кэшами или RAM в одной памяти.
В возможной реализации декодер 1000 может дополнительно включать в себя интерфейс 1005 вывода. Интерфейс 1005 вывода выполнен с возможностью вывода первого результата жесткого решения, полученного посредством декодирования подкодового слова первой строки.
В возможной реализации процессор 1001 дополнительно выполнен с возможностью: определения того, что значение по меньшей мере одного первого бита в первом результате жесткого решения отличается от значения первого бита в результате жесткого решения, сохраненного до выполнения декодирования с мягким решением над подкодовым словом первой строки. Первый бит соответствует подкодовому слову первого столбца. Подкодовое слово первого столбца и подкодовое слово первой строки пересекаются в первом бите.
Процессор 1001 дополнительно выполнен с возможностью: установки, на второе значение, идентификатора выключения, соответствующего подкодовому слову первого столбца; и, когда значение, указанное с помощью идентификатора выключения, соответствующего подкодовому слову первого столбца, является вторым значением, необходимо выполнить декодирование с мягким решением над подкодовым словом первого столбца в следующей итерации декодирования.
В другой возможной реализации декодер 1000 дополнительно включает в себя интерфейс 1004 ввода.
Интерфейс 1004 ввода выполнен с возможностью получения второго идентификатора выключения, соответствующего второму подкодовому слову в множестве подкодовых слов. Значение, указанное вторым идентификатором выключения, является первым значением.
Интерфейс 1004 ввода дополнительно выполнен с возможностью получения второго результата жесткого решения второго подкодового слова.
Процессор 1001 дополнительно выполнен с возможностью определения того, следует ли пропустить итерацию декодирования; и, когда итерация декодирования не пропускается,
процессор 1001 вырабатывает вторую мягкую информацию на основе второго результата жесткого решения, причем вторая мягкая информация используется для декодирования с мягким решением в следующей итерации декодирования, выполняемой над вторым подкодовым словом; или
когда итерация декодирования пропускается,
интерфейс 1005 вывода дополнительно выполнен с возможностью вывода второго результата жесткого решения.
В возможной реализации интерфейс 1004 ввода дополнительно выполнен с возможностью получения третьего идентификатора выключения, соответствующего третьему подкодовому слову в множестве подкодовых слов. Значение, указанное третьим идентификатором выключения, является вторым значением.
Интерфейс 1004 ввода дополнительно выполнен с возможностью получения третьей мягкой информации, соответствующей третьему подкодовому слову.
Процессор 1001 дополнительно выполнен с возможностью выполнения декодирования с мягким решением над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения.
Когда процессор 1001 определяет то, что третий результат жесткого решения является действительным, процессор 1001 дополнительно конфигурируется для выработки новой третьей мягкой информации. Новая третья мягкая информация используется для последующей итерации декодирования, выполняемой над третьим подкодовым словом. Процессор 1001 дополнительно выполнен с возможностью обновления значения, указанного третьим идентификатором выключения, на первое значение.
Кроме того, после того как процессор 1001 выполнит декодирование с мягким решением над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения, процессор 1001 дополнительно конфигурируется для пропуска итерации декодирования. Интерфейс 1005 вывода дополнительно выполнен с возможностью вывода третьего результата жесткого решения.
То, что процессор 1001 определяет, следует ли пропустить итерацию декодирования, включает в себя:
Процессор 1001 определяет то, достигает ли текущее количество итераций заданного количества итераций; и пропускает итерацию декодирования тогда, когда текущее количество итераций достигает заданного количества итераций; или не пропускает итерацию декодирования тогда, когда текущее количество итераций не достигает заданного количества итераций.
На фиг. 11 показан декодер, раскрытый в варианте осуществления настоящей заявки. Как показано на фиг. 11, декодер 1100 включает в себя модуль 1101 декодирования с мягким решением, модуль 1102 переключения, модуль 1103 выключения и модуль 1105 вывода.
Модуль 1101 декодирования с мягким решением выполнен с возможностью выполнения декодирования с мягким решением над подкодовым словом первой строки в множестве подкодовых слов для получения первого результата жесткого решения.
Модуль 1102 переключения выполнен с возможностью определения того, следует ли пропустить итерацию декодирования; и, когда итерация декодирования не пропускается,
модуль 1103 выключения устанавливает на первое значение первый идентификатор выключения, соответствующий подкодовому слову первой строки, где первый идентификатор выключения используется для указания того, выполнять ли декодирование с мягким решением над первым подкодовым словом строки в следующей итерации декодирования, и декодирование с мягким решением не выполняется над подкодовым словом первой строки в следующей итерации декодирования тогда, когда значение, указанное первым идентификатором выключения, является первым значением.
Когда итерация декодирования пропускается,
модуль 1105 вывода выводит первый результат жесткого решения, полученный посредством декодирования подкодового слова первой строки. В возможной реализации значение по меньшей мере одного первого бита в первом результате жесткого решения отличается от значения первого бита в результате жесткого решения, сохраненного до выполнения декодирования с мягким решением над подкодовым словом первой строки. Первый бит соответствует подкодовому слову первого столбца. Подкодовое слово первого столбца и подкодовое слово первой строки пересекаются в первом бите.
Модуль 1103 выключения устанавливает второе значение идентификатора выключения, соответствующего подкодовому слову первого столбца; и когда значение, указанное с помощью идентификатора выключения, соответствующего подкодовому слову первого столбца, является вторым значением, выполнить декодирование с мягким решением над подкодовым словом первого столбца в следующей итерации декодирования.
В возможной реализации декодер 1100 дополнительно включает в себя модуль 1104 получения.
Модуль 1104 получения выполнен с возможностью получения второго идентификатора выключения, соответствующего второму подкодовому слову в множестве подкодовых слов. Значение, указанное вторым идентификатором выключения, является первым значением.
Модуль 1104 получения дополнительно выполнен с возможностью получения второго результата жесткого решения второго подкодового слова. Второй результат жесткого решения является действительным результатом жесткого решения, полученным в итерации декодирования перед текущей итерацией декодирования.
Модуль 1102 переключения выполнен с возможностью определения того, следует ли пропустить итерацию декодирования; и, когда итерация декодирования не пропускается,
модуль 1101 декодирования с мягким решением вырабатывает вторую мягкую информацию на основе второго результата жесткого решения, причем вторая мягкая информация используется для декодирования с мягким решением в следующей итерации декодирования, выполняемой над вторым подкодовым словом.
Когда итерация декодирования пропускается, модуль 1105 вывода выводит второй результат жесткого решения.
При необходимости вторая мягкая информация вырабатывается на основе значения символа, соответствующего второму результату жесткого решения, и значения битовой ширины второй мягкой информации.
В возможной реализации модуль 1104 получения дополнительно выполнен с возможностью получения третьего идентификатора выключения, соответствующего третьему подкодовому слову в множестве подкодовых слов. Значение, указанное третьим идентификатором выключения, является вторым значением.
Модуль 1104 получения дополнительно выполнен с возможностью получения третьей мягкой информации, соответствующей третьему подкодовому слову.
Модуль 1101 декодирования с мягким решением дополнительно выполнен с возможностью выполнения декодирования с мягким решением над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения.
Модуль 1101 декодирования с мягким решением дополнительно выполнен с возможностью определения того, является ли действительным третий результат жесткого решения; и если третий результат жесткого решения является действительным, модуль 1101 декодирования с мягким решением вырабатывает новую третью мягкую информацию, где новая третья мягкая информация используется для последующей итерации декодирования, выполняемой над третьим подкодовым словом; и модуль 1103 выключения обновляет значение, указанное третьим идентификатором выключения, на первое значение.
На фиг. 12 показано устройство декодирования, раскрытое в варианте осуществления настоящей заявки. Как показано на фиг. 12, устройство декодирования включает в себя память 1201 и процессор 1202.
Память 1201 выполнена с возможностью хранения программы.
Процессор 1202 выполнен с возможностью выполнения программы, хранящейся в памяти. Когда исполняется программа, процессор конфигурируется для выполнения любого способа, описанного в предыдущих вариантах осуществления способа.
При необходимости устройство декодирования представляет собой микросхему или интегральную схему.
В варианте осуществления настоящей заявки дополнительно раскрыт машиночитаемый носитель информации. Компьютерный носитель информации хранит машиночитаемые инструкции. Когда компьютер считывает и исполняет машиночитаемые инструкции, компьютер может выполнять любой способ, описанный в предыдущих вариантах осуществления способа.
В варианте осуществления настоящей заявки дополнительно раскрыт компьютерный программный продукт. Когда компьютер считывает и исполняет компьютерный программный продукт, компьютер может выполнять любой способ, описанный в предыдущих вариантах осуществления способа.
Вариант осуществления настоящей заявки предусматривает машиночитаемый носитель информации, включающий в себя машиночитаемые инструкции. Когда компьютер считывает и исполняет машиночитаемые инструкции, компьютер может выполнять способ, выполняемый процессором.
Вариант осуществления настоящей заявки дополнительно предусматривает компьютерный программный продукт, включающий в себя инструкции. Когда компьютерный программный продукт запускается на компьютере, компьютер может выполнять способ, выполняемый процессором.
Одинаковые или аналогичные части вариантов осуществления настоящей заявки могут иметь ссылки друг на друга. В частности, варианты осуществления, показанные на фиг. 9 и фиг. 10, описаны просто на основе вариантов осуществления, соответствующих фиг. 2-8. Для связанных частей следует обращаться к описаниям частей вариантов осуществления, соответствующих фиг. 2-8.
Понятно, что специалист в данной области техники должен понимать, что вышеизложенные модули или этапы в настоящем изобретении могут быть реализованы с использованием универсального вычислительного устройства, и модули или этапы могут быть централизованы на одном вычислительном устройстве или распределены по сети, включающей в себя множество вычислительных устройств. При необходимости модули или этапы могут быть реализованы с использованием программного кода, который может выполняться вычислительным устройством, так что модули или этапы могут быть сохранены на носителе информации (ROM/RAM, магнитном диске или оптическом диске) и выполнены с помощью вычислительного устройства. В некоторых случаях показанные или описанные этапы могут выполняться в последовательности, отличной от описанной в данном документе. В качестве альтернативы, все или часть модулей или этапов могут быть выполнены в виде различных модулей интегральных схем или в виде одного модуля интегральных схем для реализации. Таким образом, сочетание любых конкретных аппаратных средств и программного обеспечения не ограничивается настоящим изобретением.
Наконец, следует отметить, что предыдущие описания являются просто конкретными реализациями настоящей заявки, но не предназначены для ограничения объема защиты настоящей заявки. Любая вариация или замена, легко вычисленная специалистом в данной области техники в рамках технического объема, раскрытого в настоящей заявке, должна подпадать под объем охраны настоящей заявки.

Claims (65)

1. Способ декодирования, причем способ содержит:
выполнение декодирования с мягким решением над подкодовым словом первой строки в множестве подкодовых слов кодового слова для получения первого результата жесткого решения; и
определение того, следует ли пропустить итерацию декодирования; и когда не пропускается итерация декодирования,
установку первого значения на основе первого результата жесткого решения первого идентификатора выключения, соответствующего подкодовому слову первой строки, где первый идентификатор выключения используется для указания того, следует ли выполнять декодирование с мягким решением над первым подкодовым словом строки в следующей итерации декодирования, и декодирование с мягким решением не выполняется над подкодовым словом первой строки в следующей итерации декодирования тогда, когда значение, указанное первым идентификатором выключения, является первым значением; и
сохранение первого результата жесткого решения.
2. Способ по п. 1, в котором способ дополнительно содержит:
определение, что значение по меньшей мере одного первого бита в первом результате жесткого решения отличается от значения первого бита в результате жесткого решения, сохраненного до выполнения декодирования с мягким решением над подкодовым словом первой строки, причем первый бит соответствует подкодовому слову первого столбца, и подкодовое слово первого столбца и подкодовое слово первой строки пересекаются в первом бите; и
установку, на второе значение, идентификатора выключения, соответствующего подкодовому слову первого столбца; и, когда значение, указанное с помощью идентификатора выключения, соответствующего подкодовому слову первого столбца, является вторым значением, выполнение декодирования с мягким решением над подкодовым словом первого столбца в следующей итерации декодирования.
3. Способ по п. 1 или 2, в котором способ дополнительно содержит:
получение второго идентификатора выключения, соответствующего второму подкодовому слову из множества подкодовых слов, где значение, указанное вторым идентификатором выключения, является первым значением;
получение второго результата жесткого решения для второго подкодового слова, причем второй результат жесткого решения является действительным результатом жесткого решения, полученным в итерации декодирования перед текущей итерацией декодирования; и
определение того, следует ли пропустить итерацию декодирования; и, когда итерация декодирования не пропускается,
выработку второй мягкой информации на основе второго результата жесткого решения, причем вторая мягкая информация используется для декодирования с мягким решением в следующей итерации декодирования, выполняемой над вторым подкодовым словом; или
когда итерация декодирования пропускается,
вывод второго результата жесткого решения.
4. Способ по п. 3, в котором выработка второй мягкой информации на основе второго результата жесткого решения содержит:
формирование второй мягкой информации на основе значения символа, соответствующего второму результату жесткого решения, и значения битовой ширины второй мягкой информации.
5. Способ по любому из пп. 1-4, в котором способ дополнительно содержит:
получение третьего идентификатора выключения, соответствующего третьему подкодовому слову из множества подкодовых слов, где значение, указанное третьим идентификатором выключения, является вторым значением;
получение третьей мягкой информации, соответствующей третьему подкодовому слову;
выполнение декодирования с мягким решением над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения; и
определение того, является ли действительным третий результат жесткого решения; и если третий результат жесткого решения является действительным,
выработку новой третьей мягкой информации, причем новая третья мягкая информация используется для последующей итерации декодирования, выполняемой над третьим подкодовым словом; и
обновление значение, указанное третьим идентификатором выключения, на первое значение.
6. Способ по п. 5, в котором, после выполнения декодирования с мягким решением над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения, способ дополнительно содержит:
определение того, что текущая итерация декодирования является конечной итерацией декодирования в заданном количестве итераций декодирования;
пропуск итерации декодирования; и
вывод третьего результата жесткого решения.
7. Способ по п. 5 или 6, в котором определение того, является ли действительным третий результат жесткого решения, содержит:
вычисление, на основе третьего результата жесткого решения, полученного для третьего подкодового слова, матрицы синдромов, соответствующей третьему подкодовому слову; и
определение, на основе значения матрицы синдромов, соответствующей третьему подкодовому слову, того, является ли действительным третий результат жесткого решения.
8. Декодер, в котором декодер содержит процессор, первую память и вторую память;
процессор выполнен с возможностью выполнения декодирования с мягким решением над подкодовым словом первой строки в множестве подкодовых слов кодового слова для получения первого результата жесткого решения;
первая память выполнена с возможностью хранения первого идентификатора выключения, соответствующего подкодовому слову первой строки;
вторая память выполнена с возможностью хранения первого результата жесткого решения; и процессор дополнительно выполнен с возможностью установки первого идентификатора выключения на первое значение, причем первый идентификатор выключения используется для указания того, следует ли выполнять декодирование с мягким решением над подкодовым словом первой строки в следующей итерации декодирования, и декодирование с мягким решением не выполняется над подкодовым словом первой строки в следующей итерации декодирования тогда, когда значение, указанное первым идентификатором выключения, является первым значением; и
процессор дополнительно выполнен с возможностью сохранения первого результата жесткого решения во второй памяти.
9. Декодер по п. 8, в котором декодер дополнительно содержит интерфейс вывода, и интерфейс вывода выполнен с возможностью вывода первого результата жесткого решения, полученного путем декодирования подкодового слова первой строки.
10. Декодер по п. 8 или 9, в котором
процессор дополнительно выполнен с возможностью: определения того, что значение по меньшей мере одного первого бита в первом результате жесткого решения отличается от значения первого бита в результате жесткого решения, сохраненного до выполнения декодирования с мягким решением в первой строке подкодового слова, где первый бит соответствует подкодовому слову первого столбца, и подкодовое слово первого столбца и подкодовое слово первой строки пересекаются в первом бите; и
процессор дополнительно выполнен с возможностью: установки второго значения идентификатора выключения, соответствующего подкодовому слову первого столбца; и, когда значение, указанное с помощью идентификатора выключения, соответствующего подкодовому слову первого столбца, является вторым значением, выполнения декодирования с мягким решением над подкодовым словом первого столбца в следующей итерации декодирования.
11. Декодер по любому из пп. 8-10, в котором декодер дополнительно содержит интерфейс ввода;
интерфейс ввода выполнен с возможностью получения второго идентификатора выключения, соответствующего второму подкодовому слову из множества подкодовых слов, где значение, указанное вторым идентификатором выключения, является первым значением;
интерфейс ввода дополнительно выполнен с возможностью получения второго результата жесткого решения второго подкодового слова; и
процессор выполнен с возможностью определения того, следует ли пропустить итерацию декодирования; и, когда итерация декодирования не пропускается,
процессор вырабатывает вторую мягкую информацию на основе второго результата жесткого решения, причем вторая мягкая информация используется для декодирования с мягким решением в следующей итерации декодирования, выполняемой над вторым подкодовым словом; или
когда итерация декодирования пропускается,
интерфейс вывода дополнительно выполнен с возможностью вывода второго результата жесткого решения, полученного посредством декодирования второго подкодового слова.
12. Декодер по любому из пп. 8-11, в котором
интерфейс ввода дополнительно выполнен с возможностью получения третьего идентификатора выключения, соответствующего третьему подкодовому слову из множества подкодовых слов, где значение, указанное третьим идентификатором выключения, является вторым значением;
интерфейс ввода дополнительно выполнен с возможностью получения третьей мягкой информации, соответствующей третьему подкодовому слову;
процессор дополнительно выполнен с возможностью выполнения декодирования с мягким решением над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения; и
когда процессор определяет то, что третий результат жесткого решения является действительным,
процессор дополнительно выполнен с возможностью выработки новой третьей мягкой информации, причем новая третья мягкая информация используется для последующей итерации декодирования, выполняемой над третьим подкодовым словом; и
процессор дополнительно выполнен с возможностью обновления значения, указанного третьим идентификатором выключения, на первое значение.
13. Декодер по п. 12, в котором после того, как процессор выполняет декодирование с мягким решением над третьим подкодовым словом на основе третьей мягкой информации для получения третьего результата жесткого решения,
процессор дополнительно конфигурируется для пропуска итерации декодирования; и
интерфейс вывода дополнительно конфигурируется для вывода третьего результата жесткого решения.
14. Декодер по п. 11, в котором то, что процессор определяет необходимость пропуска итерации декодирования, содержит:
процессор определяет то, достигает ли текущее количество итераций заданного количества итераций; и
пропускает итерацию декодирования тогда, когда текущее количество итераций достигает заданного количества итераций; или не пропускает итерацию декодирования тогда, когда текущее количество итераций не достигает заданного количества итераций.
15. Устройство декодирования, в котором устройство декодирования содержит:
память, выполненную с возможностью хранения программы; и
процессор, выполненный с возможностью выполнения программы, хранящейся в памяти, причем при исполнении программы процессор конфигурируется для выполнения способа по любому из пп. 1-7.
16. Устройство по п. 15, в котором устройство декодирования представляет собой микросхему или интегральную схему.
17. Машиночитаемый носитель информации, в котором компьютерный носитель информации хранит машиночитаемые инструкции; и когда компьютер считывает и исполняет машиночитаемые инструкции, компьютер может выполнять способ по любому из пп. 1-7.
RU2022120670A 2019-12-30 2020-09-23 Способ декодирования, декодер и устройство декодирования RU2811072C1 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911393850.1 2019-12-30

Publications (1)

Publication Number Publication Date
RU2811072C1 true RU2811072C1 (ru) 2024-01-11

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2337478C2 (ru) * 2004-03-31 2008-10-27 Интел Корпорейшн Декодирование высокоизбыточных кодов с контролем четности с использованием многопорогового прохождения сообщения
CN104579369B (zh) * 2014-12-18 2018-06-15 北京思朗科技有限责任公司 一种Turbo迭代译码方法和译码装置
US10164656B2 (en) * 2016-03-30 2018-12-25 Silicon Motion Inc. Bit flipping algorithm for providing soft information during hard decision hard decoding
US10419024B2 (en) * 2017-05-26 2019-09-17 SK Hynix Inc. Early termination of low-density parity-check (LDPC) decoding
CN106537787B (zh) * 2014-07-31 2019-10-22 华为技术有限公司 译码方法和译码器
US10511326B2 (en) * 2017-11-14 2019-12-17 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2337478C2 (ru) * 2004-03-31 2008-10-27 Интел Корпорейшн Декодирование высокоизбыточных кодов с контролем четности с использованием многопорогового прохождения сообщения
CN106537787B (zh) * 2014-07-31 2019-10-22 华为技术有限公司 译码方法和译码器
CN104579369B (zh) * 2014-12-18 2018-06-15 北京思朗科技有限责任公司 一种Turbo迭代译码方法和译码装置
US10164656B2 (en) * 2016-03-30 2018-12-25 Silicon Motion Inc. Bit flipping algorithm for providing soft information during hard decision hard decoding
US10419024B2 (en) * 2017-05-26 2019-09-17 SK Hynix Inc. Early termination of low-density parity-check (LDPC) decoding
US10511326B2 (en) * 2017-11-14 2019-12-17 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes

Similar Documents

Publication Publication Date Title
US10536171B2 (en) Encoding/decoding method, device, and system
CN1898874B (zh) 具有子块处理和基于子块的停止标准的siso解码器及其方法
US7853854B2 (en) Iterative decoding of a frame of data encoded using a block coding algorithm
WO2018142391A1 (en) Device, system and method of implementing product error correction codes for fast encoding and decoding
CN110098838B (zh) Ldpc-rs乘积码的纠错纠删迭代译码方法
KR20140093248A (ko) 복수의 패리티 세그먼트를 갖는 코드워드를 디코딩하기 위한 시스템, 방법 및 장치들
CN101194451A (zh) 用于迭代解码器中的功率减小的方法及装置
CN101656541A (zh) Rs码的译码方法和装置
CN103514061A (zh) 用于打破陷阱集的装置和方法
TWI460733B (zh) 具有低密度奇偶校驗碼解碼能力的記憶體控制裝置及方法
US10200066B2 (en) Code reconstruction scheme for multiple code rate TPC decoder
US11750219B2 (en) Decoding method, decoder, and decoding apparatus
CN106537787A (zh) 译码方法和译码器
KR101631128B1 (ko) 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더
Fougstedt et al. Energy-efficient high-throughput staircase decoders
CN110113058B (zh) 编译码方法、装置、设备及计算机可读存储介质
RU2811072C1 (ru) Способ декодирования, декодер и устройство декодирования
CN109935263B (zh) 非易失性存储器的编译码方法及存储系统
CN109245775B (zh) 一种译码器及其实现译码的方法
KR101496052B1 (ko) 블록 단위 연접 bch 부호 성능 개선 및 오류마루 경감을 위해 순환 자리 이동을 활용하는 복호 기법 및 회로
KR101154923B1 (ko) 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 비씨에이치 디코딩 방법
WO2021120729A1 (zh) 译码方法、设备、可读存储介质、芯片及计算机程序产品
KR101974301B1 (ko) 플래시 메모리의 오류 정정을 위한 대칭형 연접 비씨에이치 복호화기와 이를 이용한 오류 정정 방법 및 시스템
WO2011144161A1 (zh) 前向纠错方法、装置及系统
KR101226439B1 (ko) 리드-솔로몬 디코더, 이를 포함하는 메모리 시스템 및 디코딩 방법