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

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

Info

Publication number
RU2448359C1
RU2448359C1 RU2011112831/08A RU2011112831A RU2448359C1 RU 2448359 C1 RU2448359 C1 RU 2448359C1 RU 2011112831/08 A RU2011112831/08 A RU 2011112831/08A RU 2011112831 A RU2011112831 A RU 2011112831A RU 2448359 C1 RU2448359 C1 RU 2448359C1
Authority
RU
Russia
Prior art keywords
inputs
block
input
information
outputs
Prior art date
Application number
RU2011112831/08A
Other languages
English (en)
Inventor
Константин Юрьевич Борисов (RU)
Константин Юрьевич Борисов
Юрий Георгиевич Малофеев (RU)
Юрий Георгиевич Малофеев
Павел Николаевич Осипенко (RU)
Павел Николаевич Осипенко
Алексей Александрович Павлов (RU)
Алексей Александрович Павлов
Павел Александрович Павлов (RU)
Павел Александрович Павлов
Александр Алексеевич Павлов (RU)
Александр Алексеевич Павлов
Олег Владимирович Хоруженко (RU)
Олег Владимирович Хоруженко
Алексей Николаевич Царьков (RU)
Алексей Николаевич Царьков
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 Межрегиональное общественное учреждение "Институт инженерной физики"
Priority to RU2011112831/08A priority Critical patent/RU2448359C1/ru
Application granted granted Critical
Publication of RU2448359C1 publication Critical patent/RU2448359C1/ru

Links

Abstract

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

Description

Изобретение относится к вычислительной технике и может быть использовано для повышения достоверности функционирования запоминающих устройств.
Известно самокорректирующееся устройство [1], использующее корректирующий код (наиболее часто используется код Хемминга, корректирующий одиночную ошибку и обнаруживающий двойную ошибку).
Недостатком устройства является низкая обнаруживающая способность кода, так как обнаруживаются только двойные ошибки.
Наиболее близким по техническому решению является отказоустойчивое устройство хранения и передачи данных, реализующие коды, исправляющие одиночные байты ошибок, обнаруживающие двойные байты ошибок [2], содержащие узел памяти, входной блок кодирования, выходной блок кодирования, блок вычисления синдрома ошибки, дешифратор, коммутаторы ошибок байтов, корректор, входы устройства подключены к входам узла памяти и к входам входного кодирующего устройства, выходы которого подключены к первым входам блока вычисления синдрома, выходы узла памяти подключены к вторым входам блока вычисления синдрома и к первым входам корректора, выходы блока вычисления синдрома подключены к входам дешифратора, соединенного своими выходами со вторыми входами корректора, выходы корректора являются выходами устройства.
Недостатком устройства является низкая обнаруживающая способность ошибок в устройстве, так как обнаруживаются только двойные байты ошибок.
Целью изобретения является повышение достоверности функционирования устройства за счет коррекции одиночных байтов и обнаружения ошибок в байтах информации.
Поставленная цель достигается тем, что устройство, содержащее узел памяти, входной блок кодирования, выходной блок кодирования, блок вычисления синдрома ошибки, дешифратор, коммутатор, блок коммутаторов, корректор, блок корректоров, отличается тем, что оно дополнительно содержит первый блок элементов ИЛИ, второй блок элементов ИЛИ, инвертор, элемент И, блок элементов И, вход установки устройства в нулевое состояние, вход записи, вход считывания, адресные входы, двадцатичетырехразрядные информационные входы, вход синхронизации, информационные выходы, выход сигнала «ошибка», вход установки в нулевое состояние, вход записи, вход считывания, адресные входы, подключены соответственно к первому, второму, третьему и четвертому входам узла памяти, вход синхронизации подключен к пятому входу узла памяти и к первому входу блока элементов И, информационные входы подключены к шестым входам узла памяти и к входам входного блока кодирования, который формирует значения контрольных разрядов r1, r2, r3, r4, r5, r6, r7, r8 путем сложения по модулю 2 информационных символов x1 x2 x3, z1 z2 z3, a1 a2 а3, c1 c2 c3, e1 е2 е3, f1 f2 f3, g1 g2 g3, h1 h2 h3, поступающих на входы входного блока кодирования, в соответствии с правилом:
Figure 00000001
которые поступают на седьмые входы узла памяти, информационные выходы узла памяти подключены соответственно к первым входам корректора, блока корректоров и к входам выходного блока кодирования, который формирует значения проверочных контрольных разрядов r, r, r, r, r, r, r, r путем сложения по модулю 2 информационных символов x x x, z z z, a а а, с c с, е е e, f f f, g g g, h h h, поступающих на входы входного блока кодирования с информационных выходов узла памяти, в соответствии с правилом:
Figure 00000002
выходы выходного блока кодирования подключены к первым входам блока вычисления синдрома ошибки, к вторым входам которого подключены выходы контрольных разрядов узла памяти, первые выходы блока вычисления синдрома ошибки подключены к первым входам дешифратора, к первым входам коммутатора, к входам первого блока элементов ИЛИ и к первым входам блока коммутаторов, вторые выходы блока вычисления синдрома ошибки подключены к вторым входам дешифратора и к вторым входам первого блока элементов ИЛИ, выходы дешифратора подключены к входам второго блока элементов ИЛИ, при этом первый выход дешифратора подключен к второму входу коммутатора, а вторые выходы подключены к вторым входам блока коммутаторов, выход второго блока элементов ИЛИ черeз инвертор подключен к первому входу элемента И, второй вход которого подключен к выходу первого блока элементов ИЛИ, выход элемента И является выходом сигнала «ошибка», выходы коммутатора подключены к вторым входам корректора, выходы блока коммутаторов подключены к вторым входам блока корректоров, выходы корректора и блока корректоров подключены к вторым входам блока элементов И, выходы которого являются информационными выходами устройства.
На фиг.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, r3, r4, r5, r6, r7, r8 путем сложения по модулю 2 информационных символов x1 x2 x3, z1 z2 z3, a1 a2 а3, c1 c2 c3, e1 e2 e3, f1 f2 f3, g1 g1 g3, h1 h2 h3, поступающих на входы входного блока 2 кодирования, в соответствии с правилом:
Figure 00000003
которые поступают на седьмые входы узла 1 памяти, информационные выходы узла памяти подключены соответственно к первым входам корректора 8, блока 9 корректоров и к входам выходного блока 3 кодирования, который формирует значения проверочных контрольных разрядов r, r, r, r, r, r, r, r путем сложения по модулю 2 информационных символов x x x, z z z, a а а, с c с, е е e, f f f, g g g, h h h, поступающих на входы входного блока 3 кодирования с информационных выходов узла 1 памяти, в соответствии с правилом:
Figure 00000004
выходы выходного блока 3 кодирования подключены к первым входам блока 4 вычисления синдрома ошибки, к вторым входам которого подключены выходы контрольных разрядов узла 1 памяти, первые выходы блока 4 вычисления синдрома ошибки подключены к первым входам дешифратора 5, к первым входам коммутатора 6, к входам первого блока 10 элементов ИЛИ и к первым входам блока 7 коммутаторов, вторые выходы блока 4 вычисления синдрома ошибки подключены к вторым входам дешифратора 5 и к вторым входам первого блока 10 элементов ИЛИ, выходы дешифратора 5 подключены к входам второго блока 11 элементов ИЛИ, при этом первый выход дешифратора 5 подключен к второму входу коммутатора 6, а вторые выходы подключены к вторым входам блока 7 коммутаторов, выход второго блока 11 элементов ИЛИ черeз инвертор 12 подключен к первому входу элемента 13 И, второй вход которого подключен к выходу первого блока 10 элементов ИЛИ, выход элемента 13 И является выходом сигнала «ошибка», выходы коммутатора 6 подключены к вторым входам корректора 8, выходы блока 7 коммутаторов подключены к вторым входам блока 9 корректоров, выходы корректора 8 и блока 9 корректоров подключены к входам блока 14 элементов И, выходы которого являются информационными выходами 21 устройства.
Узел 1 памяти, в данном случае, представляет собой статическое полупроводниковое оперативное устройство памяти и предназначен для хранения кодовых наборов: УК=x1 x2 x3, z1 z2 z3, a1 a2 а3, c1 c2 c3, e1 e2 e3, f1 f2 f3, g1 g2 g3, h1 h2 h3, r1 r2 r3 r4 r5 r6 r7 r8, полученных при кодировании исходных двадцатичетырехразрядных двоичных наборов.
Входной блок 2 кодирования предназначен для формирования значений контрольных разрядов r1, r2, r3, r4, r5, r6, r7, r8, путем сложения по mod2 информационных символов в соответствии с правилом:
Figure 00000005
Выходной блок 3 кодирования предназначен для формирования значений проверочных контрольных разрядов r, r, r, r, r, r, r, r путем сложения по mod2 информационных символов, полученных при считывании информации с узла 1 памяти в соответствии с правилом:
Figure 00000006
Блок 4 вычисления синдрома ошибки предназначен для обнаружения ошибки в кодовом наборе при считывании информации с узла 1 памяти путем сложения по mod2 значений контрольных разрядов r1, r2, r3, r4, r5, r6, r7, r8, считываемых с вторых выходов узла 1 памяти, соответственно со значениями контрольных разрядов r, r, r, r, r, r, r, r, сформированных на выходах выходного блока 3 кодирования.
Результат поразрядного сложения:
Figure 00000007
;
Figure 00000008
;
Figure 00000009
;
Figure 00000010
;
Figure 00000011
;
Figure 00000012
;
Figure 00000013
Figure 00000014
Нулевой результат суммы свидетельствует об отсутствии ошибки и ее наличии в противном случае.
Выходы λ1 λ2 λ3 блока 4 вычисления синдрома ошибки позволяют определять конфигурацию ошибки (вектор ошибки λ1 λ2 λ3, содержащий единичные значения в тех разрядах, которые соответствуют ошибочным разрядам в блоке информации), выходы λ4 λ5 λ6 λ7 λ8 определяют блок информационных разрядов, в котором произошла ошибка.
Дешифратор 7 формирует единичное значение сигнала на одном из своих выходов в соответствии с таблицей 1.
Figure 00000015
Если значение синдрома ошибки не соответствует значениям, представленным в таблице, то произошла не корректируемая ошибка (сигналы на выходе дешифратора имеют нулевые значения).
В этом случае, о наличии не корректируемой ошибки свидетельствует наличие единичного значения сигнала на выходе первого блока 10 элементов ИЛИ и отсутствие единичного значения сигнала на выходе второго элемента 11 ИЛИ.
Корректор 8 (блок 9 корректоров) предназначен для исправления корректируемой ошибки, путем сложения по mod2 одноименных разрядов блока информации, имеющего ошибку со значением вектора ошибки.
Устройство работает следующим образом. Перед началом работы устройства на вход 15 "установки в нулевое состояние" подается единичный сигнал, который переводит устройство в нулевое состояние.
При записи информации в узел 1 памяти, подаются единичные сигналы на вход 20 синхронизации, вход 16 записи, адресные входы 18 и информационные входы 19.
Входной блок 2 информации формирует значения контрольных разрядов по правилу:
Пример. Допустим, необходимо закодировать двоичный набор:
Figure 00000016
.
Тогда первая часть и вторая часть контрольных разрядов, сформированных относительно полученного кодового набора, соответственно равны:
r1=1, r2=0, r3=1, r4=0, r5=1, r6=0, r7=1, r8=1.
Figure 00000017
.
При отсутствии ошибки, значение кодового набора, записанного в узле 1 памяти, равно считанному (переданному кодовому набору):
Figure 00000018
.
В этом случае на выходе блока 4 вычисления синдрома ошибки имеем нулевые значения сигналов.
Пусть, произошла одиночная ошибка в первом разряде третьего блока информации (А=0*01), тогда выходной блок 3 кодирования сформирует относительно полученного кодового набора значения контрольных разрядов:
r=0, r=0, r=1, r=1, r=1, r=0, r=1, r=0.
В блоке 4 вычисления синдрома ошибки складываются переданные контрольные разряды с контрольными разрядами, сформированными относительно полученного кодового набора, в результате получим синдром ошибки:
Figure 00000019
В этом случае, первая часть синдрома указывает на ошибочный разряд блока информации, вторая часть синдрома указывает ошибочный блок А (см. табл.1).
На выходе дешифратора 7 появится единичное значение сигнала, которое открывает элементы И блока 7 коммутаторов, при этом значения вектора ошибки поступают на входы блока корректоров 9, где складывается по mod2 со значениями разрядов третьего блока информации:
Figure 00000020
В результате имеем правильное значение информации.
Пусть, произошла одиночная ошибка в первом разряде первого блока информации, одиночная ошибка во втором разряде второго блока информации, двойная ошибка в первом и втором разрядах четвертого блока информации и тройная ошибка в восьмом блоке информации.
Figure 00000021
В этом случае, значения контрольных разрядов, сформированные выходным блоком 3 кодирования относительно полученного двоичного набора, равны:
r=1, r=1, r=1,
r=1, r=1, r=1, r=1, r=0.
Значение синдрома ошибки, полученное блоком 4 вычисления синдрома ошибки, равно:
Figure 00000022
.
В этом случае, на выходе первого блока 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 одноименных разрядов блоков (байтов) информации.
В результате получим кодовый набор:
Figure 00000023
Значения контрольных разрядов
Figure 00000024
,
Figure 00000025
позволяют сформировать значение синдрома ошибки, при этом первая часть контрольных разрядов
Figure 00000024
определяет вектор ошибки (ошибочные разряды в блоке информации), а значение второй части контрольных разрядов
Figure 00000025
предназначено для определения номера ошибочного блока (байта) информации.
В этом случае число байтов информации определяется по формуле:
Figure 00000026
В связи с этим возникает необходимость формирования совокупности проверок (разработки правила кодирования информации), позволяющих определить блок информации, содержащий ошибку.
С этой целью, для каждого блока информации выберем свою совокупность проверок, обнаруживающих ошибку, используя матрицу кодирования размерности
Figure 00000027
.
Для первого блока информации матрица кодирования имеет вид:
Figure 00000028
В этом случае, для первого блока информации значения контрольных разрядов соответственно равны
Figure 00000029
;
Figure 00000030
; ……
Figure 00000031
.
Для второго и третьего информационных блоков матрицы кодирования имеют вид соответственно:
Figure 00000032
Figure 00000033
Не трудно заметить, что очередная матрица кодирования получается в результате циклической замены строк матрицы кодирования.
В результате получаем b исходных матриц кодирования, содержащих в своих строках по одной единице.
Для информационных блоков, начиная с b+1 блока, матрицы кодирования включают различные сочетания двух единиц в блоке информации:
Figure 00000034
Figure 00000035
Значения контрольных разрядов формируются сложением по mod2 элементов столбцов, соответствующих единичным значениям.
Так, например, если первый столбец больше не содержит единиц, то значение первого контрольного разряда равно:
Figure 00000036
Каждая очередная матрица кодирования для блоков информации, начиная с b+2 блока по
Figure 00000037
информации, получается циклической заменой строк матрицы по аналогии с матрицей, содержащей в своих строках по одной единице.
Аналогичным образом строятся матрицы кодирования, содержащие в своих строках различные сочетания из трех единиц и т.д.
Окончательно имеем матрицу кодирования, каждый элемент которой содержит единицу. Построим также дополнительную матрицу кодирования, каждый элемент которой содержит нули.
Полученные таким образом значения контрольных разрядов позволяют построить код, корректирующий одиночные ошибки и обнаруживающий ошибки большей кратности.
Объединяя по модулю по mod2 одноименные контрольные проверки для всех блоков информации, получим значения контрольных разрядов
Figure 00000025
для второй части контрольных разрядов кодового набора.
Таким образом, кодовый набор передается в виде:
Figure 00000038
Результат сложения по mod2 переданных значений контрольных разрядов
Figure 00000039
Figure 00000040
и контрольных разрядов
Figure 00000041
Figure 00000042
сформированных относительно полученных информационных разрядов, даст значение синдрома ошибки, включающего две части:
Figure 00000043
Значение синдрома ошибки Sf определяет вектор ошибки (ошибочные разряды в блоке информации), а значение синдрома ошибки Sg определяет номер ошибочного блока (байта) информации.
Стратегия декодирования заключается на следующих положениях:
1. Sf=0; Sg=0. Ошибок нет.
2. Sf=0; Sg≠0. Произошла ошибка в контрольных разрядах или не корректируемая ошибка в байтах информации.
3. Sf≠0; Sg≠0 (Sg=0). Произошла ошибка в информационных байтах (в одном байте - корректируемая, в двух - обнаруживаемая).
Таким образом, разработанный код, при оптимальном числе контрольных разрядов обладает свойствами, характерными для кодов Рида-Соломона, и при этом позволяет:
- использовать процедуру линейного кодирования;
- повысить быстродействие кодирования и декодирования информации.
Пример: Допустим, имеем двадцатичетырехразрядный двоичный набор, который разобьем на блоки информации по три разряда в каждом блоке:
Figure 00000044
Построим исходные матрицы кодирования для каждого блока информации:
Figure 00000045
,
Figure 00000046
,
Figure 00000047
,
Figure 00000048
,
Figure 00000049
,
Figure 00000050
,
Figure 00000051
,
Figure 00000052
.
Складывая по mod2 элементы столбцов матриц, соответствующие единичным значениям, получим проверки, позволяющие получить значения контрольных разрядов для соответствующих блоков информации.
Figure 00000053
;
Figure 00000054
;
Figure 00000055
;
Figure 00000056
;
Figure 00000057
;
Figure 00000058
;
Figure 00000059
;
Figure 00000060
В результате значение второй части контрольных разрядов формируется проверками:
Figure 00000061
;
Figure 00000062
;
Figure 00000063
.
Полученные значения контрольных разрядов, совместно со значениями первой части контрольных разрядов, сформированных путем сложения одноименных информационных разрядов блоков информации, позволяют иметь корректирующий код, исправляющий одиночные ошибки в любом блоке информации, и обнаруживать ошибки большей кратности.
В результате имеем код (30,6), корректирующий одиночные ошибки и обнаруживающий ошибки большей кратности.
Анализ таблицы 1 показывает, что в случае возникновения одиночной ошибки, значения второй части синдромов для блоков информации различаются между собой, что позволяет корректировать данные ошибки.
Таблица 1
Значения синдромов для кода (30,6), исправляющего одиночные ошибки.
№ п/п Безошибочный блок информации 000 Значение первой части контрольных разрядов Значения проверок второй части контрольных разрядов
Ошибочный блок информации Х Z A C E F G H
1 100 100 100 010 001 011 110 101 111 000
2 010 010 010 001 100 101 011 110 111 000
3 001 001 001 100 010 110 101 011 111 000
4 110 110 110 011 101 110 101 011 000 000
5 101 101 101 110 011 101 011 110 000 000
6 011 011 011 101 110 011 110 101 000 000
111 111 111 111 111 000 000 000 111 000
При возникновении ошибок большей кратности или в нескольких информационных блоках значения синдромов неразличимы, в этом случае ошибка обнаруживается.
При этом выделенные синдромы указывают на наличие не корректируемой ошибки, не выделенные синдромы указывают блок информации, содержащий соответствующую одиночную корректируемую ошибку.
Пример. Допустим, необходимо закодировать двоичный набор:
Figure 00000064
.
Подставляя в полученные выражения формирования второй части контрольных разрядов значения соответствующих разрядов двоичного набора, получим:
Figure 00000065
;
Figure 00000066
;
Figure 00000067
Складывая одноименные информационные разряды блоков информации, получим первую часть контрольных разрядов 101.
Таким образом, бeзошибочный кодовый набор передается в виде:
Figure 00000068
.
Пусть, произошла одиночная ошибка в первом разряде третьего блока информации (А), тогда первая часть и вторая часть контрольных разрядов, сформированных относительно полученного кодового набора, равны соответственно:
Figure 00000069
,
Figure 00000070
,
Figure 00000071
.
Figure 00000072
;
Figure 00000073
;
Figure 00000074
.
Складывая переданные контрольные разряды с контрольными разрядами, сформированными относительно полученного кодового набора, получим синдром ошибки:
Figure 00000075
.
В этом случае первая часть синдрома указывает на ошибочный разряд блока информации, вторая часть синдрома указывает ошибочный блок (см. табл.1).
3. Разработка линейного корректирующего кода с исправлением ошибок в байте и обнаружением ошибок в произвольных байтах информации
Для коррекции ошибок в блоке информации кратности b, проведем модификацию полученных матриц () кодирования (за исключением матриц, содержащих все единицы и все нули), для чего разобьем полученную совокупность матриц кодирования попарно и в каждой паре изменим (инвертируем) по одному одноименному элементу.
Например, попарно разобьем исходную совокупность матриц кодирования информации на пары: XF; EZ; АС.
В матрицах XF инвертируем элементы второго столбца третьей строки, в матрицах EZ инвертируем элементы третьего столбца третьей строки, в матрицах АС инвертируем элементы первого столбца третьей строки.
В результате получим совокупность модифицированных матриц кодирования информации:
Figure 00000076
,
Figure 00000077
,
Figure 00000078
,
Figure 00000079
,
Figure 00000080
,
Figure 00000081
,
Figure 00000082
,
Figure 00000052
.
Используя полученные матрицы, выпишем проверки для контрольных разрядов соответствующих блоков информации (складываются по mod2 элементы столбцов матриц, имеющие единичные значения, при этом номер элемента соответствует номеру строки матрицы):
Figure 00000083
;
Figure 00000084
;
Figure 00000085
;
Figure 00000086
;
Figure 00000087
;
Figure 00000088
;
Figure 00000089
;
Figure 00000090
В результате значение второй части контрольных разрядов формируется проверками:
Figure 00000091
;
Figure 00000092
;
Figure 00000093
В табл.2 представлены соответствующие значения синдромов кода (30,6) для ошибок различной кратности.
Анализ таблицы показывает, что данный код может исправлять все одиночные и тройные ошибки в отдельном блоке информации и корректировать часть двойных ошибок.
Таблица 2
Значения синдромов ошибок кода (30,6), исправляющего кратные ошибки в блоке информации и обнаруживающего ошибки в двух блоках информации.
№ п/п Безошибочный блок информации 000 Значение первой части контрольных разрядов Значения проверок второй части контрольных разрядов
Ошибочный блок информации Х Z A C E F G H
1 100 100 100 010 001 011 110 101 111 000
2 010 010 010 001 100 101 011 110 111 000
3 001 001 011 101 110 010 100 001 111 000
4 110 110 110 011 101 110 101 011 000 000
5 101 101 111 111 111 001 010 100 000 000
6 011 011 001 100 010 111 111 111 000 000
111 111 101 110 011 100 001 010 111 000
Заметим, что использование исходных матриц для построения кода, корректирующего одиночные ошибки, порождает 32 неразличимых синдрома ошибок (см. табл.2). При использовании приведенных выше модифицированных матриц для построения кода, корректирующего одиночные байты ошибок и обнаруживающего ошибки в двух байтах, имеем 18 неразличимых синдрома ошибок.
Если изменить порядок построения модифицированных матриц кодирования информации, например, попарно объединить исходные матрицы на ХЕ, FZ, АС и в матрицах ХЕ инвертировать элементы первого столбца третьей строки, в матрицах FZ инвертировать элементы третьего столбца третьей строки, в матрице А инвертировать элемент второго столбца первой строки, а в матрице С инвертировать элемент второго столбца третьей строки, то получим 26 неразличимых синдромов ошибок.
В связи с этим, при построении корректирующего кода необходимо обеспечить рациональный выбор построения модифицированных матриц, обеспечивающих требуемый уровень обнаружения и исправления ошибок.
Для повышения корректирующей способности кода, необходимо ввести дополнительные проверки (контрольные разряды).
Так, например, для рассматриваемого примера потребуется два дополнительных контрольных разряда
Figure 00000094
,
Figure 00000095
:
Figure 00000096
;
Figure 00000097
Figure 00000098
;
Figure 00000099
;
Figure 00000100
;
Figure 00000101
;
Figure 00000102
;
Figure 00000103
В табл.3 представлены значения синдромов ошибок кода (30,8), исправляющего кратные ошибки в блоке информации и обнаруживающего ошибки в произвольных блоках информации.
Таблица 3
Значения синдромов ошибок кода (30,8), исправляющего байты ошибок в блоке информации и обнаруживающего в произвольных блоках информации.
№ п/п Безошибочный блок информации 000 Значение первой части контрольных разрядов Значения проверок второй части контрольных разрядов
Ошибочный блок информации Х Z А С Е F G Н
1 100 100 10001 01000 00110 01100 11010 10100 11110 00000
2 010 010 01001 00101 10001 10111 01100 11011 11101 00000
3 001 001 01110 10110 11011 01001 10001 00101 11101 00000
4 110 110 11000 01101 10111 11010 10110 01111 00010 00000
5 101 101 11111 11110 11101 00101 01011 10001 00001 00000
6 011 011 00110 10011 01010 11111 11101 11110 00010 00000
111 111 10110 11011 01100 10011 00111 01010 11110 00000
Введение дополнительных проверок существенно повышает обнаруживающие способности кода. Так, например, при возникновении одиночной ошибки в первом разряде блока информации X, одиночной ошибки во втором разряде блока Z, двойной ошибки в первом и втором разрядах блока S, тройной ошибки в блоке G получим значение синдрома ошибки
Figure 00000104
, характеризующего наличие некорректируемой ошибки.
При необходимости полученный код допускает минимизацию контрольных разрядов, так, удаляя первый контрольный разряд второй части контрольных разрядов
Figure 00000105
, получим корректирующий код (30,7), корректирующий ошибки в байте информации и обнаруживающий ошибки в двух блоках информации (см. табл.4).
Таблица 4
Значения синдромов ошибок кода (30,7), исправляющего байты ошибок в блоке информации и обнаруживающего ошибки в двух блоках информации.
№ п/п Безошибочный блок информации 000 Значение первой части контрольных разрядов Значения проверок второй части контрольных разрядов
Ошибочный блок информации Х Z А С Е F G Н
1 100 100 0001 1000 0110 1100 1010 0100 1110 0000
2 010 010 1001 0101 0001 0111 1100 1011 1101 0000
3 001 001 1110 0101 1011 1001 0001 0101 1101 0000
4 110 110 1000 1101 0111 1010 0110 1111 0010 0000
5 101 101 1111 1110 1101 0101 11011 0001 0001 0000
6 011 011 0110 0011 1010 1111 1101 1110 0010 0000
111 111 0110 1011 1100 0011 0111 1010 1110 0000
Таким образом, предлагаемый метод построения корректирующих кодов, обнаруживающих и корректирующих ошибки в байтах информации, позволяет исключить процедуру деления и умножения, необходимую при использовании циклических кодов, и заменить ее на линейную, повысить быстродействие кодирования и декодирования информации, обеспечить требуемый уровень обнаружения и коррекции ошибок.
Источник информации
1. Щербаков Н.С. Достоверность работы цифровых устройств. М.: Машиностроение, 1989, с.122, рис.45, 224 с.

Claims (1)

  1. Устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации, содержащее узел памяти, входной блок кодирования, выходной блок кодирования, блок вычисления синдрома ошибки, дешифратор, коммутатор, блок коммутаторов, корректор, блок корректоров, отличающееся тем, что оно дополнительно содержит первый блок элементов ИЛИ, второй блок элементов ИЛИ, инвертор, элемент И, блок элементов И, вход установки устройства в нулевое состояние, вход записи, вход считывания, адресные входы, двадцатичетырехразрядные информационные входы, вход синхронизации, информационные выходы, выход сигнала «ошибка», вход установки в нулевое состояние, вход записи, вход считывания, адресные входы подключены соответственно к первому, второму, третьему и четвертому входам узла памяти, вход синхронизации подключен к пятому входу узла памяти и к первому входу блока элементов И, информационные входы подключены к шестым входам узла памяти и к входам входного блока кодирования, который формирует значения контрольных разрядов r1, r2, r3, r4, r5, r6, r7, r8 путем сложения по модулю 2 информационных символов x1 x2 x3, z1 z2 z3, a1 a2 a3, c1 c2 c3, e1 e2 e3, f1 f2 f3, g1 g2 g3, h1 h2 h3, поступающих на входы входного блока кодирования, в соответствии с правилом: r1=x1⊕z1⊕a1⊕c1⊕e1⊕f1⊕g1⊕h1; r2=x2⊕z2⊕a2⊕c2⊕e2⊕f2⊕g2⊕h2; r3=x3⊕z3⊕a3⊕c3⊕е3⊕f3⊕g3⊕h3; r4=x1⊕z3⊕a2⊕a3⊕c2⊕e1⊕e3⊕f1⊕f2⊕g1⊕g2⊕g3; r5=x2⊕x3⊕z1⊕a3⊕c1⊕c3⊕e1⊕e2⊕f2⊕g1⊕g2⊕g3;
    r6=x3⊕z2⊕z3⊕a1⊕c1⊕c2⊕e2⊕f1⊕f3⊕g1⊕g2⊕g3;
    r7=x3⊕z3⊕a1⊕a3⊕c2⊕e1⊕f2⊕g1⊕g2⊕g3;
    r8=x1⊕x2⊕z2⊕a2⊕a3⊕c3⊕e3⊕f2⊕f3⊕g1⊕g2⊕g3, которые поступают на седьмые входы узла памяти, информационные выходы узла памяти подключены соответственно к первым входам корректора, блока корректоров и к входам выходного блока кодирования, который формирует значения проверочных контрольных разрядов r, r, r, r, r, r, r, r путем сложения по модулю 2 информационных символов x x x, z z z, a а а, c c c, e е е, f f f, g g g, h h h, поступающих на входы входного блока кодирования с информационных выходов узла памяти, в соответствии с правилом:
    r=x⊕z⊕a⊕с⊕e⊕f⊕g⊕h;
    r=x⊕z⊕а⊕c⊕e⊕f⊕g⊕h;
    r=x⊕z⊕а⊕с⊕e⊕f⊕g⊕h;
    r=x⊕z⊕а⊕а⊕c⊕e⊕e⊕f⊕f⊕g⊕g⊕g;
    r=x⊕x⊕z⊕а⊕с⊕с⊕е⊕е⊕f⊕g⊕g⊕g;
    r=x⊕z⊕z⊕а⊕с⊕c⊕е⊕f⊕f⊕g⊕g⊕g;
    r=x⊕z⊕а⊕а⊕с⊕f⊕f⊕g⊕g⊕g;
    r=x⊕x⊕z⊕а⊕а⊕с⊕e⊕f⊕f⊕g⊕g⊕g, выходы выходного блока кодирования подключены к первым входам блока вычисления синдрома ошибки, к вторым входам которого подключены выходы контрольных разрядов узла памяти, первые выходы блока вычисления синдрома ошибки подключены к первым входам дешифратора, к первым входам коммутатора, к входам первого блока элементов ИЛИ и к первым входам блока коммутаторов, вторые выходы блока вычисления синдрома ошибки подключены к вторым входам дешифратора и к вторым входам первого блока элементов ИЛИ, выходы дешифратора подключены к входам второго блока элементов ИЛИ, при этом первый выход дешифратора подключен к второму входу коммутатора, а вторые выходы подключены к вторым входам блока коммутаторов, выход второго блока элементов ИЛИ через инвертор подключен к первому входу элемента И, второй вход которого подключен к выходу первого блока элементов ИЛИ, выход элемента И является выходом сигнала «ошибка», выходы коммутатора подключены к вторым входам корректора, выходы блока коммутаторов подключены к вторым входам блока корректоров, выходы корректора и блока корректоров подключены к вторым входам блока элементов И, выходы которого являются информационными выходами устройства.
RU2011112831/08A 2011-04-05 2011-04-05 Устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации RU2448359C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2011112831/08A RU2448359C1 (ru) 2011-04-05 2011-04-05 Устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2011112831/08A RU2448359C1 (ru) 2011-04-05 2011-04-05 Устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации

Publications (1)

Publication Number Publication Date
RU2448359C1 true RU2448359C1 (ru) 2012-04-20

Family

ID=46032717

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011112831/08A RU2448359C1 (ru) 2011-04-05 2011-04-05 Устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации

Country Status (1)

Country Link
RU (1) RU2448359C1 (ru)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2534499C2 (ru) * 2013-03-25 2014-11-27 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения и передачи данных с исправлением ошибок в двух байтах информации
RU2542665C1 (ru) * 2014-02-20 2015-02-20 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения и передачи данных с обнаружением и исправлением ошибок в байтах информации
RU175054U1 (ru) * 2017-06-20 2017-11-16 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения и передачи данных с обнаружением одиночных и двойных ошибок
RU204275U1 (ru) * 2021-01-26 2021-05-18 Межрегиональное общественное учреждение "Институт инженерной физики" Отказоустойчивый процессор с коррекцией ошибок в байте информации
RU2758065C1 (ru) * 2021-01-26 2021-10-26 Межрегиональное общественное учреждение "Институт инженерной физики" Отказоустойчивый процессор с коррекцией ошибок в байте информации
RU2758410C1 (ru) * 2021-01-26 2021-10-28 Межрегиональное общественное учреждение "Институт инженерной физики" Отказоустойчивый процессор с коррекцией ошибок в двух байтах информации

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0527025A2 (en) * 1991-08-05 1993-02-10 Advanced Micro Devices, Inc. Circuit and method of error detection and correction in data words with checkbits
RU2211492C2 (ru) * 2001-04-28 2003-08-27 Серпуховский военный институт ракетных войск Отказоустойчивое оперативное запоминающее устройство
RU2403615C2 (ru) * 2009-01-27 2010-11-10 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения и передачи информации с обнаружением двойных ошибок
RU102403U1 (ru) * 2010-07-08 2011-02-27 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения информации

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0527025A2 (en) * 1991-08-05 1993-02-10 Advanced Micro Devices, Inc. Circuit and method of error detection and correction in data words with checkbits
RU2211492C2 (ru) * 2001-04-28 2003-08-27 Серпуховский военный институт ракетных войск Отказоустойчивое оперативное запоминающее устройство
RU2403615C2 (ru) * 2009-01-27 2010-11-10 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения и передачи информации с обнаружением двойных ошибок
RU102403U1 (ru) * 2010-07-08 2011-02-27 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения информации

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2534499C2 (ru) * 2013-03-25 2014-11-27 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения и передачи данных с исправлением ошибок в двух байтах информации
RU2542665C1 (ru) * 2014-02-20 2015-02-20 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения и передачи данных с обнаружением и исправлением ошибок в байтах информации
RU175054U1 (ru) * 2017-06-20 2017-11-16 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения и передачи данных с обнаружением одиночных и двойных ошибок
RU204275U1 (ru) * 2021-01-26 2021-05-18 Межрегиональное общественное учреждение "Институт инженерной физики" Отказоустойчивый процессор с коррекцией ошибок в байте информации
RU2758065C1 (ru) * 2021-01-26 2021-10-26 Межрегиональное общественное учреждение "Институт инженерной физики" Отказоустойчивый процессор с коррекцией ошибок в байте информации
RU2758410C1 (ru) * 2021-01-26 2021-10-28 Межрегиональное общественное учреждение "Институт инженерной физики" Отказоустойчивый процессор с коррекцией ошибок в двух байтах информации

Similar Documents

Publication Publication Date Title
US9450613B2 (en) Apparatus and method for error correction and error detection
US4486882A (en) System for transmitting binary data via a plurality of channels by means of a convolutional code
RU2448359C1 (ru) Устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации
US7171591B2 (en) Method and apparatus for encoding special uncorrectable errors in an error correction code
US5856987A (en) Encoder and decoder for an SEC-DED-S4ED rotational code
US20130318423A1 (en) Mis-correction and no-correction rates for error control
US20100299575A1 (en) Method and system for detection and correction of phased-burst errors, erasures, symbol errors, and bit errors in a received symbol string
US7243293B2 (en) (18, 9) Error correction code for double error correction and triple error detection
JPS6349245B2 (ru)
US20120110409A1 (en) Error-correcting encoding method with total parity bits, and method for detecting multiple errors
US6519736B1 (en) Generating special uncorrectable error codes for failure isolation
US7093183B2 (en) Symbol level error correction codes which protect against memory chip and bus line failures
RU2450331C1 (ru) Устройство хранения и передачи данных с исправлением одиночных ошибок в байте информации и обнаружением произвольных ошибок в байтах информации
RU164633U1 (ru) Устройство хранения и передачи информации с обнаружением ошибок
RU106771U1 (ru) Устройство хранения и передачи данных с исправлением ошибок в байте информации и обнаружением ошибок в байтах информации
RU107606U1 (ru) Устройство хранения и передачи данных с исправлением одиночных ошибок в байте информации и обнаружением произвольных ошибок в байтах информации
RU2542665C1 (ru) Устройство хранения и передачи данных с обнаружением и исправлением ошибок в байтах информации
RU2450332C1 (ru) Устройство хранения информации с обнаружением одиночных и двойных ошибок
JP2732862B2 (ja) データ伝送試験装置
RU2637426C1 (ru) Устройство хранения и передачи данных с обнаружением ошибок
RU2816550C1 (ru) Устройство хранения и считывания информации с коррекцией одиночных ошибок
RU175054U1 (ru) Устройство хранения и передачи данных с обнаружением одиночных и двойных ошибок
RU169207U1 (ru) Устройство хранения и передачи данных с обнаружением ошибок
RU147518U1 (ru) Устройство хранения и передачи данных с обнаружением и исправлением ошибок в байтах информации
RU2297030C2 (ru) Самокорректирующееся устройство хранения информации

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20140406