7.7. Реализация декодеров для двоичных БЧХ-кодов
Как уже отмечалось в разд. 7.2, декодер для двоичного БЧХ-кода может быть сконструирован по общему принципу разд. 5.5 (рис. 5.14). Остановимся сейчас на макете устройства центрального
-оператора для конструкции рис. 5.14. Он состоит из одного главного арифметического и управляющего блока и
отдельных вспомогательных
блоков. Команды на входы вспомогательных блоков подаются непосредственно с блока управления. Главный блок посылает на все вспомогательные блоки идентичные команды. Все вспомогательные блоки одинаковы. Каждый из них содержит пять регистров, а также аппаратуру для умножения двух из них и хранения результата во вспомогательном накопителе.
Рис. 7.3. Общий вид
-оператора для декодера двоичного БЧХ-кода.
Все вспомогательные накопители связаны с главным сумматором, выход которого поступает в главный блок. Слова могут передаваться только из каждого вспомогательного блока в соответствующий регистр соседнего вспомогательного блока. Аппаратура, с помощью которой главный блок может передавать данные в любой из вспомогательных блоков, здесь не нужна. Главный арифметический блок может вычислять мультипликативные обратные, но ни один из вспомогательных блоков этого не делает.
Пунктирные линии на рис. 7.3 показывают, что как только из канала связи поступает последний символ входного слова, остатки
перемещаются из регистров, расположенных слева на рис. 5.14, в соответствующие вспомогательные блоки. После этого вспомогательный блок, содержащий остаток
с помощью регистра, умножающего на
вычисляет
до тех пор, пока он, наконец, не накопит степенную симметрическую функцию
Если все вспомогательные блоки работают одновременно, то время, необходимое для вычисления степенных симметрических функций
раз больше времен, и необходимого для реализации умножения в поле Галуа. Аналогичным образом во вспомогательных блоках вычисляется и вторая половина степенных симметрических функций
Все необходимые величины
вычисляются, таким образом, в соответствующих вспомогательных регистрах, как показано на рис. 7.4, и главный блок управления может приступать к реализации алгоритмов 7.64 или 7.4.
Каждый шаг алгоритмов 7.4 или 7.64 может быть выполнен с помощью изображенного на рис. 7.3 вычислительного устройства. На рис. 7.4 показано состояние вспомогательных регистров на типичном шаге алгоритма. Четыре левых регистра нулевого вспомогательного блока содержат
; четыре левых регистра первого вспомогательного блока содержат
и Затем в каждом вспомогательном блоке вычисляется произведение его второго и третьего регистров, которое записывается в крайний правый регистр. Сумма всех вспомогательных правых регистров накапливается в главном накопителе. Эта сумма определяет величину
После этого содержимое регистров, соответствующих на рис. 7.5 столбцу
сдвигается вверх в соответствующие регистры соседних блоков. Величина
перемещается в регистр умножителя главного блока. После этого на каждый вспомогательный блок подается команда умножения содержимого регистра
на содержимое главного умножителя. К результату прибавляется содержимое регистра
таким образом, формируются коэффициенты многочлена
Затем в зависимости от того, будет ли
или
главное управляющее устройство сдвигает или не сдвигает многочлен
из столбца
в столбец
Далее коэффициенты
переводятся в столбец
Многочлен, записанный в столбце
и представляющий собой
или используется для вычисления многочлена
который записывается затем в столбец
Главное управляющее устройство вычисляет величину
сдвигает столбцы
вверх, и начинается следующая итерация алгоритма.
Когда алгоритмическое вычисление многочлена ошибок
закончено, он переводится из вспомогательных регистров в оператор Ченя, а вычислительное устройство рис. 7.3 подготовлено к декодированию следующего полученного слова.
Декодер, блок-схема которого описывается рисунками 5.14 и 7.3, достаточно легко реализуем для БЧХ-кодов с даже сравнительно большой длиной. В общем случае стоимость декодера для двоичного БЧХ-кода с блоковой длиной
исправляющего
![](/php/imageBook.php?path=/home/admin/sites/scask.ru/wp-content/uploads/2023/01/files-754.book&file=acod_44.files/page1.gif)
(кликните для просмотра скана)
-кратные ошибки, может быть выражена в виде
где
постоянные, не зависящие от
Здесь
стоимость главного оператора (содержащего несколько
-ячеечных регистров),
стоимость буфера для запоминания получаемого слова. Величина
включает в себя все другие затраты. Стоимость одного вспомогательного блока, стоимость одного блока оператора Ченя и стоимость регистра, осуществляющего деление входящего слова на один неприводимый множитель порождающего многочлена, пропорциональны
и всего имеется
таких составляющих.
Каждый вспомогательный блок устройства рис. 7.3 должен выполнить в среднем
умножений на декодируемый блок, а каждый блок
-оператора —
умножений на декодируемый блок. Таким образом, время декодирования является вполне приемлемым: на каждую принимаемую позицию оператор Ченя должен выполнить всего одно умножение в поле Галуа и сложение
входов. Другие части декодера могут работать даже еще медленней. Например, если используется
-наносекундные переключательные устройства, то умножение двух элементов в
может быть выполнено за 1 микросекунду. Поэтому представляется весьма реальной возможность декодирования любого БЧХ-кода с блоковой длиной 1023, со скоростью декодирования около миллиона двоичных единиц (тысяча блоков) в секунду. Время декодирования не зависит от коли чества
исправляемых ошибок, хотя стоимость декодера возрастает с ростом
Конечно, возможны многие модификации и усовершенствования основного устройства, изображенного на рис. 5.14 и 7.3. Можно, например, исключить нулевой вспомогательный блок за счет незначительного усложнения главного блока. Можно, далее, исключить вспомогательные блоки с номерами
за счет дальнейшего усложнения программы главного блока. Можно также различными способами интерпретировать вычислительное устройство на рис. 7.3. Если описывать регистры сдвигов с помощью многочленов, то столбцы на рис. 7.4 и 7.5 дают представления
-ячеечных регистров сдвига над
Задачи
(см. скан)