Устройство хранения и передачи данных с исправлением одиночных ошибок в байте информации и обнаружением произвольных ошибок в байтах информации

 

Устройство хранения и передачи данных с исправлением одиночных ошибок в байте информации и обнаружением произвольных ошибок в байтах информации относится к области телемеханики, автоматики и вычислительной техники и предназначено для повышения отказоустойчивости и достоверности функционирования устройств хранения и передачи информации и при этом позволяет корректировать все одиночные ошибки в отдельных байтах информации и обнаруживать произвольные ошибки в байтах информации. Это достигается рациональным кодированием исходной двоичной информации и введением входного блока кодирования, выходного блока кодирования, блока вычисления синдрома ошибки, блока элементов И, блока элементов ИЛИ. Илл. 1.

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

Известно самокорректирующееся устройство [1], использующие корректирующий код (наиболее часто используется код Хемминга корректирующий одиночную ошибку и обнаруживающий двойную ошибку).

Недостатком устройства является низкая обнаруживающая способность кода, так как обнаруживаются только двойные ошибки.

Наиболее близким по техническому решению является отказоустойчивое устройство хранения и передачи данных, реализующие коды, исправляющие одиночные ошибки, обнаруживающие двойные независимые ошибки и обнаруживающие одиночные байты ошибок [2], содержащие узел памяти, входной блок кодирования, выходной блок кодирования, блок вычисления синдрома ошибки, дешифратор, коммутаторы ошибок байтов, корректор, входы устройства подключены к входам узла памяти и к входам входного кодирующего устройства, выходы которого подключены к первым входам блока вычисления синдрома, выходы узла памяти подключены к вторым входам блока вычисления синдрома и к первым входам корректора, выходы блока вычисления синдрома подключены к входам дешифратора, соединенного своими выходами со вторыми входами корректора, выходы корректора являются выходами устройства.

Недостатком устройства является низкая обнаруживающая способность ошибок в устройстве, так как обнаруживаются только двойные независимые ошибки и обнаруживающие одиночные байты ошибок.

Целью полезной модели является повышение достоверности функционирования устройства за счет коррекции одиночных ошибок, и обнаружения произвольных ошибок байтах информации.

Поставленная цель достигается тем, что устройство, содержащие узел памяти, входной блок кодирования, выходной блок кодирования, блок вычисления синдрома ошибки, дешифратор, коммутатор, блок коммутаторов, корректор, блок корректоров, отличающаяся тем, что оно дополнительно содержит первый блок элементов ИЛИ, второй блок элементов ИЛИ, инвертор, элемент И, блок элементов И, вход установки устройства в нулевое состояние, вход записи, вход считывания, адресные входы, двадцати четырех разрядные информационные входы, вход синхронизации, информационные выходы, выход сигнала «ошибка», вход установки в нулевое состояние, вход записи, вход считывания, адресные входы, подключены соответственно к первому, второму, третьему и четвертому входам узла памяти, вход синхронизации подключен к пятому входу узла памяти и к первому входу блока элементов И, информационные входы подключены к шестым входам узла памяти и к входам входного блока кодирования который формирует значения контрольных разрядов r1, r 2, r3, r4, r5, r6 путем сложения по модулю 2 информационных символов x1 x2x3, z1z2z3 , a1a2a3, c1c 2c3, e1e2e3 , f1f2f3; g1g 2g3, h1h2h3 , поступающих на входы входного блока кодирования, в соответствии с правилом: r1=x1z1a1с1e1f1g1h1; r2=x2z2a2с2e2f2g2h2; r3=x3z3a3с3e3f3g3h3; r4=x1z3a2с2c3e1e3f1f2g1g2g3; r5=x2z1a3с1c3e1e2f2f3g1g2g3; r6=x3z2a1с1c2e2e3f1f3g1g2g3 которые поступают на седьмые входы узла памяти, информационные выходы узла памяти подключены соответственно к первым входам корректора, блока корректоров и к входам выходного блока кодирования, который формирует значения проверочных контрольных разрядов r, r, r, r, r, r путем сложения по модулю 2 информационных символов xxx , zzz, aaa, ccc , eee, fff, ggg , hhh, поступающих на входы входного блока кодирования с информационных выходов узла памяти, в соответствии с правилом: r=xzaсefgh; r=xzaсefgh; r=xzaсefgh; r=xzacceeffggg; r=xzacceeffggg; r=xzacceeffggg; выходы выходного блока кодирования подключены к первым входам блока вычисления синдрома ошибки к вторым входам которого, подключены выходы контрольных разрядов узла памяти, первые выходы блока вычисления синдрома ошибки подключены к первым входам дешифратора, к первым входам коммутатора, к входам первого блока элементов ИЛИ и к первым входам блока коммутаторов, вторые выходы блока вычисления синдрома ошибки подключены к вторым входам дешифратора и к вторым входам первого блока элементов ИЛИ, выходы дешифратора подключены к входам второго блока элементов ИЛИ, при этом первый выход дешифратора подключен к второму входу коммутатора, а вторые выходы подключены к вторым входам блока коммутаторов, выход второго блока элементов ИЛИ через инвертор подключен к первому входу элемента И, второй вход которого подключен к выходу первого блока элементов ИЛИ, выход элемента И является выходом сигнала «ошибка», выходы коммутатора подключены к вторым входам корректора, выходы блока коммутаторов подключены к вторым входам блока корректоров, выходы корректора и блока корректоров подключены к вторым входам блока элементов И, выходы которого являются информационными выходами устройства.

На фиг.1 представлена блок-схема полезной модели. Устройство хранения и передачи данных с исправлением одиночных ошибок в байте информации и обнаружением произвольных ошибок в байтах информации содержит: узел 1 памяти, входной блок 2 кодирования, выходной блок 3 кодирования, блок 4 вычисления синдрома ошибки, дешифратор 5, коммутатор 6, блок 7 коммутаторов, корректор 8, блок 9 корректоров, первый элемент 10 ИЛИ, второй элемент 11 ИЛИ, инвертор 12, элемент 13 И, блок 14 элементов И, вход 15 установки в нулевое состояние, вход 16 записи, вход 17 считывания, адресные входы 18, информационные входы 19, вход 20 синхронизации, информационные выходы 21, выход 22 сигнала "ошибка".

Вход 15 установки в нулевое состояние, вход 16 записи, вход 17 считывания, адресные входы 18, подключены соответственно к первому, второму, третьему и четвертому входам узла 1 памяти, вход 20 синхронизации подключен к пятому входу узла 1 памяти и к первому входу блока 14 элементов И, информационные входы 19 подключены к шестым входам узла 1 памяти и к входам входного блока 2 кодирования, который формирует значения контрольных разрядов r1, r2, r 3, r4, r5, r6 путем сложения по модулю 2 информационных символов x1x2 x3, z1z2z3, a 1a2a3, c1c2 c3, e1e2e3, f 1f2f3; g1g2 g3, h1h2h3., поступающих на входы входного блока 2 кодирования, в соответствии с правилом: r1=x1z1a1с1e1f1g1h1; r2=x2z2a2с2e2f2g2h2; r3=x3z3a3с3e3f3g3h3; r4=x1z3a2с2c3e1e3f1f2g1g2g3; r5=x2z1a3с1c3e1e2f2f3g1g2g3; r6=x3z2a1с1c2e2e3f1f3g1g2g3, которые поступают на седьмые входы узла 1 памяти, информационные выходы узла памяти подключены соответственно к первым входам корректора, 8 блока 9 корректоров и к входам выходного блока 3 кодирования, который формирует значения проверочных контрольных разрядов r, r, r , r, r, r путем сложения по модулю 2 информационных символов xx x, zzz, aaa, cc c, eee, fff, gg g, hhh поступающих на входы входного блока 3 кодирования с информационных выходов узла 1 памяти, в соответствии с правилом: r=xzaсefgh; r=xzaсefgh; r=xzaсefgh; r=xzacceeffggg; r=xzacceeffggg; r=xzacceeffggg выходы выходного блока 3 кодирования подключены к первым входам блока 4 вычисления синдрома ошибки, к вторым входам которого, подключены выходы контрольных разрядов узла 1 памяти, первые выходы блока 4 вычисления синдрома ошибки подключены к первым входам дешифратора 5, к первым входам коммутатора 6, к входам первого блока 10 элементов ИЛИ и к первым входам блока 7 коммутаторов, вторые выходы блока 4 вычисления синдрома ошибки подключены к вторым входам дешифратора 5 и к вторым входам первого блока 10 элементов ИЛИ, выходы дешифратора 5 подключены к входам второго блока 11 элементов ИЛИ, при этом первый выход дешифратора 5 подключен к второму входу коммутатора 6, а вторые выходы подключены к вторым входам блока 7 коммутаторов, выход второго блока 11 элементов ИЛИ через инвертор 12 подключен к первому входу элемента 13 И, второй вход которого подключен к выходу первою блока 10 элементов ИЛИ, выход элемента 13 И является выходом сигнала «ошибка», выходы коммутатора 6 подключены к вторым входам корректора 8, выходы блока 7 коммутаторов подключены к вторым входам блока 9 корректоров, выходы корректора 8 и блока 9 корректоров подключены к входам блока 14 элементов И, выходы которого являются информационными выходами 21 устройства.

Узел 1 памяти, в данном случае, представляет собой статическое полупроводниковое оперативное устройство памяти и предназначен для хранения кодовых наборов: УК=x1x2x3, z 1z2z3, a1a2 a3, c1c2c3, e 1e2e3 f1f2f 3, g1g2g3, h1 h2h3r1r2r3 r4r5r6, полученных при кодировании исходных двадцати четырех разрядных двоичных наборов.

Входной блок 2 кодирования предназначен для формирования значений контрольных разрядов r1, r2, r3 , r4, r5, r6 путем сложения по mod2 информационных символов в соответствии с правилом:

r1=x1z1a1с1e1f1g1h1; r2=x2z2a2с2e2f2g2h2; r3=x3z3a3с3e3f3g3h3; r4=x1z3a2с2c3e1e3f1f2g1g2g3; r5=x2z1a3с1c3e1e2f2f3g1g2g3; r6=x3z2a1с1c2e2e3f1f3g1g2g3.

Выходной блок 3 кодирования предназначен для формирования значений проверочных контрольных разрядов r, r, r, r, r, r, путем сложения по mod2 информационных символов, полученных при считывании информации с узла 1 памяти в соответствии с правилом:

r=xzaсefgh; r=xzaсefgh; r=xzaсefgh; r=xzacceeffggg; r=xzacceeffggg; r=xzacceeffggg,

Блок 4 вычисления синдрома ошибки предназначен для обнаружения ошибки в кодовом наборе при считывании информации с узла 1 памяти путем сложения по mod2 значений контрольных разрядов r1, r2, r 3, r4, r5 и r6 считываемых с вторых выходов узла 1 памяти, соответственно с значениями контрольных разрядов r, r, r, r, и r сформированных на выходах выходного блока 3 кодирования.

Результат поразрядного сложения:

1=r1r;

2=r2r;

3=r3r;

4=r4r;

5=r5r;

6=r6r.

Нулевой результат суммы свидетельствует об отсутствии ошибки, и ее наличии в противном случае.

Выходы 1, 23 блока 4 вычисления синдрома ошибки, позволяют определяют конфигурацию ошибки (вектор ошибки 123 содержащий единичные значения в тех разрядах, которые соответствуют ошибочным разрядам в блоке информации), выходы 4, 56 определяют блок информационных разрядов в котором произошла ошибка.

Дешифратор 7 формирует единичное значение сигнала на одном из свих выходов в соответствии с таблицей:

Таблица. 1
Значения синдромов для кода (30,6), исправляющего одиночные ошибки.
п/пБезошибочный блок инфор - и 000 Значение первой части контрольных разрядов Значения проверок второй части контрольных разрядов
Ошибочный блок информацииХ ZA CE FG H
1100 100100 010001 011110 101111 000
2010 010010 001100 101011 110111 000
3001 001001 100010 110101 011111 000

Если значение синдрома ошибки не соответствует значениям, представленным в таблице, то произошла не корректируемая ошибка (сигналы на выходе дешифратора имеют нулевые значения).

В этом случае, о наличии не корректируемой ошибки свидетельствует наличие единичного значения сигнала на выходе первого блока 10 элементов ИЛИ и отсутствие единичного значения сигнала на выходе второго элемента 11 ИЛИ.

Корректор 8 (блок 9 корректоров) предназначены для исправления корректируемой ошибки, путем сложения по mod2 одноименных разрядов блока информации имеющего ошибку с значением вектора ошибки.

Устройство работает следующим образом. Перед началом работы устройства на вход 15 "установки в нулевое состояние" подается единичный сигнал, который переводит устройство в нулевое состояние.

При записи информации в узел 1 памяти, подаются единичные сигналы на вход 20 синхронизации, вход 16 записи, адресные входы 18 и информационные входы 19.

Входной блок 2 информации формирует значения контрольных разрядов по правилу:

r1=x1z1a1с1e1f1g1h1; r2=x2z2a2с2e2f2g2h2; r3=x3z3a3с3e3f3g3h3; r4=x1z3a2с2c3e1e3f1f2g1g2g3; r5=x2z1a3с1c3e1e2f2f3g1g2g3; r6=x3z2a1с1c2e2e3f1f3g1g2g3.

Пример. Допустим, необходимо закодировать двоичный набор:

Тогда первая часть и вторая часть контрольных разрядов, сформированных относительно полученного кодового набора, соответственно равны:

r1=1, r2 =0, r3=1, r4=1, r5=1, r 6=1.

При отсутствии ошибки, значение кодового набора записанного в узле 1 памяти равно считанному (переданному кодовому набору):

В этом случае на выходе блока 4 вычисления синдрома ошибки имеем нулевые значения сигналов.

Пусть, произошла одиночная ошибка в первом разряде третьего блока информации (А=0*01), тогда выходной блок 3 кодирования сформирует относительно полученного кодового набора значения контрольных разрядов:

r=0, r=0, r=1.

r=000001101110=1;

r=011101111110=1;

r=111001101110=0;

В блоке 4 вычисления синдрома ошибки складываются, переданные контрольные разряды с контрольными разрядами, сформированными относительно полученного кодового набора, в результате получим синдром ошибки:

В этом случае, первая часть синдрома оказывает на ошибочный разряд блока информации, вторая часть синдрома указывает ошибочный блок А (см. табл.1).

На выходе дешифратора 7 появится единичное значение сигнала, которое открывает элементы И блока 7 коммутаторов, при этом значения вектора ошибки поступает на входы блока корректоров 9 где складывается по mod2 со значениями разрядов третьего блока информации:

В результате имеем правильное значение информации.

Пусть произошла одиночная ошибка в первом разряде первого блока информации, одиночная ошибка во втором разряде четвертого блока информации и тройная ошибка в пятом блоке информации.

В этом случае, значения контрольных разрядов, сформированные выходным блоком 3 кодирования относительно полученного двоичного набора равны:

r =0, r=1, r=0,

r=0, r=1, r=1.

Значение синдрома ошибки, полученные блоком 4 вычисления синдрома ошибки равно: .

В этом случае, на выходе первого блока 10 элементов ИЛИ появится единичное значение сигнала, на всех выходах дешифратора 7 присутствует нулевое значение сигнала, по этому, на выходе второго блока 11 элементов ИЛИ так же имеем нулевое значение сигнала, а на выходе инвертора 12 единичное значение сигнала, которое открывает элемент 12 И с выхода которого снимается сигнал «ошибка».

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

ИСТОЧНИКИ ИНФОРМАЦИИ

1. Щербаков Н.С. Достоверность работы цифровых устройств. М: Машиностроение, 1989, с.82, рис.39., 224 с.

2. Щербаков Н.С. Достоверность работы цифровых устройств. М: Машиностроение, 1989, с.122, рис.45., 224 с.

Приложение

1. Введение и постановка задачи

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

К таким кодам следует отнести коды [1]:

- исправляющие одиночные ошибки и обнаруживающие одиночные байты ошибок;

- коды, исправляющие одиночные ошибки, обнаруживающие двойные независимые ошибки и обнаруживающие одиночные байты ошибок;

- коды, исправляющие одиночные байты ошибок;

- коды исправляющие одиночные и обнаруживающие двойные байты ошибок.

Широкое распространение получили коды Рида-Соломона, обладающие циклическими свойствами и имеющие наибольшую обнаруживающую и корректирующую способность.

Код Рида-Соломона (PC) - это блочный код (w, N), позволяющий обнаруживать и исправлять ошибки в байтах. Входным словом для него является блок из w байтов, выходным - кодовое слово из N байтов, состоящее из w исходных и N-w проверочных байтов. При этом гарантировано, что при декодировании в кодовом слове будут обнаружены и исправлены t=(N-w)/2 байтов независимо от их расположения внутри кодового слова. Кодирующее устройство PC реализуется на основе регистра сдвига с 2t байтовыми элементами памяти и обратными связями. Процесс кодирования и декодирования сводится к операциям сложения и умножения по модулю.

Использование данных кодов связано с большими временными затратами, что является существенным недостатком при их использовании для систем работающих в реальном масштабе времени, по этому существует необходимость в разработке более простой линейной процедуры построения корректирующих кодов, решающих данную задачу.

2. Разработка линейного корректирующего кода с исправлением одиночных ошибок в байте информации и обнаружением произвольных ошибок в байтах информации

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

Для получения кодового расстояния, позволяющего обеспечить исправление одиночных и обнаружение двойные байтов ошибок, используем 2b контрольных разрядов (оптимальное число контрольных разрядов для кодов Рида-Соломона, решающих данную задачу), в которых реализуется сложение по mod2 одноименных разрядов блоков (байтов)информации.

В результате поучим кодовый набор:

Значение контрольных разрядов , , позволяют сформировать значение синдрома ошибки при этом, первая часть контрольных разрядов определяет вектор ошибки (ошибочные разряды в блоке информации), а значение второй части контрольных разрядов предназначено для определения номер ошибочного блока (байта) информации.

В этом случае число байтов информации определяется по формуле:

w=2b

В связи с этим, возникает необходимость формирования совокупности проверок (разработки правила кодирования информации), позволяющих определить блок информации содержащий ошибку.

С этой целью, для каждого блока информации выберем свою совокупность проверок обнаруживающих ошибоку, используя матрицу кодирования размерности

b×b.

Для первого блока информации матрица кодирования имеет вид:

В этом случае, для первого блока информации значения контрольных разрядов соответственно равны ; ; .

Для второго и третьего информационных блоков, матрицы кодирования имеет вид соответственно:

Не трудно заметить, что очередная матрица кодирования получается в результате циклической замены строк матрицы кодирования.

В результате получаем b исходных матриц кодирования, содержащих в своих строках по одной единице.

Для информационных блоков, начиная с b+1 блока, матрицы кодирования включают различные сочетания двух единиц в блоке информации:

Значения контрольных разрядов формируются сложением по mod2 элементов столбцов, соответствующих единичным значениям.

Так, например, если первый столбец больше не содержит единиц, то значение первого контрольного разряда равно: .

Каждая очередная матрица кодирования для блоков информации, начиная с b+2 блока по информации получается циклической заменой строк матрицы по аналогии с матрицей, содержащей в своих строках по одной единице.

Аналогичным образом строятся матрицы кодирования, содержащие в своих строках различные сочетания из трех единиц и.т.д.

Окончательно имеем матрицу кодирования, каждый элемент которой содержит единицу. Построим так же, дополнительную матрицу кодирования, каждый элемент которой содержит нули.

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

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

Используя модифицированные матрицы кодирования, получим проверки, определяющие значения контрольных разрядов для каждого блока информации, путем сложения по mod2 элементов соответствующих единичным значениям в столбцах полученных матриц.

Объединяя по модулю по mod2 одноименные контрольные проверки для всех блоков информации, получим значения контрольных разрядов для второй части контрольных разрядов кодового набора.

Таким образом, кодовый набор передается в виде:

Результат сложения по mod2 переданных значений контрольных разрядов , и контрольных разрядов , сформированных относительно полученных информационных разрядов даст значение синдрома ошибки, включающего две части:

Значение синдрома ошибки Sf определяет вектор ошибки (ошибочные разряды в блоке информации), а значение синдрома ошибки Sg определяет номер ошибочного блока (байта) информации.

Стратегия декодирования заключается на следующих положениях:

1.Sf=0; Sg=0. Ошибок нет.
2. Sf=0; Sg0.Произошла ошибка в контрольных разрядах.
3. Sf0;S g0(Sg=0). Произошла ошибка в информационных байтах (в одном байте - корректируемая, в двух - обнаруживаемая).

Таким образом, разработанный код, при оптимальном числе контрольных разрядов 2b обладает свойствами характерными для кодов Рида-Соломона и при этом позволяет:

- использовать процедуру линейного кодирования;

- повысить быстродействие кодирования и декодирования информации.

Пример: Допустим, имеем двадцати четырех разрядный двоичный набор, который разобьем на блоки информации по три разряда в каждом блоке:

У= x1x2 x3, z1z2z3, a 1a2a3, c1c2 c3, e1e2e3, f 1f2f3; g1g2 g3, h1h2h3.

Построим исходные матрицы кодирования для каждого блока информации:

Складывая по mod2 элементы столбцов матриц, соответствующие единичным значениям, получим проверки, позволяющие получить значения контрольных разрядов для соответствующих блоков информации.

В результате значения второй части контрольных разрядов формируется проверками:

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

В результате имеем код (30,6) корректирующий одиночные ошибки и обнаруживающий ошибки большей кратности.

Таблица. 1
Значения синдромов для кода (30,6), исправляющего одиночные ошибки.
п/пБезошибочный блок инфор -и 000 Значение первой части контрольных разрядов Значения проверок второй части контрольных разрядов
Ошибочный блок информацииХ ZA CE FG H
1100 100100 010001 011110 101111 000
2010 010010 001100 101011 110111 000
3001 001001 100010 110101 011111 000
4110 110110 011101 110101 011000 000
5101 101101 110011 101011 110000 000
6011 011011 101110 011110 101000 000
111 111111 111111 000000 000111 000

Анализ представленной таблицы показывает, что в случае возникновения одиночной ошибки, значения второй части синдромов для блоков информации различаются между собой, что позволяет корректировать данные ошибки.

При возникновении ошибок большей кратности или в нескольких информационных блока значения синдромов неразличимы, в этом случае ошибка обнаруживается.

При этом, выделенные синдромы указывают на наличие не корректируемой ошибки, не выделенные синдромы, указывают блок информации, содержащий соответствующую одиночную корректируемую ошибку.

Пример. Допустим, необходимо закодировать двоичный набор:

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

Складывая, одноименные информационные разряды блоков информации, получим первую часть контрольных разрядов 101.

Таким образом, безошибочный кодовый набор передается в виде:

Пусть, произошла одиночная ошибка в первом разряде третьего блока информации (А), тогда первая часть и вторая часть контрольных разрядов, сформированных относительно полученного кодового набора равны соответственно:

Складывая, переданные контрольные разряды с контрольными разрядами, сформированными относительно полученного кодового набора, получим синдром ошибки:

В этом случае, первая часть синдрома оказывает на ошибочный разряд блока информации, вторая часть синдрома указывает ошибочный блок (см. табл.1).

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

Литература:

1. Щербаков Н.C. Достоверность работы цифровых устройств. М: Машиностроение, 1989, с.122, рис.45., 224 с.

Устройство хранения и передачи данных с исправлением одиночных ошибок в байте информации и обнаружением произвольных ошибок в байтах информации, содержащие узел памяти, входной блок кодирования, выходной блок кодирования, блок вычисления синдрома ошибки, дешифратор, коммутатор, блок коммутаторов, корректор, блок корректоров, отличающееся тем, что оно дополнительно содержит первый блок элементов ИЛИ, второй блок элементов ИЛИ, инвертор, элемент И, блок элементов И, вход установки устройства в нулевое состояние, вход записи, вход считывания, адресные входы, 24-разрядные информационные входы, вход синхронизации, информационные выходы, выход сигнала «ошибка», вход установки в нулевое состояние, вход записи, вход считывания, адресные входы, подключены соответственно к первому, второму, третьему и четвертому входам узла памяти, вход синхронизации подключен к пятому входу узла памяти и к первому входу блока элементов И, информационные входы подключены к шестым входам узла памяти и к входам входного блока кодирования, который формирует значения контрольных разрядов r1, r 2, r3, r4, r5, r6 путем сложения по модулю 2 информационных символов x1 x2x3, z1z2z3 , a1a2a3, c1c 2c3, e1e2e3 , f1f2f3, g1g 2g3, h1h2h3 ., поступающих на входы входного блока кодирования, в соответствии с правилом: r1=x1z1a1с1e1f1g1h1; r2=x2z2a2с2e2f2g2h2; r3=x3z3a3с3e3f3g3h3; r4=x1z3a2с2c3e1e3f1f2g1g2g3;

r5=x2z1a3с1c3e1e2f2f3g1g2g3; r6=x3z2a1с1c2e2e3f1f3g1g2g3, которые поступают на седьмые входы узла памяти, информационные выходы узла памяти подключены соответственно к первым входам корректора, блока корректоров и к входам выходного блока кодирования, который формирует значения проверочных контрольных разрядов r, r, r, r, r, r путем сложения по модулю 2 информационных символов xxx , zzz, aaa, ccc , eee, fff, ggg , hhh, поступающих на входы входного блока кодирования с информационных выходов узла памяти, в соответствии с правилом: r=xzaсefgh; r=xzaсefgh; r=xzaсefgh; r=xzacceeffggg; r=xzacceeffggg; r=xzacceeffggg;, выходы выходного блока кодирования подключены к первым входам блока вычисления синдрома ошибки к вторым входам которого подключены выходы контрольных разрядов узла памяти, первые выходы блока вычисления синдрома ошибки подключены к первым входам дешифратора, к первым входам коммутатора, к входам первого блока элементов ИЛИ и к первым входам блока коммутаторов, вторые выходы блока вычисления синдрома ошибки подключены к вторым входам дешифратора и к вторым входам первого блока элементов ИЛИ, выходы дешифратора подключены к входам второго блока элементов ИЛИ, при этом первый выход дешифратора подключен к второму входу коммутатора, а вторые выходы подключены к вторым входам блока коммутаторов, выход второго блока элементов ИЛИ через инвертор подключен к первому входу элемента И, второй вход которого подключен к выходу первого блока элементов ИЛИ, выход элемента И является выходом сигнала «ошибка», выходы коммутатора подключены к вторым входам корректора, выходы блока коммутаторов подключены к вторым входам блока корректоров, выходы корректора и блока корректоров подключены к вторым входам блока элементов И, выходы которого являются информационными выходами устройства.



 

Наверх