Устройство для исправления ошибок
Иллюстрации
Показать всеРеферат
Изобретение относится к вычислительной технике и может быть использовано при создании устройства , исправляющих ошибки в хранимой или передаваемой по каналам связи информации . Целью изобретения является повьтение быстродействия устройства. Устройство содержит запоминающий блок 1, буферный накопитель 2, блок 3 сумматоров по модулю два, генератор 4 синдромов, накопитель 5 синдромов , вычислитель 6 злементарных симметрических функций, Дешифратор 8 ошибок и блок 7 вычисления ошибок, состоящий из злемента И 9, счетчика 10 импульсов, четырех регистров 14- 17, восьми блоков 11-13, 21,26-29 постоянной памяти, шести коммутаторов 18-20, 30-32, перемножителя 22, двух групп 23 и 33 из га триггеров и двух блоков 24 и 25 оперативной памяти. Введение пяти блоков постоянной памяти , группы из m триггеров и трех коммутаторов позволяет реализовать одновременное определение корней канонического квадратного уравнения локаторов , величины, используемой в последующем для вычисления значений ошибок , и сокращает количество тактов исправления двухкратных ошибок в 1,5 раза, где m - размерность поля GF (2) Галуа. 2 табл.,1 ил. а. Од N5 00
СО1ОЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК
Ц9) Ш) ся) 4 H 03 M 13/02
ГОСУДАРСТ8ЕННЫЙ НОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ
K ABTOPCHOMY СВИДЕТЕЛЬСТВУ (21) 42?0966/24-24 (22) 01 . 04. 87 (46) 23.10.88.Бюл.Р 39 (7 2) В.H.ßùåíêo (53) 681.325.63 (088,8)
{56) Питерсон У., Уэлдон 3. Коды, исправляющие ошибки. — М.: Мир, 1976, с.203,204, 207, фиг.7.11, 7.14.
Авторское свидетельство СССР
11 913383, кл. G 06 F 11/08, 1978.
Авторское свидетельство СССР
h» 1216832, кл. Н 03 М 13/00, 1986. (54) УСТРОЙСТВО ДЛЯ ИСПРАВЛЕНИЯ
ОШИБОК (57) Изобретение относится к вычислительной технике и может быть использовано при создании устройства, исправляющих ошибки в хранимой или передаваемой по каналам связи информации. Целью изобретения является повышение быстродействия устройства,, Устройство содержит запоминающий блок 1, буферный накопитель 2, блок
3 сумматоров по модулю два, генератор 4 синдромов, накопитель 5 синдромов, вычислитель б элементарных симметрических функций, дешифратор 8 ошибок и блок 7 вычисления ошибок, состоящий из элемента И 9, счетчика
10 импульсов, четырех регистров 1417, восьми блоков 11-13, 21,26-29 постоянной памяти, шести коммутаторов
18-20, 30-32, перемножителя 22, двух групп 23 и 33 из m триггеров и двух блоков 24 и 25 оперативной памяти, Введение пяти блоков постоянной памяти, группы из m триггеров и трех коммутаторов позволяет реализовать одновременное определение корней канонического квадратного уравнения локаторов, величины, используемой в последующем для вычисления значений ошибок, и сокращает количество тактов исправления двухкратных ошибок в
1,5 раза, где m — размерность поля
GF (2 ) Галуа. 2 табл.,1 ил.
1432787
Изобретение относится к вычислительной технике, и может быть использовано при создании устройств, корректирующих ошибки, возникающие в информационных посылках при их хранении или передаче по каналам связи и предназначено для работы с м кодами Гида-Соломона длины n - -2 -1, в каждой кодовой комбинации которого имеется К информационных и и-К проверочных символов, каждый иэ которых содержит m двоичных разрядов, где м
m — размерность поля GF (2 ) Галуа.
Образующий полином кода для исправления двухкратных ошибок 9(х)
=(х+1) (х4-сЦ (х+ м ) (х+ Ы ), где оС примитивный элемент поля GF (2 ) Га-. м луа е
Цель изобретения — повьпнение быст- 2О родействия устройства.
На чертеже представлена функциональная схема устройства
Устройство содержит запоминающий блок 1, буферный накопитель 2, блок 25
3 из ш сумматоров по модулю два, гене. ратор 4 синдромов, накопитель 5 синдромов, вычислитель 6 элементарных симметричных функций, блок 7 вычисления ошибок и дешифратор 8 ошибок.
Ьлок 7 вычисления ошибок состоит из элемента И 9, счетчика !О импульсов, блоков 11-13 постоянной памяти, регистров 14-17, коммутаторов !8-20, блока 21 постоянной памяти, перемно35 жителя 22, группы 23 из m триггеров, блоков 24 и 25 оперативной памяти, блоков 26-29 постоянной памяти, коммутаторов 30-32 и группы 33 иэ m триггеров. 40
Устройство работает следующим образом.
В запоминающем блоке I с помощью образующего полинома.9(х) записывается закодированная избыточным (п,К) 4> кодом Рида-Соломона кодовая комбинация С(х). При передаче по каналу связи или при считывании с блока 1 на
G(x) накладывается вектор ошибок (x), в результате чего в буферный накопитель 2 и генератор 4 синдромов поступает в последовательность R(x)
=G(x) + Е(х).
В генераторе 4 деления R(x) на составные части образующего полинома
9(х) =(х+1) (х+м) (х+ ol, ) (х+М ) получа" ют синдромы S,S,,S,S которые за" писывают в накопитель 5 синдромов.
На выход накопителя 5 подключен деS<+ G
$2+ С,$<= О!
Sú+ G<$2 О!
2 $« С2$ 0<
S + С,Б,+ С,Б,= О. э
Последовательность работы вычисли" теля 6 следующая, Если $ А О, то 1 ь 1 и определяют
С,= Б„/Б; Б + С<8< и Б, С,$2 ° Если
$2+ G S S9+ G $2- О, то 1 — 1 х Х<—
G<, Y< = S
1 2 и вычисляют .
S, + Б Б; G„= ($$ + S sq)/Ы (S< Sú $ ã,) /
S + G<$2+ G2$ < °
1 I
Если D Ф О.или если S,= S, = 0 и
S Ф О, то 1) 2 и принятая кодовая комбинация стирается. Если D = О, то 1 = 2 по сигналу с вычислителя 6 в блоке 7 производят определение ошибок.
I ..Последовательность работы блока
7 следующая.
Локаторы ошибок находят из квадратного уравнения канонического вида
z+ z+(= О, (4) 2 где II = С /С,;
z - =X/G шиФратор 8, Функционирую<пий как элемент ИЛИ. Если S = S< = $ "- Б,то на втором выходе дешифратора 8 появляется сигнал "Нет ошибки" и кодовый блок выдается потребителю путем подачи сигнала "Считывание" на управляющий вход буферного накопителя 2, В противном случае получают остаток от деления, содержащий хотя бы одну
1,, тогда на выходе дешифратора 8 появляется сигнал "Ошибка", который дает разрешение для работы вычислителя 6.
В вычислителе 6 определяют кратность 1 ошибки и значения С<и G< элементарных симметрических функций из соотношений
1432787 откуда (5) Х,= г<С,;
Х z G(где г„ и z< — решение уравнения (4).
Так как уравнение (4) имеет ненулевые корни только при определенных значениях f, то операцию решения 10 (4) просто реализуют табличным способом с помощью блоков 27 и 28 постоянной памяти. Для всех возможных значений, при.которых !(4j имеет ненулевые решения, заранее определены величины z„ и z и по каждому адресу $ в блок 27 занесены соответствующая величина z, а в блок 28—
z<. При подаче на адресные входы бло-. ков 27 и 28 величины 11 с их выходов 20 считывают соответствующие величины г и г °
После определения локаторов Х< и Х из (5) производят определение значений У и Y ошибок из соотношений (3), которые для кода РидаСоломона с порождающим многочленом
9(х) = (х+1) (х+<с) (х+1 ) (x+of ) имеет вид
30 о о
У<Х + У Х = Б .; (6) УХ, +YХ =S является адресом для блока 29, на входе которого появляется записанная по этому адресу величина 1/С,. Блок
21 памяти подключает с помощью коммутатора 20 выходы блока 29 на вход блока 13 памяти. Значение 1/G, явля— ется адресом для блока 13. В результате на выходе блока 13 появляется записанная в нем по этому адресу величина 1/G,. Таким образом, на первых, г входах перемножителя 22 появляется величина С,а на вторых — 1/G,. Од1 новременно блок 21 памяти подключает через коммутатор 30 выход перемножителя 22 на входы блоков 27 и 28 памяти. На этом же такте происходит умножение С и 1/G< и с выхода перемножителя 22 полученная величина f через коммутатор 30 подается на блоки
27 и 28. Величина является адресом для блоков 27 и 28, по которому в них записаны соответственно z u z . В результате на выходе блока 27 йоявляется величина г< „ которую записывают в блок 23 группы иэ т триггеров, а на выходе блока 28 — zz, которую записывают в блок 33 и m триггеров.
На втором такте с выходов блока
11 на блоки 24 я 25 оперативной памяти подаются сигналы записи и выдает" ся адрес, по которому величина г, saписывается в блок 24, à z — в блок
25.
На третьем такте блок 12 с по35 откуда
s + ях, у = — — — —-x,+ х, 40
Блок 7 при 1 = 2 работает следующим образом.
При обнаружении ошибок из блока 6 45 .в блок 7 выдается сигнал, который открывает элемент И 9. Через него начинают поступать тактовые импульсы
Т на счетчик 10. На выходы счетчика
10 подключены блоки 11,12,21 и 26 постоянной памяти.
На первом такте блок 12 подключает с помощью коммутатора 18 на входы перемножителя 22 выходы регистра 16, а выходы регистра 17 через блок 29 памяти, коммутатор 20 и блок 13 памяти с помощью коммутатора 19 на вторую шину перемножителя 22. Значение G, записанное в регистре 17, мощью коммутатора 18 подключает на первые входы перемножителя 22 выходы блока,.24, блок 11 выбирает из блока 24 величину г,, которая подается на входы перемножителя 22. Одновременно блок 12 с помощью коммутатора 1.9 подключает выход регистра
17 на вторые входы перемножителя 22, а блок 26 с помощью коммутаторов 31 и 32 подключает выход перемножителя
22 на входы групп 23 и 33 триггеров.
Таким образом, на выходе перемножителя 22 получен локатор ошибок Х, .г,С,, который записывается в триггеры групп 23 и 33.
На четвертом такте локатор Х, с помощью блока ll с группы 23 тригге. ров переписывается в блок 24.
На пятом такте блок 11 выбирает из блока 25 величину z которая с блоком 12 через коммутатор 19 подается на входы перемножителя 22. На входы перемножителя блоком 12 с помощью коммутатора 25 подается вели1432787
Таблица!
Двоичный вид символа GF(2 ) 50
0 0 0
0 0 l
0 1. 0
1 0 0
0 l 1
1 = С
5 чина G< с блока 17. Блок 26 с помощью коммутаторов 31 и 32 подключа6т выходы перемножителя 22 на входы, групп 23 и 33 триггеров. В результате в группу 23 триггеров записывается локатор Х С г .В группе 33 триггеров локатор Х складывается по мой
Дулю два с локатором Х, который бып
Записан на третьем такте.
На шестом такте с помощью блока
Il локатор Х с группы 23 триггеров переписывается в блок 24, а (Х,+ Х ) с группы 33 триггеров в блок 25.
На седьмом такте блок 26 с помощью коммутатора 31 подключает выходы регистра 15 на входы группы 23 триггеров, в которую записывается S<
На восьмом такте блок ll выбирает иэ блока 24 локатор ошибок Х . Блок
12 с помощью коммутатора 18 йодает на первые входы перемножителя 22 локатор Х, а с помощью коммутатора
19 на вторые входы перемножителя
22 " синдром $ . Блок 26 с помощью коммутатора 31 подключает выходы перемножителя 22 на входы группы 23 триггеров. В результате на выходе перемножителя 22 получают величину
$ Х, которая складывается по модудва с синдромом S, записанным в триггерах 23 группы.
На девятом такте полученная величйна $ОХ + $, переписывается в блок
24, На десятом Факте блок 12 с помощью коммутатора 18 подключает выходы блока 24 на первые входы перемйожителя 22, а с помощью коммутатора 19 — выходы блока 13 на вторые вХоды перемножителя 22. Одновременно блок 21 с помощью блока 20 коммутирует, подключает выходы блока 25 на вХоды блока 13, блок 26 с помощью коммутатора 32 — выходы перемножителя 22 на входы группы 33 триггеров.
Блок Il выбирает из блока 24 величину $ Х + $,, которая поступает на первые: входы перемножителя 22, а из блока 25 — величину Х, + Х, являющуюся адресом для блока 13, по которому записана величина 1/(Х,+ Х ), поступающая на вторые входы перемножителя 22. Следовательно, на выходе перемножителя получают значение ошибS Х 4 $4 ки У - - — — -, которое эаписыва4 Х,,+Х ется в группу ЗЗ триггеров.
На одиннадцатом такте величина
У, с помощью блока ll переписывается в блок 25.
На двенадцатом такте блок 26 с помощью коммутатора 32 подключает выходы регистра.14 на входы группы .33 триггеров, в которую записывается величина So . Одновременно локатор
Х, являющийся адресом искаженного элемента, подается на буферный накопитель 2, в результате разряды искаженного символа с адресом Х подаются на блок 3 сумматоров по модулю два1 на вторые входы которых подается ошибка с помощью блока ll, При сложении разрядов искаженного символа с У, происходит исправление и исправленный элемент вновь записывается в буферный накопитель 2 по тому же адресу.
На тринадцатом также, аналогично как и иа десятом такте, на входы группы триггеров ЗЗ подают величину
25 У, которая складывается по модулю два с величиной $О, записанной на две. надцатом такте.
Полученная в результате величина
У У + $4 на четырнадцатом такте
3О переписывается в блок 25.
На пятнадцатом такте производят исправление искаженного символа с номером Х аналогично тому, как это делают на двенадцатом такте.
Рассмотрим процесс исправления двухкратных ошибок на конкретном примере для кода Рида-Соломона длины
7 с образующим полиномом 9(x) = (х+
+I) (х+о ) (х +оР) (х + о ) длиной 7, в
4п котором имеют 3 информационных и 5 проверочных, символов поля GF(2 ), Ъ каждый из которых содержит 3 двоичных разряда в соответствии с табл.1.
Символ поля GF(2 ) 1432787
Продолжение табл.1
В 2 4 2
8о8ь о + +
1 l 0
1 1 1
1 0 l
5 поступают на входы соответственно регистра 16 и регистра 17. Из блока
6 в блок 7 выдается сигнал, открывающий элемент И 9 и через него поступают тактовые импульсы на счетчик
10, выходы которого подключены к адресным входам блоков ll 12,21 и 26 постоянной памяти.
Допустим при передаче по каналу связи слова кода Рида-Соломона
001 eL о6 Ы на позициях с номерами и ф = 1 проиэошли ошибки и в буферный накопитель 2 поступает слово 5 6 4
С выходов блока 5 синдромы S
Я о
S K K" з дают на входы блока 6. Кроме того, S и S записывают соответственно в регистры 14 и 15. С выходов блока 6 величины
15 На первом такте с выхода перемноGz o жителя 22 = --- = ---- oL в двоо
I ичном виде 010 поступает на адресные
20 входы A А» А блоков 27 и 28 посо тоянной памяти, в которых по адресу для всех возможных значений А занесены соответствующие им значения Do, D,, D корней уравнения (4) z, (в блоке 27) и z (в блоке 28) в соответствии с табл.2.
Таблица2
Выход данных блока 27
Двочи
Значение г в поле GF(2 ) вид z
ДВОИЧНЫЙ ВИД ный Значение
I z в поле
GF(2 ) а
Значение в поле
GF(2 ) Двоичный вид о »
А )А, А
ot. 1 0 1
0 l 0
1 0 0
1 1 0
l 0 0
1 1 0 5 ! оА 0 1 0
0 1 0 виде 010 записывают в триггеры групп
23 и 33.
На четвертом такте величину Х переписывают в блок 24.
На пятом такте с выходов перемножителя 22 локатор Х = z G и o», - =1
6 в двоичном виде 001 записывают в группы 23 и 33 триггеров, причем в группе 33 триггеров х4 и х суммиРуются по модулю два
На шестом такте локаторов Х в двоичном виде 001 записывают в блок
24, а сумму (Х,+ Х ) в двоичном виде 010 — в блок 25.
По адресу Ао А» А 010 в блоке 27 занесены двоичная последовательность
РоР D — 100, что соответствует г
= о, в блоке 28 — 1 01, что соответствует z = оС . Величина z» и z в
6 двоичном виде записывают соответственно в блок 23 и блок 33 группы из
3 триггеров.
На втором такте величину z» (1 00) записывают в блок 24, а г (101) в блок 25.
На третьем такте с выхода перемножителя 22 полученный локатор ошибок
Х = 2 G 1 о . 0L = OL .В ДВОИЧНОМ
Адресные входы блоков
27, 28
S» Sç+ Sz о 1 +о»м
Выход данных блока 28
9 1432787
На седьмом такте в группу триггеров 23 записывают $< в двоичном виде
ill . что соответствует значению aL которую на восьмом такте в группе 23 суммируют по модулю два с двоичной, последовательностью — 110, соответствующей величине S Х 2 1
Ф поступающей,с выхода перемножителя ф )
22. Полученную сумму $ Х + $, и " +
+ М в двоичном ниде 001 переписывают в блок 24 °
На десятом такте с выходов перемножителя значение ошибки
$ Х + $ 1 у а
X,+ Х оС в двоичном виде 101 записывают в группу 33 триггеров, которую на одиннадцатом такте переписывают в блок 25.
На двенадцатом такте в блоке 3 сумматоров по модулю два проводят сло.жение искаженного символа с номером . о с Y Ы б и исправленный элемент
1 25 символ имеет значение 1 + Ы = М, Тринадцатый такт аналогичен деся тому. При этом в группе 33.триггеров ,величина Y„= g суммируется с величиной $ = Ы,записанной на двенад4
;цатом такте. Полученное значение
Y + S =о б + K4 о 3 на четыр о надцатом такте переписывают в блок 25, На пятнадцатом такте, как и на две,надцатом, производят исправление симо вола с номером Хо = о = 1 и исправленный символ имеет значение о + К == 0L °
Таким образом, после исправления в буферном накопителе 2 занесено
"очищенное" от двух ошибок слово
001 а Ы М Ы
При возникновении однократных ошибок счетчик 10 устанавливается сигналом "Установка" с второго управляющего входа блока 6 в 16-е состоя45
we, В этом состоянии блок 26 с помощью коммутатора 31 коммутирует вы" ходы регистра 17 на входы группы 23 триггеров, в которые записывается величина X = G,, а с помощью коммутатора 32 — выходы регистра 14 на входы группы 33 триггеров, в которую записывается величина Y,= $„, На семнадцатом такте производят запись величины Х, -в блок 24, а вею!ичины 7 — в блок 25, Исправление однократной ошибки осуществляют так же, как и двухкратных.
Формула изобретения
Устройство для исправления ошибок, содержащее запоминающий блок, выходы которого подключены к входам генератора синдромов и первым входам буферного накопителя, выходы которого подключены к третьим входам блока из m сумматоров по модулю два, где
m — - размерность поля QF(2 ) Галуа, выходы которого подключены к вторым входам буферного накопителя и являются информационными выходами устройства, выходы генератора синдромов подключены к входам накопителя синдромов, первые, вторые, третьи и четвертые выходы которого соединены с соответствующими входами вычислителя элементарных симметрических функ-. ций и входами дешифратора ошибки, первый выход которого подключен к пятому входу вычисли-еля элементарных симметрических функций, второй выход соединен с третьим входом буферного накопителя и является контрольным выходом устройства, блок вычисления ошибок, включающий элемент
И, счетчик импульсов, первый — третий коммутаторы, первый — третий блоки постоянной памяти, перемножитель, первую группу из m триггеров, первый и второй блоки оперативной памяти и первый, второй, третий и четвертый регистры, выход элемента И подключен к счетному входу счетчика импульсов, выход которого соединен с входами первого и второго блоков постоянной памяти, выход первого регистра подключен к первому входу второго коммутатора, выходы второго ( и .третьего регистров подключены соответственно к первому и второму входам первого коммутатора, выход четвертого регистра подключен к третьему входу первого коммутатора и второму входу второго коммутатора, выходы третьего коммутатора подключены к входам третьего блока постоянной памяти, выход которого соединен с третьим входом второго коммутатора, первый и второй выходы второго блока постоянной памяти подключены к четвертым входам соответственно первого и второго коммутаторов, выходы которых соединены с соответствующими входами перемножителя, первый и второй .выходы первого блока постоянной памяти подключены к первым вхоСоставитель О.Тюрина
Редактор Г.Волкова Техред И.Берес Корректор Н.Король
Заказ 5464/SS Тираж 929 Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, Раушская наб., д. 4/5
Производственно-полиграфическое предприятие, r. Ужгород, ул. Проектная, 4
ll 1432
Дам соиTBeTCTBPHHO llEpBOI 0 H BTOpOI O блоков оперативной памяти, выходы первой группы из ш триггеров подключены к вторым входам первого блока оперативной памяти, выходы которого подключены к пятым входам первого коммутатора и четвертым входам буферного накопителя, выходы второго блока оперативной памяти соединены с первыми входами третьего коммутатора и вторыми входами блока из m сумматоров по модулю два,- первый вход элемента И и установочный вход счетчика импульсов подключены соответственно к первому и второму управляющим выходам вычислителя элементарных симметрических функций, входы первого-четвертого регистров подключены соответственно к первому и второму выходам накопителя синдромов и первому и второму информационным выходам вычислителя элементарных симметрических функций, второй вход элемента И является тактовым входом уст- 25 ройства, отличающееся тем, что, с целью повышения быстродействия, в блок вычисления ошибок введены четвертый — восьмой блоки .постоянной памяти, четвертый — шестой комму- чц таторы и вторая группа из m триггеров, выходы которой подключены к
787 12 вторым входам второго блока оперативной памяти, выходы четвертого и пятого блоков постоянной памяти объединены и подключены к выходу счетчика импульсов, первый и второй выходы четвертого блока постоянной памяти подключены соответственно к первому входу четвертого коммутатора и второму входу третьего коммутатора, третий вход которого соединен с выходом пятого блока постоянной памяти, вход которого объединен с первым входом пятого коммутатора и подключен к выходу четвертого регистра, первый вход шестого коммутатора. соединен с выходом первого регистра, выходы перемножителя подключены к вторым входам четвертого — шестого коммутаторов, первый н второй выходы шестого блока постоянной памяти подключены к третьим входам соответственно шестого коммутатора и пятого коммутатора, четвертый вход которого соединен с выходом второго регистра, выход четвертого коммутатора подключен к входам седьмого и восьмого блоков постоянной памяти, выходы которых объединены соответственно с выходами пятого и шестого коммутаторов н подключены к входам первой и второй групп из триггеров.